package io.smallrye.jwt.auth.principal; import static org.junit.Assert.*; import java.security.interfaces.RSAPublicKey; import java.util.Set; import org.eclipse.microprofile.jwt.Claims; import org.eclipse.microprofile.jwt.tck.util.TokenUtils; import org.jose4j.jwt.consumer.JwtContext; import org.junit.Before; import org.junit.Test; public class DefaultJWTCallerPrincipalTest { private static final String TCK_TOKEN1_AUD = "s6BhdRkqt3"; RSAPublicKey publicKey; DefaultJWTTokenParser parser; JWTAuthContextInfo config; JwtContext context; @Before public void setUp() throws Exception { publicKey = (RSAPublicKey) TokenUtils.readPublicKey("/publicKey.pem"); parser = new DefaultJWTTokenParser(); config = new JWTAuthContextInfo(publicKey, "https://server.example.com"); context = parser.parse(TokenUtils.generateTokenString("/Token1.json"), config); } @Test public void testGetAudience() { DefaultJWTCallerPrincipal principal = new DefaultJWTCallerPrincipal(context.getJwtClaims()); Set<String> audience = principal.getAudience(); assertNotNull(audience); assertEquals(1, audience.size()); assertArrayEquals(new String[] { TCK_TOKEN1_AUD }, audience.toArray(new String[0])); } @Test public void testGetAudienceClaimValue() { DefaultJWTCallerPrincipal principal = new DefaultJWTCallerPrincipal(context.getJwtClaims()); @SuppressWarnings("unchecked") Set<String> audience = (Set<String>) principal.getClaimValue(Claims.aud.name()); assertNotNull(audience); assertEquals(1, audience.size()); assertArrayEquals(new String[] { TCK_TOKEN1_AUD }, audience.toArray(new String[0])); } @Test public void testGetAudienceClaim() { DefaultJWTCallerPrincipal principal = new DefaultJWTCallerPrincipal(context.getJwtClaims()); Set<String> audience = principal.getClaim(Claims.aud.name()); assertNotNull(audience); assertEquals(1, audience.size()); assertArrayEquals(new String[] { TCK_TOKEN1_AUD }, audience.toArray(new String[0])); } }