基於SSJ智慧型銷售系統的模版開發 04

2021-09-14 06:02:19 字數 3325 閱讀 1610

2.shiro的核心api

3.密碼加密功能

4.自定義realm

5.整合spring

許可權框架(提供的易用的api,功能強大)

框架

shiro

spring security

易用性√x粒度

粗細(強大)

身份驗證、授權、密碼學和會話管理

securitymanager:核心物件 realm:獲取資料介面

//一.建立我們自己的realm

myrealm myrealm = new myrealm();

//二.搞乙個核心物件:

defaultsecuritymanager securitymanager = new defaultsecuritymanager();

securitymanager.setrealm(myrealm);

//三.把securitymanager放到上下文中

securityutils.setsecuritymanager(securitymanager);

//1.拿到當前使用者

subject currentuser = securityutils.getsubject();

//2.判斷是否登入

currentuser.isauthenticated();

//3.登入(需要令牌的)

/** unknownaccountexception:使用者名稱不存在

incorrectcredential***ception:密碼錯誤

authenticationexception:其它錯誤

*/ usernamepasswordtoken token = new usernamepasswordtoken("admin", "123456");

currentuser.login(token);

//4.判斷是否是這個角色/許可權

currentuser.hasrole("角色名")

currentuser.ispermitted("許可權名")

/**

* string algorithmname, object source, object salt, int ha****erations)

* 第乙個引數algorithmname:加密演算法名稱

* 第二個引數source:加密原密碼

* 第三個引數salt:鹽值

* 第四個引數ha****erations:加密次數

*/******hash hash = new ******hash("md5","123456","itsource",10);

system.out.println(hash.tohex());

繼承authorizingrealm

實現兩個方法:dogetauthorizationinfo(授權) /dogetauthenticationinfo(登入認證)

//身份認證

@override

protected authenticationinfo dogetauthenticationinfo(authenticationtoken authenticationtoken) throws authenticationexception

//返回認證資訊

//準備鹽值

bytesource salt = bytesource.util.bytes("itsource");

//密碼是shiro自己進行判斷

******authenticationinfo authenticationinfo = new ******authenticationinfo(username,password,salt,getname());

return authenticationinfo;

}

//授權

@override

protected authorizationinfo dogetauthorizationinfo(principalcollection principalcollection)

注意:如果我們的密碼加密,應該怎麼判斷(匹配器)

//一.建立我們自己的realm

myrealm myrealm = new myrealm();

//建立乙個憑證匹配器(無法設定鹽值)

hashedcredentialsmatcher matcher = new hashedcredentialsmatcher();

// 使用md5的方式比較密碼

matcher.sethashalgorithmname("md5");

// 設定編碼的迭代次數

matcher.setha****erations(10);

//設定憑證匹配器(加密方式匹配)

myrealm.setcredentialsmatcher(matcher);

去找:shiro-root-1.4.0-rc2\samples\spring

org.apache.shiro

shiro-all

1.4.0

pom

org.apache.shiro

shiro-spring

1.4.0

這個過濾器是乙個**(只關注它的名稱)

shirofilter

org.springframework.web.filter.delegatingfilterproxy

targetfilterlifecycle

true

/*

是從案例中拷備過來,進行了相應的修改

<?xml version="1.0" encoding="utf-8"?>

5.4 獲取map過濾

注意,返回的map必需是有序的(linkedhashmap)

public class filterchaindefinitionmapfactory 

}

基於WIFI和android的智慧型手機開門設計

一 概述 android 安卓 是一種以linux為基礎的開源 作業系統,用於各種移動便攜裝置。其優點是擴充套件性強,應用程式豐富,現已發展到5.0版本。android的市場份額已躍居全球第一,為此基於安卓平台的各種應用也在迅速發展著。基於wifi和android的智慧型手機開門系統採用wifi轉串...

基於ZigBee的智慧型農業監測系統

3s 技術 zigbee 無線模組通訊技術及專家智慧型與知識,實現農業視覺化遠端診斷 遠端控制 災變預警等智慧型管理。它主要通過各種無線感測器實時地對農業生產現場的溫濕度 光照 co2濃度等引數進行 zigbee資料採集 1系統總體設計 基於zigbee無線模組 感測網路的智慧型農業監測系統總體結構...

基於C語言的小型超市庫存與銷售管理系統

1 需求分析 1.1 登陸 管理員和售貨員可通過各自的賬號 密碼分別進入管理員和售貨員的子系統。對於輸入不在系統所儲存的賬號或輸入的賬號密碼不匹配時,要求使用者重新輸入。1.2 使用者管理 管理員使用者可瀏覽系統內所有的使用者的賬號 密碼 許可權類別,可新增使用者,可刪除使用者。1.3 庫存管理 管...