1. 程式人生 > >java安全框架shiro(一)

java安全框架shiro(一)

out util tor sub pass java string 框架 AI

第一個簡單的案例 ,通過讀取.ini文件的方式模擬登陸,

1.通過Factory工廠的getInstance()方法來獲取SecurityManager的實例,實例化Factory需要一個ini文件的路徑作為參數;

2.將上面獲取的實例set到 SecurityUtils這個類裏,SecurityUtils類有一個get方法來獲取Subject類

3.Subject這個類就是用來登陸和退出的,但是需要一個AuthenticationToken實例作為參數

上面是步驟,下面就來一步一步的介紹,最後會在最下面給出代碼


技術分享圖片

第二步我就不說了,方法是靜態的,直接類名調用就好了;

現在來到第三步,現在應該是得到subjiect的實例了,需要登錄,但是需要一個token實例

技術分享圖片

 技術分享圖片

現在token也有了,然後我們進行登錄;

技術分享圖片

這裏給出一個.ini文件的基本示例,把這個文件所在的路徑填入第一步實例化工廠時的參數裏即可

技術分享圖片

最後給出簡單案例的代碼

package com;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; /** * 測試shiro第一個案例 * */ public class App { public static void main( String[] args ) { { /*實例化工廠*/ Factory<SecurityManager> factory = new
IniSecurityManagerFactory("classpath:shiro.ini"); /*獲取實例*/ SecurityManager instance = factory.getInstance(); /*設置參數*/ SecurityUtils.setSecurityManager(instance); /*獲取登錄實例*/ Subject subject = SecurityUtils.getSubject(); /*實例化token,傳入登錄的用戶和密碼*/ AuthenticationToken token = new UsernamePasswordToken("admin1", "admin"); try { /*進行登錄*/ subject.login(token); /*退出登錄*/ subject.logout(); }catch (Exception e){ System.out.println("登錄錯誤!!"); } } } }


java安全框架shiro(一)