Ich habe dieses Stück CodeWo sollte die manuelle Authentifizierungslogik im Frühling Sicherheit gehen - Service-Layer oder Präsentationsebene?
UserDetails userDetails = userDetailsServiceImpl.loadUserByUsername(email);
Authentication authentication = new UsernamePasswordAuthenticationToken(userDetails, userDetails.getPassword(), userDetails.getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
HttpSession session = request.getSession(true);
session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
Dies ist, um manuell einen Benutzer im Frühjahr Sicherheit zu authentifizieren. Meine Frage ist, wo sollte ich diesen Code platzieren? Wenn ich dies in den Service-Layer lege, zwinge ich das HttpSession-Objekt in den Service-Layer zu bringen, was AFAIK schlecht ist. Ich bin mir nicht sicher, wie gut es ist, die Authentifizierungslogik in der Darstellungsschicht zu platzieren. Jeder mit irgendwelchen Einblicken?
Vielen Dank im Voraus.
Erm, Servlet Filter ist Standard, haben Sie aus irgendeinem Grund absichtlich nur auf diese beiden Optionen beschränkt? – Affe
also muss ich einen benutzerdefinierten Filter schreiben? Ab sofort ist es eine einfache GET-Anfrage. Ich muss die Logik in diesem Anruf berücksichtigen. – shazinltc
Wenn Sie nur die Standardauthentifizierung verwenden, können Sie einfach die Feder konfigurieren, um diese für Sie zu handhaben. – benzonico