Spring Boot/認証/スクラッチ/HelloWorld/070_セッションの張替え

Spring Boot/認証/スクラッチ/HelloWorld/070_セッションの張替え

Prev

Refresh Session

セキュリティの一環でログイン・ログアウトの前後でセッションを張り替える(Session ID を新たに作り直す)というものがある。 これに挑戦してみよう。

これは session そのものを直接扱う必要が出てくる。

@Controller
@RequestMapping("/login")
public class LoginController {
    @Autowired
    private AuthUser authUser;
 
    @Autowired
    private HttpSession session;
    @Autowired
    private HttpServletRequest request;
 
 
    @RequestMapping("")
    @NoAuth
    public String index() {
        System.out.println(authUser.isLoginFlg());
        return "login/index";
    }
    @RequestMapping("/doLogin")
    @NoAuth
    public String doLogin() {
        session.invalidate();
        session = request.getSession(true);
 
        authUser.setLoginFlg(true);
        return "redirect:/hoge";
    }
    @RequestMapping("/doLogout")
    @NoAuth
    public String doLogout() {
        session.invalidate();
        session = request.getSession(true);
 
        authUser.setLoginFlg(false);
        return "redirect:/login";
    }
}

このように session と request を使うと、セッションは更新されて、どういう原理かよくわからないが値は継続される。

Next

java/spring/spring_boot/auth/scratch/helloworld/070_refresh_session.txt · 最終更新: 2019-06-28 11:05 by ore