Example usage for org.springframework.security.oauth2.common OAuth2AccessToken getRefreshToken

List of usage examples for org.springframework.security.oauth2.common OAuth2AccessToken getRefreshToken

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.common OAuth2AccessToken getRefreshToken.

Prototype

OAuth2RefreshToken getRefreshToken();

Source Link

Usage

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test
public void testCreateAccessWithNonExistingScopes() {
    List<String> scopesThatDontExist = Arrays.asList("scope1", "scope2");
    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, scopesThatDontExist);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, IMPLICIT);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);//from ww  w . ja va2s.c om
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    this.assertCommonUserAccessTokenProperties(accessToken);
    assertThat(accessToken, issuerUri(is(ISSUER_URI)));
    assertThat(accessToken, scope(is(scopesThatDontExist)));
    assertThat(accessToken, validFor(is(60 * 60 * 12)));
    assertThat(accessToken.getRefreshToken(), is(nullValue()));

    this.assertCommonEventProperties(accessToken, userId, buildJsonString(scopesThatDontExist));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test
public void createAccessToken_forUser_inanotherzone() {
    String subdomain = "test-zone-subdomain";
    IdentityZone identityZone = getIdentityZone(subdomain);
    identityZone.setConfig(JsonUtils.readValue(
            "{\"tokenPolicy\":{\"accessTokenValidity\":3600,\"refreshTokenValidity\":9600}}",
            IdentityZoneConfiguration.class));
    IdentityZoneHolder.set(identityZone);

    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);//from   w ww  . j a v  a2  s  . c o m
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    this.assertCommonUserAccessTokenProperties(accessToken);
    assertThat(accessToken, issuerUri(is("http://test-zone-subdomain.localhost:8080/uaa/oauth/token")));
    assertThat(accessToken, scope(is(requestedAuthScopes)));
    assertThat(accessToken, validFor(is(3600)));
    assertThat(accessToken.getRefreshToken(), is(not(nullValue())));

    OAuth2RefreshToken refreshToken = accessToken.getRefreshToken();
    this.assertCommonUserRefreshTokenProperties(refreshToken);
    assertThat(refreshToken, OAuth2RefreshTokenMatchers
            .issuerUri(is("http://test-zone-subdomain.localhost:8080/uaa/oauth/token")));
    assertThat(refreshToken, OAuth2RefreshTokenMatchers.validFor(is(9600)));

    this.assertCommonEventProperties(accessToken, userId, buildJsonString(requestedAuthScopes));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test
public void testCreateAccessTokenAuthcodeGrantNarrowerScopes() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, 3000);

    Calendar updatedAt = Calendar.getInstance();
    updatedAt.add(Calendar.MILLISECOND, -1000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED)
            .setLastUpdatedAt(updatedAt.getTime()));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED)
            .setLastUpdatedAt(updatedAt.getTime()));

    // First Request
    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);//w ww  .  j  a v  a2 s  .c  o m
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    assertThat(accessToken, scope(is(requestedAuthScopes)));
    OAuth2RefreshToken refreshToken = accessToken.getRefreshToken();
    assertThat(refreshToken, is(not(nullValue())));

    assertThat(refreshToken, OAuth2RefreshTokenMatchers.scope(is(requestedAuthScopes)));
    assertThat(refreshToken, OAuth2RefreshTokenMatchers.audience(is(resourceIds)));

    // Second request with reduced scopes
    AuthorizationRequest reducedScopeAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, readScope);
    reducedScopeAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(
            reducedScopeAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    reducedScopeAuthorizationRequest.setRequestParameters(refreshAzParameters);

    OAuth2Authentication reducedScopeAuthentication = new OAuth2Authentication(
            reducedScopeAuthorizationRequest.createOAuth2Request(), userAuthentication);
    OAuth2AccessToken reducedScopeAccessToken = tokenServices.refreshAccessToken(
            accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(reducedScopeAuthorizationRequest, "refresh_token"));

    // AT should have the new scopes, RT should be the same
    assertThat(reducedScopeAccessToken, scope(is(readScope)));
    assertEquals(reducedScopeAccessToken.getRefreshToken(), accessToken.getRefreshToken());
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = InvalidScopeException.class)
public void testCreateAccessTokenAuthcodeGrantExpandedScopes() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, 3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    // First Request
    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);/*  w w w .ja v  a  2s .c  o m*/
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    assertThat(accessToken, scope(is(requestedAuthScopes)));
    assertThat(accessToken.getRefreshToken(), is(not(nullValue())));

    assertThat(accessToken.getRefreshToken(), OAuth2RefreshTokenMatchers.scope(is(requestedAuthScopes)));
    assertThat(accessToken.getRefreshToken(), OAuth2RefreshTokenMatchers.audience(is(resourceIds)));

    // Second request with expanded scopes
    AuthorizationRequest expandedScopeAuthorizationRequest = new AuthorizationRequest(CLIENT_ID,
            expandedScopes);
    expandedScopeAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(
            expandedScopeAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    expandedScopeAuthorizationRequest.setRequestParameters(refreshAzParameters);

    OAuth2Authentication expandedScopeAuthentication = new OAuth2Authentication(
            expandedScopeAuthorizationRequest.createOAuth2Request(), userAuthentication);
    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(expandedScopeAuthorizationRequest, "refresh_token"));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test
