基于SSM的RBAC权限系统(4)-巧用Shiro自带加密
来源:互联网 发布:旋转矩阵计算旋转角度 编辑:程序博客网 时间:2024/06/05 18:24
基于SSM的RBAC权限系统(4)-巧用Shiro自带加密
背景
在打算用Shiro做密码加密的时候,一开始Shiro只能在验证登录口令时Shiro才拿加密密码以及自己从数据库的密码去匹配,但是在注册、添加、编辑需要再次加密的时候却找不到对应的办法,难道要我自己写个方法加密?但是既然Shiro有对登录密码进行加密,那么肯定就有加密的地方,跟着调试器debug进去,果然发现了这些方法。
然后,问题就解决了。
ByteSource credentialsSalt = ByteSource.Util.bytes(record.getAccount()); SimpleHash simpleHash = new SimpleHash("MD5", record.getPassword(), credentialsSalt, 16); record.setPassword(simpleHash.toString());
附上认证的配置
<bean id="jdbcRealm" class="cn.etop.rbac.common.shiro.realms.ShiroRealm"> <property name="credentialsMatcher"> <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher"> <property name="hashAlgorithmName" value="MD5"></property> <property name="hashIterations" value="16"></property> </bean> </property> </bean>
@Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { UsernamePasswordToken upToken = (UsernamePasswordToken) authenticationToken; String username = upToken.getUsername(); boolean isExit=false; try { isExit = userService.checkUserNameExit(username); } catch (Exception e) { e.printStackTrace(); } if(isExit){ throw new UnknownAccountException("用户不存在!"); } User temp=null; try { temp=loginServiceImpl.getUserByAccount (username); } catch (Exception e) { e.printStackTrace(); } Object principal = username; Object credentials = temp.getPassword(); String realmName = getName(); ByteSource credentialsSalt = ByteSource.Util.bytes(username); SimpleAuthenticationInfo info = null; info = new SimpleAuthenticationInfo(principal, credentials, credentialsSalt ,realmName); return info; }
完整项目地址
这是我第一个写的web项目,代码烂得飞起,仅供纪念,不做参考
带Shiro版:https://github.com/EnTaroAdunZ/ssm_rbac_shiro.git
不带Shiro版:https://github.com/EnTaroAdunZ/ssm_rbac.git
阅读全文
0 0
- 基于SSM的RBAC权限系统(4)-巧用Shiro自带加密
- 基于SSM的RBAC权限系统(3)-Shiro基于非注解的基础使用
- 基于SSM的RBAC权限系统(2)-Shiro使用注解下AJAX交互临时解决方案
- 基于SSM的RBAC权限系统(1)-利用ajax,bootstrap,ztree完成权限树功能
- 基于SSM的RBAC权限系统(5)-利用ajax,JQuery实现动态搜索
- 基于角色管理(RBAC)的权限系统
- 基于角色管理(RBAC)的权限系统
- 基于角色管理(RBAC)的权限系统
- 基于角色管理(RBAC)的权限系统
- 基于RBAC的权限管理系统
- Yii基于RBAC的权限系统
- 基于RBAC的saas权限系统设计
- 混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限
- 基于SSM-EasyUI的权限管理系统
- 基于RBAC的权限管理系统的实现
- 基于RBAC的权限管理系统的实现
- 基于RBAC的权限管理系统的实现
- 基于RBAC的权限管理系统的实现--经典
- 深度学习第二章-线性代数笔记
- DataGridComboBoxColumn绑定后显示空白的问题
- fabric源码解析8——peer的System Chaincode
- 总线设备驱动模型
- JAVA使用POI操作word文档实例,兼容doc,docx
- 基于SSM的RBAC权限系统(4)-巧用Shiro自带加密
- 第一次配置java环境变量
- spark的自定义partitioner
- jQuery EasyUI中的Layout布局
- 关于一次云服务器tomcat误删经历
- 字符串逆序输出
- Ubuntu16.04测试开启GPU加速
- 如何保持数据库和缓存的一致性
- HDU 6035 Colorful Tree 树上统计 联通块