2016-07-19 15 views
2

Hallo, Ich benutze Spring Security Oauth2 mit JWTTokenStore. Ich möchte den Token-Inhalt vom REST-Dienst lesen, sobald der Benutzer ihn mit der Ressourcenanforderung zurücksendet. zB: curl -i -H "Authorization: Bearer" http://localhost:8080/api/UserDetailsInhalt des JWT-Tokens im REST-Dienst lesen

Lese Token in Userdetails Service.

danke.

+0

https://github.com/nielsutrecht/jwt-angular-spring dieses Projekt Überprüfen Sie es einfach und effektiv ist und dass "Authorization: Bearer", wie Sie es nennen. –

Antwort

0

Wenn Ihr Anfrage-Header das jwt-Token hat. Gehen Sie wie folgt

String jwtToken = request.getHeader("Authorization"); 
Claims claims = Jwts.parser().setSigningKey("secretkey") 
           .parseClaimsJws(jwtToken).getBody(); 
claims.getSubject(); 
claims.getExpiration(); 

wo SecretKey der Schlüssel verwendet wird, während Sie jwt Token erzeugt wird.

0

Sie haben einige Optionen zu tun, dass:

((OAuth2AuthenticationDetails) SecurityContextHolder.getContext() 
    .getAuthentication().getDetails()) 
     .getTokenValue(); 

Der Vorteil dieser ersten Option wird in Integrationstests spöttisch.

Oder:

@AutoWired 
private OAuth2ClientContext oAuth2ClientContext ; 

public void getToken() { 
    String token = oAuth2ClientContext.getAccessToken().getValue(); 
} 

Ich weiß wirklich nicht, wie die OAuth2ClientContext in Integrationstest verspotten.

oder (wenn das Token übergeben den Namen „Authorization“ verwenden):

((ServletRequestAttributes) RequestContextHolder 
    .currentRequestAttributes()) 
     .getRequest().getHeader("Authorization");