0

Je construis un service web qui utilise le printemps mvc 4 comme cadre. Mon service web a des API qui ont une signature de/api/v1/apinameFournisseur de sécurité de printemps pour la connexion web et la sécurité API

Mes services sont appelés par des services externes et doivent être authentifiés. Je préfère utiliser un jeton préautorisé pour le service que je peux lire et faire l'autorisation.

Dans le cas de mon site Web, qui est hébergé sur le même service utilise un sso à signer qui utilise essentiellement des cookies pour authentifier l'utilisateur.

J'ai développé un code partiel qui prend en charge la connexion en utilisant le jeton d'en-tête et SSO. Mais je dois m'assurer que toutes les API doivent me renvoyer 401 en cas de non authentification, et l'accès à la page web devrait rediriger vers un but externe d'authentification du service sso.

http.anonymous().disable() 
       .authorizeRequests() 
       .antMatchers("/login").permitAll() 
       .antMatchers("/resources/protected**").denyAll() 
       .antMatchers("/**").fullyAuthenticated() 
       .and() 
       .csrf().disable() 
       .logout().logoutUrl("/logout").logoutSuccessUrl("/") 
       .and() 
       .addFilterBefore(new TokenAuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class) 
       .addFilterBefore(new CookieAuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class); 

Ici, le CookieAuthenticationFilter fera le cookie d'authentification basée ... Mon problème ici est, Incase de toute demande de api devrait retourner 401 en état et toutes les autres demandes doivent rediriger vers un service externe Incase d'un accès non autorisé. Comment puis-je l'atteindre?

Répondre

0

Il devrait être très similaire à la réponse pour this question. Vous devrez configurer plusieurs objets HttpSecurity et vous pouvez configurer un comportement différent pour chacun. Le Spring documentation here a un bon exemple.