2017-10-17 11 views
0

ici est ce que je suis en train de réaliser:sécurité Spring OAuth 2 application client ne peut pas vérifier la validité jeton

J'ai un fournisseur de oauth d'entreprise 2, je veux utiliser le formulaire de login et obtenir le code, jeton d'accès et ainsi de suite ce fournisseur

voici ma 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 

je peux obtenir mon code qui est changé pour un jeton d'accès, tout va bien, qu'il appelle mon point de terminaison local pour obtenir des informations utilisateur (rôles exemple)

mais lorsque je débogue le code, je ne vois aucune valeur expires_in nulle part et mon jeton n'expire pas du tout.

voici mon serveur ressource 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()); 
    } 
} 

Je ne peux pas fidn comment révoquer le jeton

toute idée est la bienvenue, j'ai perdu un tas de tutoriels de lecture de l'heure ...

Répondre

0

Ajouter access-token-validity-seconds à votre 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

Je Coud mais le jeton Vali Dity devrait provenir du fournisseur auth droit? – Seb

+0

Je crois que vous utilisez un client basé sur la mémoire. Vous pouvez mettre à jour la validité du jeton d'accès pour chaque client lorsque vous déplacez le token-store dans une base de données. –

+0

J'utilise en effet dans le magasin de mémoire en effet mais toujours, j'obtiens la valeur expires_in du fournisseur d'autorisation et ceci devrait être utilisé et vérifié par Spring, non? Ou y a-t-il quelque chose que je ne comprends pas? – Seb