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

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

Introduction

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

Prototype

Set<String> getResourceIds();

Source Link

Document

The resources that this client can access.

Usage

From source file:org.socialhistoryservices.pid.controllers.KeysController.java

@RequestMapping("/admin/keys")
public ModelAndView list(@RequestParam(value = "token", required = false) String refresh_token) {

    ModelAndView mav = new ModelAndView("keys");
    final SecurityContext context = SecurityContextHolder.getContext();
    Authentication authentication = context.getAuthentication();
    List<String> nas = NamingAuthority.getNaRole(authentication);
    if (refresh_token != null) {
        mongoTokenStore.removeAccessTokenUsingRefreshToken(refresh_token);
        mongoTokenStore.removeRefreshToken(refresh_token);
    }/*  ww  w  .j a v  a 2s.co m*/
    OAuth2AccessToken token = mongoTokenStore.selectKeys(authentication.getName());
    if (token == null) {
        final ClientDetails clientDetails = clientDetailsService.loadClientByClientId(clientId);
        final ClientToken clientToken = new ClientToken(clientId,
                new HashSet<String>(clientDetails.getResourceIds()), clientDetails.getClientSecret(),
                new HashSet<String>(clientDetails.getScope()), clientDetails.getAuthorities());
        final OAuth2Authentication oAuth2Authentication = new OAuth2Authentication(clientToken, authentication);
        token = tokenServices.createAccessToken(oAuth2Authentication);
    }
    mav.addObject("token", token);
    mav.addObject("nas", nas);
    return mav;
}

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

private void updateDBObject(DBObject dbo, ClientDetails clientDetails) {
    dbo.put(resourceIdsFieldName, clientDetails.getResourceIds());
    dbo.put(scopeFieldName, clientDetails.getScope());
    dbo.put(authorizedGrantTypesFieldName, clientDetails.getAuthorizedGrantTypes());
    dbo.put(registeredRedirectUrisFieldName, clientDetails.getRegisteredRedirectUri());
    dbo.put(authoritiesFieldName, AuthorityUtils.authorityListToSet(clientDetails.getAuthorities()));
    dbo.put(accessTokenValidityFieldName, clientDetails.getAccessTokenValiditySeconds());
    dbo.put(refreshTokenValidityFieldName, clientDetails.getRefreshTokenValiditySeconds());
    dbo.put(additionalInformationFieldName, clientDetails.getAdditionalInformation());
    Set<String> autoApprove = new HashSet<String>();
    for (String scope : clientDetails.getScope()) {
        if (clientDetails.isAutoApprove(scope)) {
            autoApprove.add(scope);/*  w w  w .ja va 2 s .  c o  m*/
        }
    }
    dbo.put(autoApproveFieldName, autoApprove.size() == 1 ? autoApprove.iterator().next() : autoApprove);
}

From source file:com.vivastream.security.oauth2.provider.DynamoDBClientDetailsService.java

public void saveOrUpdateClient(ClientDetails clientDetails) {
    Map<String, AttributeValueUpdate> updates = new HashMap<String, AttributeValueUpdate>();
    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnResourceIds(),
            StringUtils.collectionToCommaDelimitedString(clientDetails.getResourceIds()));
    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnScopes(),
            StringUtils.collectionToCommaDelimitedString(clientDetails.getScope()));
    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnAuthorizedGrantTypes(),
            StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorizedGrantTypes()));
    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnAuthorities(),
            StringUtils.collectionToCommaDelimitedString(
                    AuthorityUtils.authorityListToSet(clientDetails.getAuthorities())));
    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnRegisteredRedirectUris(),
            StringUtils.collectionToCommaDelimitedString(clientDetails.getRegisteredRedirectUri()));

    DynamoDBUtils.nullSafeUpdateS(updates, schema.getColumnClientSecret(), clientDetails.getClientSecret());

    enrichUpdates(updates, clientDetails);

    client.updateItem(schema.getTableName(), Collections.singletonMap(schema.getColumnClientId(),
            new AttributeValue(clientDetails.getClientId())), updates);
}

From source file:org.springframework.security.oauth2.provider.client.JdbcClientDetailsService.java

private Object[] getFieldsForUpdate(ClientDetails clientDetails) {
    String json = null;//from   w  w w  . jav a 2s. c o  m
    try {
        json = mapper.write(clientDetails.getAdditionalInformation());
    } catch (Exception e) {
        logger.warn("Could not serialize additional information: " + clientDetails, e);
    }
    return new Object[] {
            clientDetails.getResourceIds() != null
                    ? StringUtils.collectionToCommaDelimitedString(clientDetails.getResourceIds())
                    : null,
            clientDetails.getScope() != null
                    ? StringUtils.collectionToCommaDelimitedString(clientDetails.getScope())
                    : null,
            clientDetails.getAuthorizedGrantTypes() != null
                    ? StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorizedGrantTypes())
                    : null,
            clientDetails.getRegisteredRedirectUri() != null
                    ? StringUtils.collectionToCommaDelimitedString(clientDetails.getRegisteredRedirectUri())
                    : null,
            clientDetails.getAuthorities() != null
                    ? StringUtils.collectionToCommaDelimitedString(clientDetails.getAuthorities())
                    : null,
            clientDetails.getAccessTokenValiditySeconds(), clientDetails.getRefreshTokenValiditySeconds(), json,
            getAutoApproveScopes(clientDetails), clientDetails.getClientId() };
}

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: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:org.cloudfoundry.identity.uaa.oauth.UaaAuthorizationRequestManager.java

private Set<String> getResourceIds(ClientDetails clientDetails, Set<String> scopes) {
    Set<String> resourceIds = new LinkedHashSet<String>();
    for (String scope : scopes) {
        if (scopeToResource.containsKey(scope)) {
            resourceIds.add(scopeToResource.get(scope));
        } else if (scope.contains(scopeSeparator) && !scope.endsWith(scopeSeparator)
                && !scope.equals("uaa.none")) {
            String id = scope.substring(0, scope.lastIndexOf(scopeSeparator));
            resourceIds.add(id);/*from   ww w  .j ava2 s. c o m*/
        }
    }
    return resourceIds.isEmpty() ? clientDetails.getResourceIds() : resourceIds;
}