Shiro提供了Remember服务,AuthenticationToken需要实现org.apache.shiro.authc.RememberMeAuthenticationToken接口(UsernamePasswordtoken已经提供了这个接口)。
这个接口提供了一个方法 :
boolean isRememberMe();
如果这个方法设置为true,Shiro 将会在整个会话中记住终端用户的身份ID。
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
token.setRememberMe(true);
表单提交方式
在Web应用中,默认的认证过滤器是FormAuthenticationFilter。它读取一个名为‘rememberMe’表单值来支持 Remember Me 服务,此值是布尔型。比如在你的页面里有一个名为‘rememberMe’的checkbox:
<form action="login.action",method="post"> Username: <input type="text" name="username"/> <br/> Password: <input type="password" name="password"/> <input type="checkbox" name="rememberMe" value="true"/>Remember Me </form> |
默认的FormAuthenticationFilter会寻找请求参数名为username,password和rememberMe的值。如果你的参数名与这些默认值不同,你可以在FormAuthenticationFilter中进行配置