public void testChangedExpiryForTokens() {
    BaseClientDetails clientDetails = cloneClient(defaultClient);
    clientDetails.setAccessTokenValiditySeconds(3600);
    clientDetails.setRefreshTokenValiditySeconds(36000);
    clientDetailsService.setClientDetailsStore(Collections.singletonMap(CLIENT_ID, clientDetails));

    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);/* www .ja v a2 s. c o  m*/
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    assertThat(accessToken, validFor(is(3600)));
    assertThat(accessToken.getRefreshToken(), is(not(nullValue())));

    assertThat(accessToken.getRefreshToken(), OAuth2RefreshTokenMatchers.validFor(is(36000)));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = TokenRevokedException.class)
public void testUserUpdatedAfterRefreshTokenIssued() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, 3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);/* w w w .  ja  va2s  .c  o m*/
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    UaaUser user = userDatabase.retrieveUserByName(username, OriginKeys.UAA);
    UaaUser newUser = new UaaUser(new UaaUserPrototype().withId(userId).withUsername(user.getUsername())
            .withPassword("blah").withEmail(user.getEmail()).withAuthorities(user.getAuthorities()));
    userDatabase.updateUser(userId, newUser);

    AuthorizationRequest refreshAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    refreshAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(refreshAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    refreshAuthorizationRequest.setRequestParameters(refreshAzParameters);

    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(refreshAuthorizationRequest, "refresh_token"));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = InvalidTokenException.class)
public void testRefreshTokenExpiry() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, 3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));

    BaseClientDetails clientDetails = cloneClient(defaultClient);
    // Back date the refresh token. Crude way to do this but i'm not sure of
    // another//  w w  w  . j a  v a  2s  .c  o  m
    clientDetails.setRefreshTokenValiditySeconds(-36000);
    clientDetailsService.setClientDetailsStore(Collections.singletonMap(CLIENT_ID, clientDetails));

    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    AuthorizationRequest refreshAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    refreshAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(refreshAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    refreshAuthorizationRequest.setRequestParameters(refreshAzParameters);

    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(refreshAuthorizationRequest, "refresh_token"));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = InvalidTokenException.class)
public void testRefreshTokenAfterApprovalsRevoked() {
    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);// ww w . ja v a2s .  co  m
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, 3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));

    // Other scope is left unapproved

    for (Approval approval : approvalStore.getApprovals(userId, CLIENT_ID)) {
        approvalStore.revokeApproval(approval);
    }

    AuthorizationRequest refreshAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    refreshAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(refreshAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    refreshAuthorizationRequest.setRequestParameters(refreshAzParameters);

    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(refreshAuthorizationRequest, "refresh_token"));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = InvalidTokenException.class)
public void testRefreshTokenAfterApprovalsExpired() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, -3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));

    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);//  w w  w .ja va  2s  .  c  o  m
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    AuthorizationRequest refreshAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    refreshAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(refreshAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    refreshAuthorizationRequest.setRequestParameters(refreshAzParameters);

    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(refreshAuthorizationRequest, "refresh_token"));
}

From source file:org.cloudfoundry.identity.uaa.oauth.UaaTokenServicesTests.java

@Test(expected = InvalidTokenException.class)
public void testRefreshTokenAfterApprovalsDenied() {
    Calendar expiresAt = Calendar.getInstance();
    expiresAt.add(Calendar.MILLISECOND, -3000);

    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID).setScope(readScope.get(0))
            .setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.DENIED));
    approvalStore.addApproval(new Approval().setUserId(userId).setClientId(CLIENT_ID)
            .setScope(writeScope.get(0)).setExpiresAt(expiresAt.getTime()).setStatus(ApprovalStatus.APPROVED));

    AuthorizationRequest authorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    authorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> azParameters = new HashMap<>(authorizationRequest.getRequestParameters());
    azParameters.put(GRANT_TYPE, AUTHORIZATION_CODE);
    authorizationRequest.setRequestParameters(azParameters);
    Authentication userAuthentication = defaultUserAuthentication;

    OAuth2Authentication authentication = new OAuth2Authentication(authorizationRequest.createOAuth2Request(),
            userAuthentication);/*ww  w  . j  a  va2  s.c  o  m*/
    OAuth2AccessToken accessToken = tokenServices.createAccessToken(authentication);

    AuthorizationRequest refreshAuthorizationRequest = new AuthorizationRequest(CLIENT_ID, requestedAuthScopes);
    refreshAuthorizationRequest.setResourceIds(new HashSet<>(resourceIds));
    Map<String, String> refreshAzParameters = new HashMap<>(refreshAuthorizationRequest.getRequestParameters());
    refreshAzParameters.put(GRANT_TYPE, REFRESH_TOKEN);
    refreshAuthorizationRequest.setRequestParameters(refreshAzParameters);

    tokenServices.refreshAccessToken(accessToken.getRefreshToken().getValue(),
            requestFactory.createTokenRequest(refreshAuthorizationRequest, "refresh_token"));
}