1. 程式人生 > >十二.shiro更改使用者資訊同時更改subject中的資訊

十二.shiro更改使用者資訊同時更改subject中的資訊

當更改使用者資訊的時候,發現subject.卻還是原來的資訊,

沒有直接的辦法更改,只能給當前使用者切換身份,切換一個認證資訊給安全管理器。

當更改使用者資訊後,呼叫setUser方法,UserInfo是原來放在SimpleAuthenticationInfo中的物件,realName是原來realm的名字

public class ShiroUtils {
	
    public static Subject getSubjct(){
        return SecurityUtils.getSubject();
    }
    
    public static UserInfo getUser(){
        return (UserInfo) getSubjct().getPrincipal();
    }
    
    /**
     * 切換身份,登入後,動態更改subject的使用者屬性
     * @param userInfo
     */
    public static void setUser(UserInfo userInfo) {
    	Subject subject = SecurityUtils.getSubject();
    	PrincipalCollection principalCollection = subject.getPrincipals(); 
    	String realmName = principalCollection.getRealmNames().iterator().next();
    	PrincipalCollection newPrincipalCollection = 
    			new SimplePrincipalCollection(userInfo, realmName);
    	subject.runAs(newPrincipalCollection);
    }

}

相關推薦

.shiro更改使用者資訊同時更改subject資訊

當更改使用者資訊的時候,發現subject.卻還是原來的資訊, 沒有直接的辦法更改,只能給當前使用者切換身份,切換一個認證資訊給安全管理器。 當更改使用者資訊後,呼叫setUser方法,UserInfo是原來放在SimpleAuthenticationInfo中的物件,r

我的shiro之旅: shiro 踢出使用者(同一使用者只能一處登入)

部落格已移至 http://blog.gogl.top 看了一下官網,沒有找到關於如何控制同一使用者只能一處登入的介紹,網上也沒有找到相關的文章。可能有些人會記錄使用者的登入資訊,然後達到踢出使用者的效果。這裡介紹一個更簡單的方法。 如果我們跟shiro的原始碼,我們可以

【Java學習筆記之】解析接口在Java繼承的用法及實例分析

ani 復制代碼 ads compute 現在 target body 常量 實現接口 一、定義 Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具

Spring Boot 初級入門教程() —— 執行、測試、打包過程碰到的各種錯誤

錯誤一:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project test-springboot: Compilation fail

Linux 網路協議棧開發基礎篇()—— 使用wireshark分析TCP/IP協議TCP包頭的格式

摘要: 本文簡單介紹了TCP面向連線理論知識,詳細講述了TCP報文各個欄位含義,並從Wireshark俘獲分組中選取TCP連線建立相關報文段進行分析。 一、概述 TCP是面向連線的可靠傳輸協議,兩個程序互發資料之前需要建立連線,這裡的連線只不過是端系統中分配的一些快

Redis系列():資料結構SortedSet跳躍表基本操作命令和原始碼解析

1.SkipList Redis的sortedSet資料結構是有序不重複的(索引為唯一的,資料(score)卻可以重複), 跳錶是redis的一個核心元件,也同時被廣泛地運用到了各種快取地實現當中,它的主要優點, 就是可以跟紅黑樹、AVL等平衡樹一樣,做到比較穩定地插入、查詢與刪除。理論插入查詢刪除的演算法時

