menu
書いてる野郎
orebike@gmail.com
セキュリティの一環でログイン・ログアウトの前後でセッションを張り替える(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 を使うと、セッションは更新されて、どういう原理かよくわからないが値は継続される。