mitreid-connect
公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService クラス
org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService 連携図
Collaboration graph

公開メンバ関数

void prepare ()
 
void createAccessToken_nullAuth ()
 
void createAccessToken_nullClient ()
 
void createAccessToken_noRefresh ()
 
void createAccessToken_yesRefresh ()
 
void createAccessToken_expiration ()
 
void createAccessToken_checkClient ()
 
void createAccessToken_checkScopes ()
 
void createAccessToken_checkAttachedAuthentication ()
 
void refreshAccessToken_noRefreshToken ()
 
void refreshAccessToken_notAllowRefresh ()
 
void refreshAccessToken_clientMismatch ()
 
void refreshAccessToken_expired ()
 
void refreshAccessToken_verifyAcessToken ()
 
void refreshAccessToken_rotateRefreshToken ()
 
void refreshAccessToken_keepAccessTokens ()
 
void refreshAccessToken_requestingSameScope ()
 
void refreshAccessToken_requestingLessScope ()
 
void refreshAccessToken_requestingMoreScope ()
 
void refreshAccessToken_requestingMixedScope ()
 
void refreshAccessToken_requestingEmptyScope ()
 
void refreshAccessToken_requestingNullScope ()
 
void refreshAccessToken_expiration ()
 

非公開変数類

OAuth2Authentication authentication
 
ClientDetailsEntity client
 
ClientDetailsEntity badClient
 
String clientId = "test_client"
 
String badClientId = "bad_client"
 
Set< String > scope = Sets.newHashSet("openid", "profile", "email", "offline_access")
 
OAuth2RefreshTokenEntity refreshToken
 
String refreshTokenValue = "refresh_token_value"
 
TokenRequest tokenRequest
 
OAuth2Request storedAuthRequest
 
OAuth2Authentication storedAuthentication
 
AuthenticationHolderEntity storedAuthHolder
 
Set< String > storedScope
 
OAuth2TokenRepository tokenRepository
 
AuthenticationHolderRepository authenticationHolderRepository
 
ClientDetailsEntityService clientDetailsService
 
TokenEnhancer tokenEnhancer
 
SystemScopeService scopeService
 
DefaultOAuth2ProviderTokenService service
 

静的非公開変数類

static final long DELTA = 100L
 

詳解

著者
wkim

関数詳解

