Spring Security:ユーザーがremember me cookieであるかどうかを確認する
この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"%>
# This user is login by "Remember Me Cookies".
# This user is login by username / password.
Note
isRememberMe()–現在のプリンシパルがremember-meユーザーの場合はtrueを返します
isFullyAuthenticated()–ユーザーが匿名またはremember-meユーザーでない場合はtrueを返します