View Javadoc
1   package de.dlr.shepard.auth.security;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.junit.jupiter.api.Assertions.assertFalse;
5   import static org.junit.jupiter.api.Assertions.assertTrue;
6   
7   import jakarta.ws.rs.core.SecurityContext;
8   import java.security.Principal;
9   import org.junit.jupiter.api.Test;
10  
11  public class JWTSecurityContextTest {
12  
13    private String[] roles = { "role1", "role2" };
14    private JWTPrincipal principal = new JWTPrincipal("MyAudience", "MyIssuedFor", "MyUsername", "MyKeyId", roles);
15  
16    private SecurityContext sc = new SecurityContext() {
17      @Override
18      public boolean isUserInRole(String role) {
19        return false;
20      }
21  
22      @Override
23      public boolean isSecure() {
24        return false;
25      }
26  
27      @Override
28      public Principal getUserPrincipal() {
29        return null;
30      }
31  
32      @Override
33      public String getAuthenticationScheme() {
34        return null;
35      }
36    };
37  
38    @Test
39    public void testGetUserPrincipal() {
40      var context = new JWTSecurityContext(sc, principal);
41      assertEquals(principal, context.getUserPrincipal());
42    }
43  
44    @Test
45    public void testUserInRole() {
46      var context = new JWTSecurityContext(sc, principal);
47      assertTrue(context.isUserInRole("role1"));
48      assertFalse(context.isUserInRole("role5"));
49    }
50  
51    @Test
52    public void testIsSecure() {
53      var context = new JWTSecurityContext(sc, principal);
54      assertEquals(sc.isSecure(), context.isSecure());
55    }
56  
57    @Test
58    public void testAuthenticationScheme() {
59      var context = new JWTSecurityContext(sc, principal);
60      assertEquals("Token-Based-Auth-Scheme", context.getAuthenticationScheme());
61    }
62  }