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

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

Introduction

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

Prototype

String getClientSecret();

Source Link

Document

The client secret.

Usage

From source file:org.mitre.openid.connect.service.ClientUserDetailsService.java

@Override
public UserDetails loadUserByUsername(String clientId) throws UsernameNotFoundException, DataAccessException {

    ClientDetails client = clientDetailsService.loadClientByClientId(clientId);

    String password = client.getClientSecret();
    boolean enabled = true;
    boolean accountNonExpired = true;
    boolean credentialsNonExpired = true;
    boolean accountNonLocked = true;
    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
    GrantedAuthority roleClient = new SimpleGrantedAuthority("ROLE_CLIENT");
    authorities.add(roleClient);/*from w w  w  .  j  av  a 2  s. c  om*/

    return new User(clientId, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked,
            authorities);

}

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

@Test
public void testClientinfo() {
    Mockito.when(clientDetailsService.loadClientByClientId("foo")).thenReturn(foo);
    ClientDetails client = endpoint.clientinfo(new UsernamePasswordAuthenticationToken("foo", "<NONE>"));
    assertEquals("foo", client.getClientId());
    assertNull(client.getClientSecret());
    assertTrue(client.getAdditionalInformation().isEmpty());
}

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);
    }//from   ww  w  .  ja v a2 s.c o 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:nl.surfnet.coin.api.service.JanusClientDetailsServiceTest.java

/**
 * Test to see if the cache works. Especially the fact that we store items in
 * the same cache with the same key for different return Objects:
 * ClientDetails and ConsumerDetails//from ww  w .  j a v  a  2  s  .c  o m
 * 
 */
@Test
public void testCache() throws IOException {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(this.getClass());

    ClientDetailsService clientDetailsService = (ClientDetailsService) ctx.getBean("janusClientDetailsService");
    Janus janus = (Janus) ctx.getBean("janus");

    when(janus.getEntityIdsByMetaData(Metadata.OAUTH_CONSUMERKEY, "consumerkey"))
            .thenReturn(Collections.singletonList("sp-entity-id"));
    when(janus.getMetadataByEntityId("sp-entity-id")).thenReturn(getMetadata());
    ClientDetails clientDetails = clientDetailsService.loadClientByClientId("consumerkey");
    assertEquals("secret", clientDetails.getClientSecret());

    // when we do this a second time the cache should kick in
    when(janus.getEntityIdsByMetaData(Metadata.OAUTH_CONSUMERKEY, "consumerkey"))
            .thenThrow(new RuntimeException("Cache did not kick in"));
    clientDetailsService.loadClientByClientId("consumerkey");

    /*
     * now do the same for the loading of ConsumerDetails (and yes, this lengthy
     * test including the reset is necessary) to make sure we don't hit the
     * cache for loading the ConsumerDetails as we store both in the same cache
     * with potentially the same key (e.g. the consumerkey) resulting in
     * java.lang.ClassCastException:
     * nl.surfnet.coin.api.oauth.ExtendedBaseClientDetails cannot be cast to
     * org.springframework.security.oauth.provider.ConsumerDetails without a
     * custom key generator
     */
    reset(janus);
    when(janus.getEntityIdsByMetaData(Metadata.OAUTH_CONSUMERKEY, "consumerkey"))
            .thenReturn(Collections.singletonList("sp-entity-id"));
    when(janus.getMetadataByEntityId("sp-entity-id")).thenReturn(getMetadata());

    ConsumerDetailsService consumerDetailsService = (ConsumerDetailsService) clientDetailsService;
    ConsumerDetails consumerDetails = consumerDetailsService.loadConsumerByConsumerKey("consumerkey");
    assertEquals("secret", ((SharedConsumerSecret) consumerDetails.getSignatureSecret()).getConsumerSecret());

    when(janus.getEntityIdsByMetaData(Metadata.OAUTH_CONSUMERKEY, "consumerkey"))
            .thenThrow(new RuntimeException("Cache did not kick in"));
    consumerDetailsService.loadConsumerByConsumerKey("consumerkey");
}

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.MongoClientDetailsService.java

private DBObject toDBObject(ClientDetails clientDetails) {
    BasicDBObject dbo = new BasicDBObject(clientIdFieldName, clientDetails.getClientId());
    if (clientDetails.isSecretRequired()) {
        dbo.put(clientSecretFieldName, passwordEncoder.encode(clientDetails.getClientSecret()));
    }//  ww w . j  av a2s.c  o  m
    updateDBObject(dbo, clientDetails);
    return dbo;
}

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.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.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 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"));
}