W mojej aplikacji Spring Boot z RESTful webservices skonfigurowałem Spring Security razem z Spring Social i SpringSocialConfigurer
.Weryfikacja/autoryzacja Spring Security poprzez punkt końcowy REST
W tej chwili mam dwa sposoby uwierzytelniania/autoryzacji - przez nazwę użytkownika/hasło i przez sieci społecznościowe, na przykład Twitter.
W celu realizacji uwierzytelniania/autoryzacji za pośrednictwem własnego punktu końcowego relaksującego w moim kontroler wiosny MVC REST Dodałem następujący sposób:
@RequestMapping(value = "/login", method = RequestMethod.POST)
public Authentication login(@RequestBody LoginUserRequest userRequest) {
Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(userRequest.getUsername(), userRequest.getPassword()));
boolean isAuthenticated = isAuthenticated(authentication);
if (isAuthenticated) {
SecurityContextHolder.getContext().setAuthentication(authentication);
}
return authentication;
}
private boolean isAuthenticated(Authentication authentication) {
return authentication != null && !(authentication instanceof AnonymousAuthenticationToken) && authentication.isAuthenticated();
}
ale nie jestem pewien, co dokładnie musi być zwrócony do klienta po udanej /login
wywołanie punktu końcowego. Myślę, że zwrócenie pełnego obiektu uwierzytelniania jest zbędne.
Co należy zwrócić klientowi w przypadku udanego uwierzytelnienia?
Czy możesz mi powiedzieć, jak poprawnie wdrożyć tę metodę logowania?
Również w przypadku Restfull logowania Muszę UsernamePasswordAuthenticationToken
aw przypadku logowania poprzez Twitter Muszę SocialAuthenticationToken
Czy mogę mieć różne znaki w samej aplikacji?
Dziękuję za odpowiedź. Właśnie tego używam w mojej obecnej aplikacji. – alexanoid