春のセキュリティ:ユーザーが私のクッキーを覚えていないかチェックする
このSpring Securityの例は、ユーザーが「Remember me」Cookieからログインしているかどうかをチェックする方法を示しています。
private boolean isRememberMeAuthenticated() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null) { return false; } return RememberMeAuthenticationToken.class.isAssignableFrom(authentication.getClass()); } @RequestMapping(value = "/admin/update** ** ", method = RequestMethod.GET) public ModelAndView updatePage() { ModelAndView model = new ModelAndView(); if (isRememberMeAuthenticated()) { model.setViewName("/login"); } else { model.setViewName("update"); } return model; }
Spring Securityタグでは、次のように記述することができます:
<%@taglib prefix="sec" uri="http://www.springframework.org/security/tags"%> <%@page session="true"%> <html> <body> <sec:authorize access="isRememberMe()"> <h2># This user is login by "Remember Me Cookies".</h2> </sec:authorize> <sec:authorize access="isFullyAuthenticated()"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-format="fluid" data-ad-layout="in-article" data-ad-client="ca-pub-2836379775501347" data-ad-slot="6894224149"></ins> <script> (adsbygoogle = window.adsbygoogle ||[]).push({}); </script><h2># This user is login by username/password.</h2> </sec:authorize> </body> </html>
参考文献
セキュリティ、Spring EL式の概要]。
http://docs.spring.io/spring-security/site/docs/3.0.8.RELEASE/apidocs/org/springframework/security/authentication/AuthenticationTrustResolverImpl.html
[AuthenticationTrustResolverImpl
JavaDoc]。リンク://spring-security/spring-security-remember-me-example/[Spring
セキュリティを覚えている例]