Example usage for org.springframework.security.oauth2.provider ClientDetails isScoped

List of usage examples for org.springframework.security.oauth2.provider ClientDetails isScoped

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.provider ClientDetails isScoped.

Prototype

boolean isScoped();

Source Link

Document

Whether this client is limited to a specific scope.

Usage

From source file:com.cedac.security.oauth2.provider.client.MongoClientDetailsServiceTests.java

@Test
public void testLoadingClientIdWithNoDetails() {
    collection.insert(new BasicDBObject("clientId", "clientIdWithNoDetails"));

    ClientDetails clientDetails = fixture.loadClientByClientId("clientIdWithNoDetails");

    assertEquals("clientIdWithNoDetails", clientDetails.getClientId());
    assertFalse(clientDetails.isSecretRequired());
    assertNull(clientDetails.getClientSecret());
    assertFalse(clientDetails.isScoped());
    assertEquals(0, clientDetails.getScope().size());
    assertEquals(2, clientDetails.getAuthorizedGrantTypes().size());
    assertNull(clientDetails.getRegisteredRedirectUri());
    assertEquals(0, clientDetails.getAuthorities().size());
    assertEquals(null, clientDetails.getAccessTokenValiditySeconds());
    assertEquals(null, clientDetails.getAccessTokenValiditySeconds());
}

From source file:com.cedac.security.oauth2.provider.client.MongoClientDetailsServiceTests.java

@Test
public void testLoadingClientIdWithSingleDetails() {
    collection.insert(new BasicDBObject("clientId", "clientIdWithSingleDetails")
            .append("clientSecret", "mySecret").append("resourceIds", Arrays.asList("myResource"))
            .append("scope", Arrays.asList("myScope"))
            .append("authorizedGrantTypes", Arrays.asList("myAuthorizedGrantType"))
            .append("registeredRedirectUris", Arrays.asList("myRedirectUri"))
            .append("authorities", Arrays.asList("myAuthority")).append("accessTokenValidity", 100)
            .append("refreshTokenValidity", 200).append("autoapprove", "true"));

    ClientDetails clientDetails = fixture.loadClientByClientId("clientIdWithSingleDetails");

    assertEquals("clientIdWithSingleDetails", clientDetails.getClientId());
    assertTrue(clientDetails.isSecretRequired());
    assertEquals("mySecret", clientDetails.getClientSecret());
    assertTrue(clientDetails.isScoped());
    assertEquals(1, clientDetails.getScope().size());
    assertEquals("myScope", clientDetails.getScope().iterator().next());
    assertEquals(1, clientDetails.getResourceIds().size());
    assertEquals("myResource", clientDetails.getResourceIds().iterator().next());
    assertEquals(1, clientDetails.getAuthorizedGrantTypes().size());
    assertEquals("myAuthorizedGrantType", clientDetails.getAuthorizedGrantTypes().iterator().next());
    assertEquals("myRedirectUri", clientDetails.getRegisteredRedirectUri().iterator().next());
    assertEquals(1, clientDetails.getAuthorities().size());
    assertEquals("myAuthority", clientDetails.getAuthorities().iterator().next().getAuthority());
    assertEquals(new Integer(100), clientDetails.getAccessTokenValiditySeconds());
    assertEquals(new Integer(200), clientDetails.getRefreshTokenValiditySeconds());
}

From source file:com.cedac.security.oauth2.provider.client.MongoClientDetailsServiceTests.java

@Test
public void testLoadingClientIdWithMultipleDetails() {
    collection.insert(new BasicDBObject("clientId", "clientIdWithMultipleDetails")
            .append("clientSecret", "mySecret")
            .append("resourceIds", Arrays.asList("myResource1", "myResource2"))
            .append("scope", Arrays.asList("myScope1", "myScope2"))
            .append("authorizedGrantTypes", Arrays.asList("myAuthorizedGrantType1", "myAuthorizedGrantType2"))
            .append("registeredRedirectUris", Arrays.asList("myRedirectUri1", "myRedirectUri2"))
            .append("authorities", Arrays.asList("myAuthority1", "myAuthority2"))
            .append("accessTokenValidity", 100).append("refreshTokenValidity", 200)
            .append("autoapprove", Arrays.asList("read", "write")));

    ClientDetails clientDetails = fixture.loadClientByClientId("clientIdWithMultipleDetails");

    assertEquals("clientIdWithMultipleDetails", clientDetails.getClientId());
    assertTrue(clientDetails.isSecretRequired());
    assertEquals("mySecret", clientDetails.getClientSecret());
    assertTrue(clientDetails.isScoped());
    assertEquals(2, clientDetails.getResourceIds().size());
    Iterator<String> resourceIds = clientDetails.getResourceIds().iterator();
    assertEquals("myResource1", resourceIds.next());
    assertEquals("myResource2", resourceIds.next());
    assertEquals(2, clientDetails.getScope().size());
    Iterator<String> scope = clientDetails.getScope().iterator();
    assertEquals("myScope1", scope.next());
    assertEquals("myScope2", scope.next());
    assertEquals(2, clientDetails.getAuthorizedGrantTypes().size());
    Iterator<String> grantTypes = clientDetails.getAuthorizedGrantTypes().iterator();
    assertEquals("myAuthorizedGrantType1", grantTypes.next());
    assertEquals("myAuthorizedGrantType2", grantTypes.next());
    assertEquals(2, clientDetails.getRegisteredRedirectUri().size());
    Iterator<String> redirectUris = clientDetails.getRegisteredRedirectUri().iterator();
    assertEquals("myRedirectUri1", redirectUris.next());
    assertEquals("myRedirectUri2", redirectUris.next());
    assertEquals(2, clientDetails.getAuthorities().size());
    Iterator<GrantedAuthority> authorities = clientDetails.getAuthorities().iterator();
    assertEquals("myAuthority1", authorities.next().getAuthority());
    assertEquals("myAuthority2", authorities.next().getAuthority());
    assertEquals(new Integer(100), clientDetails.getAccessTokenValiditySeconds());
    assertEquals(new Integer(200), clientDetails.getRefreshTokenValiditySeconds());
    assertTrue(clientDetails.isAutoApprove("read"));
}