CoreThink開發(更改默認出錯異常頁防止暴露敏感數據

highlight true pos pub light brush 關閉 sql exception 默認的異常頁會打印文件位置,而且是絕對路徑,會打印SQL語句,真實上線一定不要用這個默認的,而且關閉trace關閉調試模式也不行。 針對CoreThink1.2 Th

、設置更改root密碼、連接MySQL、MYSQL常用命令

設置更改root密碼 連接MySQL MySQL常用命令 五十二、設置更改root密碼、連接MySQL、MYSQL常用命令一、設置更改root密碼 root用戶是MySQL的超級管理員用戶,這個root和系統的root並不是一個用戶,需要區分開,也可以創建普通用戶來連接MySQL。

Unity3d開發()使用Menu.SetCheck更改選單勾選狀態

在編輯器中總有一些改變狀態量的需求,例如:是否輸出日誌。通常的做法是在程式碼中更改,不過這需要重新編譯,而且也對非程式人員不友好 。更靈活的做法是使用本地變數儲存,不過這寫起來比較麻煩

sql 如何同時更改一列的多行值

sql如圖,我要把 pre_tel 列 都加上 010 或者其他區號,但是如何用同一條 sql 語句實現?sql 如何同時更改一列中的多行值

項目一:第天 1、常見權限控制方式 2、基於shiro提供url攔截方式驗證權限 3、在realm授權 5、總結驗證權限方式(四種) 6、用戶註銷7、基於treegrid實現菜單展示

eal 重復數 規則 認證通過 delete get 數據庫 filter 登陸 1 課程計劃 1、 常見權限控制方式 2、 基於shiro提供url攔截方式驗證權限 3、 在realm中授權 4、 基於shiro提供註解方式驗證權限 5、 總結驗證權限方式(四種) 6、

已經為專案配置了 SVN 資源庫資訊如何更改

** 已經為專案配置了 SVN 資源庫資訊如何更改 ** 今天重連專案的時候發現,專案還使用之前的svn地址 點選finish 我搜索了關於這個問題的解決辦法,當時一位大佬給出的解決方案是這樣的 就是在專案中刪除掉.svn重新建立。後來我發現我的是這樣的 找不到對應的檔案,後來,

osgEarth的Rex引擎原理分析()rex地理資訊引擎的四樑八柱

目標:(九)中問題11 在(九)中建立rex引擎節點時,會呼叫osgEarth::TerrainEngineNode的建構函式,該函式負責設定rex引擎的名稱、id、著色器和其它一些變數設定,還會新增地形_terrain子節點。 rex引擎的四樑八柱是從這裡開始的 osgEarth/Ma

ElasticSearch最佳入門實踐(七)Java 實戰 - 對員工資訊進行復雜的搜尋操作

需求: (1)搜尋職位中包含technique的員工 (2)同時要求age在30到40歲之間 (3)分頁查詢,查詢第一頁 1、構建員工資訊 public class EmployeeSearchApp { public static void main

搭建自己的部落格():通過ajax提交評論資訊,並增加公式編輯功能

編輯功能使用到了ckeditor的MathJax元件。ajax提交評論可以不用重新整理瀏覽器。 1、變化的部分 2、上程式碼: ul.blog-types,ul.blog-dates { list-style-type: none; } div.blog:no

一個故事貫穿設計模式(一)中介模式

   這裡記錄的是中介者模式。  在解耦上面具有重要的意義。 包結構: 類結構: 測試入口: package com.automannn.design_mode.mediator.test; import com.automannn.design

2016年第二屆全國青少年資訊學奧林匹克聯賽初賽普及組C++詳細答案

題目 題解 一、單選題 1 D Powerpoint(幻燈片)、Excel(電子表格)、Word(電子文件)是微軟公司辦公套件Microsoft Office最重要的三個軟體。 Acorbat Rea

Linux 使用者認證資訊更改使用者密碼資訊

#####使用者認證資訊#### /etc/shadows ###記錄使用者認證資訊 該檔案一共九列: 使用者名稱稱:使用者密碼:使用者密碼最後一次被更改的時間:使用者密碼最短有效期:使用者密碼最長有效期:密碼警告期限:使用者非活躍天數:使用者到期日:使

【譯】你不知道的 Chrome 除錯工具技巧 第天:忍日誌列印!(the ninja logs)

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在Twitter上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,授權

)springbootshiro的使用

一、引入maven配置 <dependency>     <groupId>org.apache.shiro</groupId>     <artifactId>shiro-spr