Hallo,
ich möchte gerne herausfinden, ob der User eingeloggt ist. Bislang habe ich das so gemacht:
Und bei jedem geschützten Aufruf überprüfe ich erst, ob die Session gesetzt ist.
Das funktioniert und erfüllt seinen Zweck aber Spring Boot schlägt vor, dass die Authentifizierung so erfolgt:
Wozu? und was ist hier der Unterschied?
ich möchte gerne herausfinden, ob der User eingeloggt ist. Bislang habe ich das so gemacht:
Java:
public void setSession(Map<String, String> data, HttpSession session) {
...
session.setAttribute("uid", user.getId());
}
Und bei jedem geschützten Aufruf überprüfe ich erst, ob die Session gesetzt ist.
Das funktioniert und erfüllt seinen Zweck aber Spring Boot schlägt vor, dass die Authentifizierung so erfolgt:
Java:
public void login(HttpServletRequest req, String user, String pass) {
UsernamePasswordAuthenticationToken authReq
= new UsernamePasswordAuthenticationToken(user, pass);
Authentication auth = authManager.authenticate(authReq);
SecurityContext sc = SecurityContextHolder.getContext();
sc.setAuthentication(auth);
HttpSession session = req.getSession(true);
session.setAttribute(SPRING_SECURITY_CONTEXT_KEY, sc);
}
Wozu? und was ist hier der Unterschied?