◆ createAccessToken_checkAttachedAuthentication()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_checkAttachedAuthentication ( )
inline
343  {
344 
345  AuthenticationHolderEntity authHolder = Mockito.mock(AuthenticationHolderEntity.class);
346  Mockito.when(authHolder.getAuthentication()).thenReturn(authentication);
347 
348  Mockito.when(authenticationHolderRepository.save(Matchers.any(AuthenticationHolderEntity.class))).thenReturn(authHolder);
349 
350  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
351 
352  assertThat(token.getAuthenticationHolder().getAuthentication(), equalTo(authentication));
353  Mockito.verify(authenticationHolderRepository).save(Matchers.any(AuthenticationHolderEntity.class));
354  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
355 
356  }
AuthenticationHolderRepository authenticationHolderRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:99
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
AuthenticationHolderEntity save(AuthenticationHolderEntity a)
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_checkClient()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_checkClient ( )
inline
323  {
324 
325  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
326 
327  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
328 
329  assertThat(token.getClient().getClientId(), equalTo(clientId));
330  }
String clientId
Definition: TestDefaultOAuth2ProviderTokenService.java:82
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_checkScopes()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_checkScopes ( )
inline
333  {
334 
335  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
336 
337  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
338 
339  assertThat(token.getScope(), equalTo(scope));
340  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79
Set< String > scope
Definition: TestDefaultOAuth2ProviderTokenService.java:84

◆ createAccessToken_expiration()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_expiration ( )
inline

Checks to see that the expiration date of new tokens is being set accurately to within some delta for time skew.

298  {
299 
300  Integer accessTokenValiditySeconds = 3600;
301  Integer refreshTokenValiditySeconds = 600;
302 
303  Mockito.when(client.getAccessTokenValiditySeconds()).thenReturn(accessTokenValiditySeconds);
304  Mockito.when(client.getRefreshTokenValiditySeconds()).thenReturn(refreshTokenValiditySeconds);
305 
306  long start = System.currentTimeMillis();
307  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
308  long end = System.currentTimeMillis();
309 
310  // Accounting for some delta for time skew on either side.
311  Date lowerBoundAccessTokens = new Date(start + (accessTokenValiditySeconds * 1000L) - DELTA);
312  Date upperBoundAccessTokens = new Date(end + (accessTokenValiditySeconds * 1000L) + DELTA);
313  Date lowerBoundRefreshTokens = new Date(start + (refreshTokenValiditySeconds * 1000L) - DELTA);
314  Date upperBoundRefreshTokens = new Date(end + (refreshTokenValiditySeconds * 1000L) + DELTA);
315 
316  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
317 
318  assertTrue(token.getExpiration().after(lowerBoundAccessTokens) && token.getExpiration().before(upperBoundAccessTokens));
319  assertTrue(token.getRefreshToken().getExpiration().after(lowerBoundRefreshTokens) && token.getRefreshToken().getExpiration().before(upperBoundRefreshTokens));
320  }
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
Integer getRefreshTokenValiditySeconds()
Definition: ClientDetailsEntity.java:518
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
static final long DELTA
Definition: TestDefaultOAuth2ProviderTokenService.java:76
Integer getAccessTokenValiditySeconds()
Definition: ClientDetailsEntity.java:504
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_noRefresh()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_noRefresh ( )
inline

Tests the creation of access tokens for clients that are not allowed to have refresh tokens.

257  {
258 
259  Mockito.when(client.isAllowRefresh()).thenReturn(false);
260 
261  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
262 
263  Mockito.verify(clientDetailsService).loadClientByClientId(Matchers.anyString());
264  Mockito.verify(authenticationHolderRepository).save(Matchers.any(AuthenticationHolderEntity.class));
265  Mockito.verify(tokenEnhancer).enhance(Matchers.any(OAuth2AccessTokenEntity.class), Matchers.eq(authentication));
266  Mockito.verify(tokenRepository).saveAccessToken(Matchers.any(OAuth2AccessTokenEntity.class));
267  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
268 
269  Mockito.verify(tokenRepository, Mockito.never()).saveRefreshToken(Matchers.any(OAuth2RefreshTokenEntity.class));
270 
271  assertThat(token.getRefreshToken(), is(nullValue()));
272  }
boolean isAllowRefresh()
Definition: ClientDetailsEntity.java:297
AuthenticationHolderRepository authenticationHolderRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:99
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
ClientDetailsEntityService clientDetailsService
Definition: TestDefaultOAuth2ProviderTokenService.java:102
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
TokenEnhancer tokenEnhancer
Definition: TestDefaultOAuth2ProviderTokenService.java:105
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_nullAuth()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_nullAuth ( )
inline

Tests exception handling for null authentication or null authorization.

223  {
224 
225  Mockito.when(authentication.getOAuth2Request()).thenReturn(null);
226 
227  try {
229  fail("Authentication parameter is null. Excpected a AuthenticationCredentialsNotFoundException.");
230  } catch (AuthenticationCredentialsNotFoundException e) {
231  assertThat(e, is(notNullValue()));
232  }
233 
234  try {
236  fail("AuthorizationRequest is null. Excpected a AuthenticationCredentialsNotFoundException.");
237  } catch (AuthenticationCredentialsNotFoundException e) {
238  assertThat(e, is(notNullValue()));
239  }
240  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_nullClient()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_nullClient ( )
inline

Tests exception handling for clients not found.

246  {
247 
248  Mockito.when(clientDetailsService.loadClientByClientId(Matchers.anyString())).thenReturn(null);
249 
251  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
ClientDetailsEntityService clientDetailsService
Definition: TestDefaultOAuth2ProviderTokenService.java:102
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
ClientDetailsEntity loadClientByClientId(String clientId)
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ createAccessToken_yesRefresh()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.createAccessToken_yesRefresh ( )
inline

Tests the creation of access tokens for clients that are allowed to have refresh tokens.

278  {
279 
280  OAuth2Request clientAuth = new OAuth2Request(null, clientId, null, true, Sets.newHashSet(SystemScopeService.OFFLINE_ACCESS), null, null, null, null);
281  Mockito.when(authentication.getOAuth2Request()).thenReturn(clientAuth);
282  Mockito.when(client.isAllowRefresh()).thenReturn(true);
283 
284  OAuth2AccessTokenEntity token = service.createAccessToken(authentication);
285 
286  // Note: a refactor may be appropriate to only save refresh tokens once to the repository during creation.
287  Mockito.verify(tokenRepository, Mockito.atLeastOnce()).saveRefreshToken(Matchers.any(OAuth2RefreshTokenEntity.class));
288  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
289 
290  assertThat(token.getRefreshToken(), is(notNullValue()));
291 
292  }
String clientId
Definition: TestDefaultOAuth2ProviderTokenService.java:82
boolean isAllowRefresh()
Definition: ClientDetailsEntity.java:297
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity createAccessToken(OAuth2Authentication authentication)
Definition: DefaultOAuth2ProviderTokenService.java:184
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79

◆ prepare()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.prepare ( )
inline

Set up a mock authentication and mock client to work with.

117  {
119 
120 
121 
122  authentication = Mockito.mock(OAuth2Authentication.class);
123  OAuth2Request clientAuth = new OAuth2Request(null, clientId, null, true, scope, null, null, null, null);
124  Mockito.when(authentication.getOAuth2Request()).thenReturn(clientAuth);
125 
126  client = Mockito.mock(ClientDetailsEntity.class);
127  Mockito.when(client.getClientId()).thenReturn(clientId);
128  Mockito.when(clientDetailsService.loadClientByClientId(clientId)).thenReturn(client);
129  Mockito.when(client.isReuseRefreshToken()).thenReturn(true);
130 
131  // by default in tests, allow refresh tokens
132  Mockito.when(client.isAllowRefresh()).thenReturn(true);
133 
134  // by default, clear access tokens on refresh
135  Mockito.when(client.isClearAccessTokensOnRefresh()).thenReturn(true);
136 
137  badClient = Mockito.mock(ClientDetailsEntity.class);
138  Mockito.when(badClient.getClientId()).thenReturn(badClientId);
140 
141  refreshToken = Mockito.mock(OAuth2RefreshTokenEntity.class);
143  Mockito.when(refreshToken.getClient()).thenReturn(client);
144  Mockito.when(refreshToken.isExpired()).thenReturn(false);
145 
146  tokenRequest = new TokenRequest(null, clientId, null, null);
147 
149  storedAuthRequest = clientAuth;
150  storedAuthHolder = Mockito.mock(AuthenticationHolderEntity.class);
151  storedScope = Sets.newHashSet(scope);
152 
153  Mockito.when(refreshToken.getAuthenticationHolder()).thenReturn(storedAuthHolder);
154  Mockito.when(storedAuthHolder.getAuthentication()).thenReturn(storedAuthentication);
155  Mockito.when(storedAuthentication.getOAuth2Request()).thenReturn(storedAuthRequest);
156 
157  Mockito.when(authenticationHolderRepository.save(Matchers.any(AuthenticationHolderEntity.class))).thenReturn(storedAuthHolder);
158 
159  Mockito.when(scopeService.fromStrings(Matchers.anySet())).thenAnswer(new Answer<Set<SystemScope>>() {
160  @Override
161  public Set<SystemScope> answer(InvocationOnMock invocation) throws Throwable {
162  Object[] args = invocation.getArguments();
163  Set<String> input = (Set<String>) args[0];
164  Set<SystemScope> output = new HashSet<>();
165  for (String scope : input) {
166  output.add(new SystemScope(scope));
167  }
168  return output;
169  }
170  });
171 
172  Mockito.when(scopeService.toStrings(Matchers.anySet())).thenAnswer(new Answer<Set<String>>() {
173  @Override
174  public Set<String> answer(InvocationOnMock invocation) throws Throwable {
175  Object[] args = invocation.getArguments();
176  Set<SystemScope> input = (Set<SystemScope>) args[0];
177  Set<String> output = new HashSet<>();
178  for (SystemScope scope : input) {
179  output.add(scope.getValue());
180  }
181  return output;
182  }
183  });
184 
185  // we're not testing restricted or reserved scopes here, just pass through
186  Mockito.when(scopeService.removeReservedScopes(Matchers.anySet())).then(AdditionalAnswers.returnsFirstArg());
187  Mockito.when(scopeService.removeRestrictedAndReservedScopes(Matchers.anySet())).then(AdditionalAnswers.returnsFirstArg());
188 
189  Mockito.when(tokenEnhancer.enhance(Matchers.any(OAuth2AccessTokenEntity.class), Matchers.any(OAuth2Authentication.class)))
190  .thenAnswer(new Answer<OAuth2AccessTokenEntity>(){
191  @Override
192  public OAuth2AccessTokenEntity answer(InvocationOnMock invocation) throws Throwable {
193  Object[] args = invocation.getArguments();
194  return (OAuth2AccessTokenEntity) args[0];
195  }
196  });
197 
198  Mockito.when(tokenRepository.saveAccessToken(Matchers.any(OAuth2AccessTokenEntity.class)))
199  .thenAnswer(new Answer<OAuth2AccessTokenEntity>() {
200  @Override
201  public OAuth2AccessTokenEntity answer(InvocationOnMock invocation) throws Throwable {
202  Object[] args = invocation.getArguments();
203  return (OAuth2AccessTokenEntity) args[0];
204  }
205 
206  });
207 
208  Mockito.when(tokenRepository.saveRefreshToken(Matchers.any(OAuth2RefreshTokenEntity.class)))
209  .thenAnswer(new Answer<OAuth2RefreshTokenEntity>() {
210  @Override
211  public OAuth2RefreshTokenEntity answer(InvocationOnMock invocation) throws Throwable {
212  Object[] args = invocation.getArguments();
213  return (OAuth2RefreshTokenEntity) args[0];
214  }
215  });
216 
217  }
OAuth2AccessTokenEntity saveAccessToken(OAuth2AccessTokenEntity token)
Set< String > storedScope
Definition: TestDefaultOAuth2ProviderTokenService.java:93
String clientId
Definition: TestDefaultOAuth2ProviderTokenService.java:82
boolean isAllowRefresh()
Definition: ClientDetailsEntity.java:297
AuthenticationHolderRepository authenticationHolderRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:99
String badClientId
Definition: TestDefaultOAuth2ProviderTokenService.java:83
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
OAuth2Authentication getAuthentication()
Definition: AuthenticationHolderEntity.java:104
OAuth2Authentication storedAuthentication
Definition: TestDefaultOAuth2ProviderTokenService.java:91
String getClientId()
Definition: ClientDetailsEntity.java:401
OAuth2RefreshTokenEntity saveRefreshToken(OAuth2RefreshTokenEntity refreshToken)
Set< SystemScope > removeReservedScopes(Set< SystemScope > scopes)
Set< SystemScope > removeRestrictedAndReservedScopes(Set< SystemScope > scopes)
AuthenticationHolderEntity save(AuthenticationHolderEntity a)
Set< SystemScope > fromStrings(Set< String > scope)
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2RefreshTokenEntity refreshToken
Definition: TestDefaultOAuth2ProviderTokenService.java:85
ClientDetailsEntity badClient
Definition: TestDefaultOAuth2ProviderTokenService.java:81
ClientDetailsEntityService clientDetailsService
Definition: TestDefaultOAuth2ProviderTokenService.java:102
OAuth2Request storedAuthRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:90
boolean isReuseRefreshToken()
Definition: ClientDetailsEntity.java:307
AuthenticationHolderEntity getAuthenticationHolder()
Definition: OAuth2RefreshTokenEntity.java:113
OAuth2RefreshTokenEntity getRefreshTokenByValue(String refreshTokenValue)
boolean isClearAccessTokensOnRefresh()
Definition: ClientDetailsEntity.java:973
AuthenticationHolderEntity storedAuthHolder
Definition: TestDefaultOAuth2ProviderTokenService.java:92
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
Set< String > toStrings(Set< SystemScope > scope)
TokenEnhancer tokenEnhancer
Definition: TestDefaultOAuth2ProviderTokenService.java:105
ClientDetailsEntity getClient()
Definition: OAuth2RefreshTokenEntity.java:162
ClientDetailsEntity loadClientByClientId(String clientId)
boolean isExpired()
Definition: OAuth2RefreshTokenEntity.java:153
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86
OAuth2Authentication authentication
Definition: TestDefaultOAuth2ProviderTokenService.java:79
Set< String > scope
Definition: TestDefaultOAuth2ProviderTokenService.java:84

◆ refreshAccessToken_clientMismatch()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_clientMismatch ( )
inline
375  {
376 
377  tokenRequest = new TokenRequest(null, badClientId, null, null);
378 
380  }
String badClientId
Definition: TestDefaultOAuth2ProviderTokenService.java:83
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_expiration()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_expiration ( )
inline

Checks to see that the expiration date of refreshed tokens is being set accurately to within some delta for time skew.

527  {
528 
529  Integer accessTokenValiditySeconds = 3600;
530 
531  Mockito.when(client.getAccessTokenValiditySeconds()).thenReturn(accessTokenValiditySeconds);
532 
533  long start = System.currentTimeMillis();
534  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
535  long end = System.currentTimeMillis();
536 
537  // Accounting for some delta for time skew on either side.
538  Date lowerBoundAccessTokens = new Date(start + (accessTokenValiditySeconds * 1000L) - DELTA);
539  Date upperBoundAccessTokens = new Date(end + (accessTokenValiditySeconds * 1000L) + DELTA);
540 
541  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
542 
543  assertTrue(token.getExpiration().after(lowerBoundAccessTokens) && token.getExpiration().before(upperBoundAccessTokens));
544  }
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
static final long DELTA
Definition: TestDefaultOAuth2ProviderTokenService.java:76
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
Integer getAccessTokenValiditySeconds()
Definition: ClientDetailsEntity.java:504
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_expired()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_expired ( )
inline
383  {
384 
385  Mockito.when(refreshToken.isExpired()).thenReturn(true);
386 
388  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2RefreshTokenEntity refreshToken
Definition: TestDefaultOAuth2ProviderTokenService.java:85
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
boolean isExpired()
Definition: OAuth2RefreshTokenEntity.java:153
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_keepAccessTokens()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_keepAccessTokens ( )
inline
428  {
429 
430  when(client.isClearAccessTokensOnRefresh()).thenReturn(false);
431 
432  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
433 
434  Mockito.verify(tokenRepository, never()).clearAccessTokensForRefreshToken(refreshToken);
435 
436  assertThat(token.getClient(), equalTo(client));
437  assertThat(token.getRefreshToken(), equalTo(refreshToken));
438  assertThat(token.getAuthenticationHolder(), equalTo(storedAuthHolder));
439 
440  Mockito.verify(tokenEnhancer).enhance(token, storedAuthentication);
441  Mockito.verify(tokenRepository).saveAccessToken(token);
442  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
443 
444  }
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2Authentication storedAuthentication
Definition: TestDefaultOAuth2ProviderTokenService.java:91
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2RefreshTokenEntity refreshToken
Definition: TestDefaultOAuth2ProviderTokenService.java:85
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
boolean isClearAccessTokensOnRefresh()
Definition: ClientDetailsEntity.java:973
AuthenticationHolderEntity storedAuthHolder
Definition: TestDefaultOAuth2ProviderTokenService.java:92
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
TokenEnhancer tokenEnhancer
Definition: TestDefaultOAuth2ProviderTokenService.java:105
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_noRefreshToken()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_noRefreshToken ( )
inline
359  {
360 
361  Mockito.when(tokenRepository.getRefreshTokenByValue(Matchers.anyString())).thenReturn(null);
362 
364  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
OAuth2RefreshTokenEntity getRefreshTokenByValue(String refreshTokenValue)
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_notAllowRefresh()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_notAllowRefresh ( )
inline
367  {
368 
369  Mockito.when(client.isAllowRefresh()).thenReturn(false);
370 
372  }
boolean isAllowRefresh()
Definition: ClientDetailsEntity.java:297
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingEmptyScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingEmptyScope ( )
inline
497  {
498 
499  Set<String> emptyScope = Sets.newHashSet();
500 
501  tokenRequest.setScope(emptyScope);
502 
503  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
504 
505  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
506 
507  assertThat(token.getScope(), equalTo(storedScope));
508  }
Set< String > storedScope
Definition: TestDefaultOAuth2ProviderTokenService.java:93
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingLessScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingLessScope ( )
inline
457  {
458 
459  Set<String> lessScope = Sets.newHashSet("openid", "profile");
460 
461  tokenRequest.setScope(lessScope);
462 
463  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
464 
465  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
466 
467  assertThat(token.getScope(), equalTo(lessScope));
468  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingMixedScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingMixedScope ( )
inline

Tests the case where only some of the valid scope values are being requested along with other extra unauthorized scope values.

487  {
488 
489  Set<String> mixedScope = Sets.newHashSet("openid", "profile", "address", "phone"); // no email or offline_access
490 
491  tokenRequest.setScope(mixedScope);
492 
494  }
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingMoreScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingMoreScope ( )
inline
471  {
472 
473  Set<String> moreScope = Sets.newHashSet(storedScope);
474  moreScope.add("address");
475  moreScope.add("phone");
476 
477  tokenRequest.setScope(moreScope);
478 
480  }
Set< String > storedScope
Definition: TestDefaultOAuth2ProviderTokenService.java:93
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingNullScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingNullScope ( )
inline
511  {
512 
513  tokenRequest.setScope(null);
514 
515  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
516 
517  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
518 
519  assertThat(token.getScope(), equalTo(storedScope));
520 
521  }
Set< String > storedScope
Definition: TestDefaultOAuth2ProviderTokenService.java:93
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_requestingSameScope()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_requestingSameScope ( )
inline
447  {
448 
449  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
450 
451  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
452 
453  assertThat(token.getScope(), equalTo(storedScope));
454  }
Set< String > storedScope
Definition: TestDefaultOAuth2ProviderTokenService.java:93
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_rotateRefreshToken()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_rotateRefreshToken ( )
inline
408  {
409 
410  when(client.isReuseRefreshToken()).thenReturn(false);
411 
412  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
413 
414  Mockito.verify(tokenRepository).clearAccessTokensForRefreshToken(refreshToken);
415 
416  assertThat(token.getClient(), equalTo(client));
417  assertThat(token.getRefreshToken(), not(equalTo(refreshToken)));
418  assertThat(token.getAuthenticationHolder(), equalTo(storedAuthHolder));
419 
420  Mockito.verify(tokenEnhancer).enhance(token, storedAuthentication);
421  Mockito.verify(tokenRepository).saveAccessToken(token);
422  Mockito.verify(tokenRepository).removeRefreshToken(refreshToken);
423  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
424 
425  }
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2Authentication storedAuthentication
Definition: TestDefaultOAuth2ProviderTokenService.java:91
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2RefreshTokenEntity refreshToken
Definition: TestDefaultOAuth2ProviderTokenService.java:85
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
boolean isReuseRefreshToken()
Definition: ClientDetailsEntity.java:307
AuthenticationHolderEntity storedAuthHolder
Definition: TestDefaultOAuth2ProviderTokenService.java:92
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
TokenEnhancer tokenEnhancer
Definition: TestDefaultOAuth2ProviderTokenService.java:105
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

◆ refreshAccessToken_verifyAcessToken()

void org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshAccessToken_verifyAcessToken ( )
inline
391  {
392 
393  OAuth2AccessTokenEntity token = service.refreshAccessToken(refreshTokenValue, tokenRequest);
394 
395  Mockito.verify(tokenRepository).clearAccessTokensForRefreshToken(refreshToken);
396 
397  assertThat(token.getClient(), equalTo(client));
398  assertThat(token.getRefreshToken(), equalTo(refreshToken));
399  assertThat(token.getAuthenticationHolder(), equalTo(storedAuthHolder));
400 
401  Mockito.verify(tokenEnhancer).enhance(token, storedAuthentication);
402  Mockito.verify(tokenRepository).saveAccessToken(token);
403  Mockito.verify(scopeService, Mockito.atLeastOnce()).removeReservedScopes(Matchers.anySet());
404 
405  }
ClientDetailsEntity client
Definition: TestDefaultOAuth2ProviderTokenService.java:80
DefaultOAuth2ProviderTokenService service
Definition: TestDefaultOAuth2ProviderTokenService.java:111
OAuth2Authentication storedAuthentication
Definition: TestDefaultOAuth2ProviderTokenService.java:91
SystemScopeService scopeService
Definition: TestDefaultOAuth2ProviderTokenService.java:108
OAuth2RefreshTokenEntity refreshToken
Definition: TestDefaultOAuth2ProviderTokenService.java:85
OAuth2AccessTokenEntity refreshAccessToken(String refreshTokenValue, TokenRequest authRequest)
Definition: DefaultOAuth2ProviderTokenService.java:318
AuthenticationHolderEntity storedAuthHolder
Definition: TestDefaultOAuth2ProviderTokenService.java:92
TokenRequest tokenRequest
Definition: TestDefaultOAuth2ProviderTokenService.java:87
OAuth2TokenRepository tokenRepository
Definition: TestDefaultOAuth2ProviderTokenService.java:96
TokenEnhancer tokenEnhancer
Definition: TestDefaultOAuth2ProviderTokenService.java:105
String refreshTokenValue
Definition: TestDefaultOAuth2ProviderTokenService.java:86

メンバ詳解

◆ authentication

OAuth2Authentication org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.authentication
private

◆ authenticationHolderRepository

AuthenticationHolderRepository org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.authenticationHolderRepository
private

◆ badClient

ClientDetailsEntity org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.badClient
private

◆ badClientId

String org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.badClientId = "bad_client"
private

◆ client

ClientDetailsEntity org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.client
private

◆ clientDetailsService

ClientDetailsEntityService org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.clientDetailsService
private

◆ clientId

String org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.clientId = "test_client"
private

◆ DELTA

final long org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.DELTA = 100L
staticprivate

◆ refreshToken

OAuth2RefreshTokenEntity org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshToken
private

◆ refreshTokenValue

String org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.refreshTokenValue = "refresh_token_value"
private

◆ scope

Set<String> org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.scope = Sets.newHashSet("openid", "profile", "email", "offline_access")
private

◆ scopeService

SystemScopeService org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.scopeService
private

◆ service

DefaultOAuth2ProviderTokenService org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.service
private

◆ storedAuthentication

OAuth2Authentication org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.storedAuthentication
private

◆ storedAuthHolder

AuthenticationHolderEntity org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.storedAuthHolder
private

◆ storedAuthRequest

OAuth2Request org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.storedAuthRequest
private

◆ storedScope

Set<String> org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.storedScope
private

◆ tokenEnhancer

TokenEnhancer org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.tokenEnhancer
private

◆ tokenRepository

OAuth2TokenRepository org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.tokenRepository
private

◆ tokenRequest

TokenRequest org.mitre.oauth2.service.impl.TestDefaultOAuth2ProviderTokenService.tokenRequest
private

このクラス詳解は次のファイルから抽出されました: