[英]Manual authentication with spring security and remember me provider
我需要實現手動登錄過程。 身份驗證工作正常:
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(user.getEmail(), user.getPassword());
token.setDetails(new WebAuthenticationDetails(request));
Authentication authenticatedUser = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
但是在這種情況下如何使用記住我的提供者呢? 先感謝您
解決方案如下:
授權用戶:
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(user.getEmail(), user.getPassword()); token.setDetails(new WebAuthenticationDetails(request)); Authentication authenticatedUser = authenticationManager.authenticate(token); SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
Autowire rememberMeService
並致電:
rememberMeServices.onLoginSuccess(request, response, authenticatedUser);
很好的答案。 它對我有用。
新版彈簧安全:
RememberMeAuthenticationToken auth = new RememberMeAuthenticationToken("your key",userDetails, autorities);
String p = request.getParameter("rememberme");
// your request need this parameter
Authentication authenticatedUser = authenticationManager.authenticate(auth);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
myrememberMeService.loginSuccess(request, response, authenticatedUser);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.