View Javadoc

1   package com.atlassian.asap.service.core.impl;
2   
3   import com.atlassian.asap.api.Jwt;
4   import com.atlassian.asap.service.api.ValidationResult.Decision;
5   import com.google.common.collect.ImmutableSet;
6   import org.junit.Rule;
7   import org.junit.Test;
8   import org.mockito.junit.MockitoJUnit;
9   import org.mockito.junit.MockitoRule;
10  
11  import static com.atlassian.asap.service.api.TokenValidator.Policy.REQUIRE;
12  import static java.util.Optional.empty;
13  import static org.junit.Assert.assertThat;
14  import static org.mockito.Mockito.when;
15  
16  public class TokenValidatorImplTest extends AbstractTokenValidatorImplTest {
17      @Rule
18      public final MockitoRule mockitoRule = MockitoJUnit.rule();
19  
20      @Test
21      public void requireIsTheDefaultPolicy() {
22          assertThat(tokenValidator.validate(empty()), result(Decision.NOT_AUTHENTICATED));
23      }
24  
25      @Test
26      public void globalAudienceIsImplicitlyIncluded() throws Exception {
27          tokenValidator.policy(REQUIRE).subject(ISSUER).audience();
28          Jwt jwt = jwtBuilder.build();
29          when(jwtValidator.readAndValidate(TOKEN)).thenReturn(jwt);
30  
31          assertThat(tokenValidator.validate(HEADER), result(Decision.AUTHORIZED, jwt));
32  
33          when(config.audience()).thenReturn("snape");
34          expectedAllowedAudiences = ImmutableSet.of("snape");
35          assertThat(tokenValidator.audience().validate(HEADER), result(Decision.AUTHORIZED, jwt));
36  
37          when(config.audience()).thenReturn("moody");
38          expectedAllowedAudiences = ImmutableSet.of("moody", "sprout");
39          assertThat(tokenValidator.audience("sprout").validate(HEADER), result(Decision.AUTHORIZED, jwt));
40      }
41  }