2017-10-17 1 views
0

hier ist das, was ich zu erreichen bin versucht:Spring Security oauth 2 Client-Anwendung nicht Token Gültigkeit überprüfen

Ich habe ein Unternehmen oauth 2 Provider, ich will ihre Login-Formular verwenden und erhalten Code, Zugriffstoken und so weiter von diesem Anbieter

hier ist mein conf

security: 
    oauth2: 
    client: 
     clientId: MY_CLIENT_ID 
     clientSecret: asecret 
     accessTokenUri: https://blabla/oauth-server/oauth/token 
     userAuthorizationUri: https://blabla/oauth-server/oauth/authorize 
     tokenName: access_token 
     scope : read 
     userInfoUri: https://localhost/user 

ich kann meinen Code erhalten, die für einen Zugriffstoken geändert wird, alles ist in Ordnung, es ist meinen lokalen Endpunkt Aufruf an Benutzerinformationen (Rollen erhält für Beispiel)

aber wenn ich den Code debuggen kann ich keine expires_in Wert irgendwo sehen und mein Token läuft überhaupt nicht ab.

hier ist mein Ressource-Server conf

@EnableResourceServer 
@EnableOAuth2Sso 
@RestController 
public class SecurityController extends ResourceServerConfigurerAdapter { 

    private static final String RESOURCE_ID = "my_rest_api"; 


    @Override 
    public void configure(ResourceServerSecurityConfigurer resources) { 
     resources.resourceId(RESOURCE_ID).stateless(true); 
    } 

    @Override 
    public void configure(HttpSecurity http) throws Exception { 
     http.requestMatchers().anyRequest().and().authorizeRequests(); 
     http. 
       anonymous().disable() 
       .requestMatchers().antMatchers("/**/*") 
       .and().authorizeRequests() 
       .antMatchers("/**/*").access("#oauth2.hasScope('read')") 
       .and().exceptionHandling().accessDeniedHandler(new OAuth2AccessDeniedHandler()); 
    } 
} 

Ich kann nicht fidn, wie das Token

zu widerrufen, jede Idee ist willkommen, ich habe ein paar Stunden lesen Tutorials verloren ...

Antwort

0

hinzufügen access-token-validity-seconds zu Ihrem yaml

security: 
    oauth2: 
    client: 
     clientId: MY_CLIENT_ID 
     clientSecret: asecret 
     accessTokenUri: https://blabla/oauth-server/oauth/token 
     userAuthorizationUri: https://blabla/oauth-server/oauth/authorize 
     tokenName: access_token 
     scope : read 
     userInfoUri: https://localhost/user 
     access-token-validity-seconds: 30 //Adds 30 seconds of token validity 
+0

ich coud aber das Token vali Dity sollte von Author Provider kommen, oder? – Seb

+0

Ich glaube, Sie verwenden einen In-Memory-basierten Client. Sie können die Gültigkeit des Zugriffstokens für jeden Client aktualisieren, wenn Sie den Tokenspeicher in eine Datenbank verschieben. –

+0

Ich benutze in der Tat in Speicher speichern, aber immer noch, ich bekomme die expires_in Wert von der Auth-Provider und dies sollte verwendet werden und überprüft von Spring, nein? Oder verstehe ich etwas nicht? – Seb