Hello

J'ai un problème de securité sur une application microservice qui m'enerve au plus haut point.
En résumé, j'ai un backend microservice spring boot securisé par oauth2. J'arrive très bien a me connecter dessus via postman.

J'ai également fait un front ultra simple qui est composé d'un controler qui poste directement les parametres et enregistre le token en réponse dans HttpSession, et un inthrceptor qui ajoute le header Authorization et le token s'il est en memoire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@FeignClient(name = "gateway-server")
@RequestMapping("auth")
public interface AuthProxy {
 
    @PostMapping(value = "oauth/token", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    TokenBean PostLogin(
            @RequestParam("grant_type") String grantType,
            @RequestParam("client_id") String clientId,
            @RequestParam("client_secret") String clientSecret,
            @RequestParam("username") String username,
            @RequestParam("password") String password,
            @RequestParam("scope") String scope
    );
 
    @GetMapping(value = "current")
    void GetCurrent();
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
@Slf4j
@Component
public class AuthInterceptor extends HandlerInterceptorAdapter {
 
    @Autowired
    private HttpSession httpSession;
 
 
    @Override
    public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response, final Object handler) throws Exception {
 
        TokenBean tokenBean = (TokenBean) httpSession.getAttribute("token");
 
        if (tokenBean != null) {
            response.setHeader("Authorization", tokenBean.getTokenType() + " " + tokenBean.getAccessToken());
            log.info("Authorization : " + tokenBean.getTokenType() + " " + tokenBean.getAccessToken());
        }
        return true;
    }
 
}
Seulement voila, comme vous pouvez vous en douter, coder les interceptors, redirections si 401, etc, c'est chiant ....
Du coup, est-ce que spring security permet de gerer tout ça pour moi ?

La plupart des ressources que j'ai trouvé traitaient d'une connexion en api monolithique où le service d'authentification est integré à l'appli, ou,concernaient de technos style angular pour les webservices se connectant à un backend

Merci