簡體   English   中英

使用spring security進行手動身份驗證並記住我的提供者

[英]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);

但是在這種情況下如何使用記住我的提供者呢? 先感謝您

解決方案如下:

  1. 檢查用戶的密碼
  2. 授權用戶:

     UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(user.getEmail(), user.getPassword()); token.setDetails(new WebAuthenticationDetails(request)); Authentication authenticatedUser = authenticationManager.authenticate(token); SecurityContextHolder.getContext().setAuthentication(authenticatedUser); 
  3. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM