java shiro 访问频率_java shiro配置记住密码功能 RememberMe

一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理;以此来实现记住密码的功能!使用shiro自带的RememberMe功能,使用起来比较简单,只需简单的配置。

需注意一点的是,网站如果对安全性要求比较高的,一般都不建议有记住密码的功能! 因为Cookie是保存在本机电脑浏览器里,不排除其他用户能使用此电脑,拷走Cookie,导入其他电脑继续使用您的账号登录!

具体操作程序:

spring-shiro-web.xml配置

RememberMe 配置与rememberMe管理器

rememberMeCookie:即记住我的Cookie,保存时长7天;rememberMe管理器,cipherKey是加密rememberMe Cookie的密钥;默认AES算法;

……

/login.jsp = authc

/logout = logout

/authenticated.jsp = authc

/** = user

设置securityManager安全管理器的rememberMeManager;

“/authenticated.jsp = authc”表示访问该地址用户必须身份验证通过(Subject. isAuthenticated()==true);而“/** = user”表示访问该地址的用户是身份验证通过或RememberMe登录的都可以。

LoginAuthRealm.java

// 认证信息

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {

try {

UsernamePasswordToken token = (UsernamePasswordToken) authcToken;

String username = token.getUsername();

SysUsers user = userSv.getByName(token.getUsername());

if (!StringUtils.isBlank(username)) {

if (user != null) {

return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());

}

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

注:return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());其中把用户信息放入SimpleAuthenticationInfo对象,不能把整个user对象放入,不然会出现错误数组下标越界,在项目中user对象信息过于庞大,不能全部存入Cookie,Cookie对长度有一定的限制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值