1. 程式人生 > >你絕對想不到多簡單的Shiro的入門

你絕對想不到多簡單的Shiro的入門

首先加入Maven依賴

<dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-core</artifactId>
      <version>1.4.0</version>
</dependency>

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId
>
<version>4.12</version> </dependency>

然後是程式碼:

public class ShiroHelloWorld {

    /**
     * shiro認證的步驟
     *
     * 1. 構建建立SecurityManager
     * 2. 主體提交認證
     * 3. SecurityManager認證
     * 4. Authenticator認證
     * 5. Realm驗證
     * @param args
     */
    //先使用簡單的Realm來驗證
private SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm(); @Before public void addUser(){ simpleAccountRealm.addAccount("mark","123456"); //Realm可以新增多個賬戶 //現在只是入門,使用的是簡單的Realm,之後會有更符合業務邏輯的Realm出現 simpleAccountRealm.addAccount("wangye","123456"); } @Test
public void testAutheticateion(){ //1. 構建SecurityManager環境 DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager(); defaultSecurityManager.setRealm(simpleAccountRealm); //因為最終式使用Realm來驗證,所以要設定Realm //2. 主體提交認證 SecurityUtils.setSecurityManager(defaultSecurityManager);//先設定認證環境 Subject subject = SecurityUtils.getSubject(); //家下來就是登陸了,如果傳入的使用者名稱不正確,和Realm中的不匹配,那麼久會異常 UsernamePasswordToken token = new UsernamePasswordToken("wangye","123456"); subject.login(token); System.out.println("是否登陸成功:"+ subject.isAuthenticated());//true //登陸就有登出 subject.logout(); System.out.println("是否驗證成功:"+ subject.isAuthenticated());//false } }

需要搞清的是,shiro是如下完成步驟的。subject.login(token);這樣使用使用者資訊驗證登入驗證的時候,我們的subject會把驗證的的任務移交給securityManager.login(token)完成 ,而securityManager又會把任務交給authenticate
然後,authenticate就會從Realm去資料進行比對,然後返回有還是沒有。

相關推薦

#程式設計師從來不炫富,他們炫的很低調,絕對懂!

程式設計師的工作就是每天在鍵盤上敲敲打打,一天到晚和程式碼打交道,雖然程式設計師的工資非常高,但是程式設計師們從來都不炫富,他們炫的很低調,你絕對不懂。   第一,程式設計師炫身體。 我們知道程式設計師需要經常的加班,甚至連續加幾天通宵加班,累了就在辦公室打地鋪休息,這樣

絕對不通的kotlin,當使用lambda實現函式式介面時爬的“巨坑”

實現函式式的介面 在學習kotlin的時候,我一直搞不懂為什麼kotlin定義的“函式式介面”為什麼不能用像官方文件用lambda表示式。 像如下的方式,使用kotlin定義一個“函式式介面(只有單個抽象方法的介面)” interface Inte

絕對想不到簡單Shiro入門

首先加入Maven依賴 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifa

W10系統下用Anaconda裝tensorflow想不到有簡單,用時到10min

     我曾在Ubuntu系統下裝過很多次tensorflow,成功過也失敗過,總是遇到不同的問題,只好碰運氣了。以前在w10系統也裝過tf(tensorflow),但是也總是出現錯誤,昨天重新安裝了w10系統,想再嘗試一下用w10安裝tf,結果不到十分鐘就安裝成功了,特此

要視頻的進廢話

aid 多說 視頻 ongl 5% hao123 想要 http list %E6%96%B0%E6%89%8B%E5%AD%A6%E4%B9%A0%E7%BC%96%E7%A8%8B%E6%9C%89%E9%82%A3%E4%B9%88%E9%9A%BE%E5%90%97

不管簡單,我知道,就是白扯~

bsp 開心 但是 pause 版本 r12 區別 身邊 我不 有的同學可能"心塞"(教師是成年人,所以無論如何都不應該心塞),或者覺得,不就是這點東西麽,就差這一點兒。我經常見到工作以後的年輕工程師持這樣的態度,他們基本上沒有下一次機會。信任基於可靠,低方差,而不

為什麽寫不好自媒體?原因竟然是|自媒體有坑,得繞③

自媒體世上本來就有坑,掉進去的人多了,也就發現了坑。前方有坑,大家繞行。歡迎來到自媒體繞坑大作戰,今天是第3期節目,我是張書樂。咱們聊一聊,怎麽樣才能做出爆款的自媒體文章。前兩講,大家出門右轉咱們今天重點解決3個問題第一個是洗稿這種來錢快的事,為什麽最好別幹?第二個是每一次創作內容,到底多長最合適?第三個是不

Bestinvest集團提醒您短線復盤時絕對能忽略的細節!

BestinvestBestinvest公司是一家全球領先的私人客戶投資集團,致力於嚴格和公正的金融投資研究,持續不懈地專註於為客戶提供卓越的服務,具有最高的專業水平。 為什麽要復盤復盤是所有交易的基本,各種交易技術之所以有效,都是前人透過無數的復盤統計而得出的結論,那為什麽不直接使用這些技術就好,還要自己花

1解釋永遠是余的因為懂的人需要它

開始 被拒 cheng 解釋 們的 說明 永遠 將不 習慣 <p>  有終點,路上放了學的學生瘋狂地奔跑或打鬧或嬉生命,用他的光照耀你的人生讓彼此的生命更豐碩之後雄鳥日出而作日落而息的鑄造!它們的家不久碎耕作的山間歲月的風塵怎能模糊你的記憶得得</p>

過在同一臺服務器中,同時開幾個tomcat嗎

clas java_home tlab ats 裏的 linux中 成了 配置jdk 記錄 tomcat作為許多java項目的運行的環境,常用來跑java項目。而一臺服務器只跑一個tomcat服務又太浪費資源了,so,我們可以在同一臺服務器上,同時跑多個tomcat服務進程

2位前輩的經歷告訴Python新手好找工作嗎?初級崗位

麼多人推薦學 Python 入IT 行的,如果他們學完 Python這一套找不到工作怎麼辦? 這是筆者在網上看到的一個問題,那麼真相究竟如何呢?到底學完Python是否好找工作,初級崗位多不多? 我們來看看2位前輩的經歷,希望對你有所幫助。   第一位前輩 &nb

修真,凡人傳說 誠意新手攻略 帶早日渡劫成仙

想不想修真怎麼玩?想不想修真好玩嗎?想不想修真新手快速進階,想不想修真新手攻略。想不想修真可以用電腦玩嗎? 最近兩年大量修仙類IP改編電視劇,火了一幫小生小花。小說,遊戲、影視劇相輔相成,發展的如火如荼。想不想修真,就是其中一款,作為一枚愛嘗試各種遊戲的先遣軍,我也開始接觸這種遊戲。 想不想

java執行緒入門案例(2)之執行緒簡單應用

  上一篇文章:java多執行緒案例(1)之簡單銀行取款問題及其優化 我大概介紹了一下Java程式碼優化的問題,主要針對出學者而言,這一次我要介紹多執行緒應用的簡單案例 。網上有許多多執行緒的案例,但大多都挺複雜的,今天我主要目的也是介紹一下多執行緒應用的簡單案例,讓初學

java執行緒入門案例(1)之簡單銀行取款問題及其優化

      之前學java的時候,學校老師由於課時問題,沒有教我們多執行緒,最近學校外聘的企業教師給我們做實訓要用到多執行緒,因此才初步瞭解多執行緒,以下這個案例只是介紹java程式碼優化,程式碼中有涉及多執行緒,但今天不對其講解,只簡單講解程式碼優化的問題,希望對初學

還差兩分破萬!劉煒: 更看重勝利

11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成

mysql聯查中使用if和group by會讓的結果要的

mysql中的if語句遇到統計count group by的時候會出現不準確的情況,原因是分組後if條件的結果以第一條為準,不會跟著分組   例如: SELECT SQL_NO_CACHE t1.*,t2.nick_name,t2.avatar,IF(t1.user_id=104080,

修真,凡人傳說 誠意新手攻略 帶早日渡劫成仙

想不想修真怎麼玩?想不想修真好玩嗎?想不想修真新手快速進階,想不想修真新手攻略。想不想修真可以用電腦玩嗎? 最近兩年大量修仙類IP改編電視劇,火了一幫小生小花。小說,遊戲、影視劇相輔相成,發展的如火如荼。想不想修真,就是其中一款,作為一枚愛嘗試各種遊戲的先遣軍,我也開始接觸

【IT屆的小學生】如果建模是做愛,簡單的進入,做到一半然後就睡覺了。

----關注我,得永生------ ♀♀♀如果學習是做愛♀♀♀ ♂♂♂請你記住要深入♂♂♂ ----ME----聯絡方式------ 數學建模:虐雲建模網 機器學習Q群:249885734 PythonQ群:867300100

絕對知道的Python程式碼技巧,知道算我輸!

被人工智慧捧紅的 Python 已是一種發展完善且非常多樣化的語言,其中肯定有一些你尚未發現的功能。本文或許能夠讓你學到一些新技巧。   Python 是世界上最流行、熱門的程式語言之一,原因很多,比如: 易於學習 超高的通用性 具備大量模組和庫

知道的越會發現知道的也就越

背景知識:人的知識就好比一個圓圈,圓圈裡面是已知的,圓圈外面是未知的。你知道得越多,圓圈也就越大,你不知道的也就越多。——芝諾 芝諾是古希臘的著名哲學家,是埃利亞派的代表人物,巴門尼德的學生和繼續人。芝諾素有“悖論之父”之稱,他有四個數學悖論一直傳到今天。他曾經講過一個“知識圓圈說”的故事。故事是這樣的:一