码迷,mamicode.com
首页 > 其他好文 > 详细

动态改变shiro的Principal属性

时间:2020-07-07 17:34:09      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:simple   str   new   utils   用户   set   util   思路   next   

因为要保存一些用户名之外的内容在shiro中,所以创建了一个ShiroUser的类,当用户修改了某些属性后,如何动态保存到shiro中:

Subject subject = SecurityUtils.getSubject();
ShiroUser shiroUser = (ShiroUser)subject.getPrincipal();
PrincipalCollection principalCollection = subject.getPrincipals();
//修改属性
shiroUser.setUsername("123");
String realmName = principalCollection.getRealmNames().iterator().next();
PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(shiroUser, realmName);
//重新加载Principal
subject.runAs(newPrincipalCollection)
思路就是重建一个PrincipalCollection,以它来运行

动态改变shiro的Principal属性

标签:simple   str   new   utils   用户   set   util   思路   next   

原文地址:https://www.cnblogs.com/exmyth/p/13261860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!