From source file:st.malike.auth.server.service.security.ClientDetailService.java

private ClientDetail getMongoDBClientDetailsFromClient(ClientDetails cd) {
    ClientDetail clientDetails = new ClientDetail();
    clientDetails.setAccessTokenValiditySeconds(cd.getAccessTokenValiditySeconds());
    clientDetails.setAdditionalInformation(cd.getAdditionalInformation());
    clientDetails.setAuthorizedGrantTypes(cd.getAuthorizedGrantTypes());
    clientDetails.setClientId(cd.getClientId());
    clientDetails.setClientSecret(cd.getClientSecret());
    clientDetails.setRefreshTokenValiditySeconds(cd.getRefreshTokenValiditySeconds());
    clientDetails.setRegisteredRedirectUri(cd.getRegisteredRedirectUri());
    clientDetails.setResourceIds(cd.getResourceIds());
    clientDetails.setScope(cd.getScope());
    clientDetails.setScoped(cd.isScoped());
    clientDetails.setSecretRequired(cd.isSecretRequired());
    clientDetails.setId(cd.getClientId());
    return clientDetails;
}

From source file:com.tlantic.integration.authentication.service.security.ClientDetailService.java

public ClientDetail getMongoDBClientDetailsFromClient(ClientDetails cd) {
    ClientDetail clientDetails = new ClientDetail();
    clientDetails.setAccessTokenValiditySeconds(cd.getAccessTokenValiditySeconds());
    clientDetails.setAdditionalInformation(cd.getAdditionalInformation());
    clientDetails.setAuthorizedGrantTypes(cd.getAuthorizedGrantTypes());
    clientDetails.setClientId(cd.getClientId());
    clientDetails.setClientSecret(cd.getClientSecret());
    clientDetails.setRefreshTokenValiditySeconds(cd.getRefreshTokenValiditySeconds());
    clientDetails.setRegisteredRedirectUri(cd.getRegisteredRedirectUri());
    clientDetails.setResourceIds(cd.getResourceIds());
    clientDetails.setScope(cd.getScope());
    clientDetails.setScoped(cd.isScoped());
    clientDetails.setSecretRequired(cd.isSecretRequired());
    clientDetails.setId(cd.getClientId());
    return clientDetails;
}

From source file:org.orcid.core.oauth.OrcidClientCredentialsChecker.java

private void validateScope(ClientDetails clientDetails, Set<String> scopes) {

    if (clientDetails.isScoped()) {
        Set<String> validScope = clientDetails.getScope();
        if (scopes.isEmpty()) {
            throw new InvalidScopeException("Invalid scope (none)", validScope);
        } else if (!containsAny(validScope, ScopePathType.ORCID_PROFILE_CREATE, ScopePathType.WEBHOOK,
                ScopePathType.PREMIUM_NOTIFICATION, ScopePathType.GROUP_ID_RECORD_READ,
                ScopePathType.GROUP_ID_RECORD_UPDATE) && !scopes.contains(ScopePathType.READ_PUBLIC.value())
                && scopes.size() == 1) {
            throw new InvalidScopeException(
                    "Invalid scope" + (scopes != null && scopes.size() > 1 ? "s: " : ": " + "")
                            + OAuth2Utils.formatParameterList(scopes),
                    validScope);/*www . j  a  v a2  s  .co m*/
        }

        // The Read public does not have to be granted. It's the implied
        // read level. We let this through, regardless
        if (scopes.size() == 1 && scopes.iterator().next().equals(ScopePathType.READ_PUBLIC.value())) {
            return;
        }

        for (String scope : scopes) {
            if (!validScope.contains(scope)) {
                throw new InvalidScopeException("Invalid scope: " + scope, validScope);
            }
        }
    }

}