6
votes

Spring Boot OAuth2 Configuration: Le serveur de ressources reste non protégé

J'ai mis en œuvre le serveur d'autorisation et le serveur de ressources à l'aide de la chaussure à ressort. Le serveur d'autorisation fonctionne bien et je suis capable de recevoir des jetons. Mais mon serveur de ressources reste non protégé. Mon objectif est que le serveur de ressources ait été accessible que par une personne ayant un jeton d'accès valide.

Mon code entier est: P>

@Configuration
public class WebSecurityGlobalConfig extends GlobalAuthenticationConfigurerAdapter {

    @Autowired
    UserService userService;

    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
        .withUser("bill").password("abc123").roles("ADMIN").and()
        .withUser("bob").password("abc123").roles("USER");
    }

}


2 commentaires

Tout est dans la même application ou séparément?


Tout dans une application seulement


3 Réponses :


0
votes

Annoter votre oauth2securityConfig avec @ENABLEGLOBALMETHODSecurity (Prepostenabled = TRUE)


0 commentaires

8
votes

Enfin après beaucoup de googling, j'ai trouvé la solution.

C'était dû à l'ordre des filtres. L'ordre du filtre à ressources OAuth2 a été modifié dans Spring-boot-1.5.1. Comme le logement de changement dit

L'ordre par défaut du filtre de ressources OAUTH2 est passé de 3 à SecurityProperties.Access_override_order - 1. Cela l'place après la Les points d'extrémité de l'actionneur mais avant la chaîne de filtrage d'authentification de base. La valeur par défaut peut être restaurée en définissant Security.Oauth2.Resource.Filter-Order = 3

Donc, j'ai changé l'ordre de mon filtre de serveur de ressources OAuth2 à 3 en la définissant dans Application.Properties Security.oauth2.Resource.filter-commander = 3 et mon problème a été résolu.


2 commentaires

Merci m'a sauvé beaucoup de temps!


Cette propriété a été supprimée à Boot 2.x. Une solution pour cela?



0
votes

J'ai eu le même problème.

J'ai eu une autre classe extension WebSecurityConfigureAdapter que je suppose était en conflit avec autorizationerverconfigureAdapter.

i juste supprimé la classe WebSecurityConfigurierAdapter et cela a fonctionné.


0 commentaires