春のセキュリティ:ユーザーが私のクッキーを覚えていないかチェックする

この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を返します