動態改變shiro的Principal屬性


因為要保存一些用戶名之外的內容在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,以它來運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM