2016-06-28 16 views
3

Ich habe Trouble finden Beispiel für OAuth2-Client mit Spring implementiert.Oauth2 Client im Frühjahr Sicherheit

Ich habe OAuth2 Autorisierung und Ressource-Server mit Spring implementiert. Ich möchte Zugriffstoken von diesem Autorisierungsserver erhalten. Ich brauche ein Beispiel, wie ich Zugriffstoken von meinem OAuth2-Server nur mit den Client-Anmeldeinformationen erhalten kann. Es ist kein Benutzer beteiligt, nur meine Clientanwendung erhält Zugriffstoken unter Verwendung von Clientanmeldeinformationen und verwendet sie dann, um auf Client Ressourcen zuzugreifen.

Ich fand nur ein Beispiel mit Java-Bibliotheken, aber ich nehme an, dass es Unterstützung in Spring OAuth2 Framework gibt. Wenn möglich, sollte ein Beispiel OAuth2-Client, OAuth2-Autorisierungsserver und OAuth2-Ressourcenserver enthalten, die alle über TLS mithilfe eines selbstsignierten Zertifikats kommunizieren, das mit Spring implementiert wurde und keine XML-Konfiguration verwendet. Hier

ist die Sequenzdiagramm:

enter image description here

Antwort

5

Es ist ziemlich straightfoward ein Zugriffstoken über Spring Security OAuth2 Bibliothek als Beispielcode unten zu bekommen. Die einzige Abhängigkeit Sie in diesem Fall brauchen, ist

{ 
    <dependency> 
     <groupId>org.springframework.security.oauth</groupId> 
     <artifactId>spring-security-oauth2</artifactId> 
     <version>2.1.0.RELEASE</version> 
    </dependency> 
} 

Beispielcode:

@Test 
public void getAccessTokenViaSpringSecurityOAuthClient() { 
    try{ 

     ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails(); 
     resourceDetails.setClientSecret(TestOAuthConstants.CLIENT_SECRET); 
     resourceDetails.setClientId(TestOAuthConstants.CLIENT_ID); 
     resourceDetails.setAccessTokenUri(TestOAuthConstants.TOKEN_REQUEST_URL); 
     resourceDetails.setScope(TestOAuthConstants.SCOPES); 

     OAuth2RestTemplate oAuthRestTemplate = new OAuth2RestTemplate(resourceDetails); 

     org.springframework.http.HttpHeaders headers = new org.springframework.http.HttpHeaders(); 
     headers.setContentType(MediaType.APPLICATION_JSON); 

     OAuth2AccessToken token = oAuthRestTemplate.getAccessToken(); 
     System.out.println(oAuthRestTemplate.getResource()); 
     System.out.println(oAuthRestTemplate.getOAuth2ClientContext()); 
     System.out.println(token); 

     assertTrue(token != null); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
Verwandte Themen