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 }