日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Shiro實(shí)現(xiàn)數(shù)據(jù)庫(kù)驗(yàn)證的方法詳解(shiro數(shù)據(jù)庫(kù)驗(yàn)證)

隨著Web應(yīng)用的不斷發(fā)展,用戶的需求越來(lái)越高,安全性逐漸成為一個(gè)核心問(wèn)題。在Java開(kāi)發(fā)中,Shiro是一個(gè)優(yōu)秀的安全框架,能夠?qū)崿F(xiàn)身份驗(yàn)證、授權(quán)、密碼加密等功能。其中,Shiro的數(shù)據(jù)庫(kù)驗(yàn)證是非常重要的一部分。本文將詳細(xì)介紹Shiro實(shí)現(xiàn)數(shù)據(jù)庫(kù)驗(yàn)證的方法。

1. Shiro簡(jiǎn)介

Shiro是一個(gè)功能強(qiáng)大的Java安全框架,它提供了身份驗(yàn)證、授權(quán)、密碼加密等一系列安全相關(guān)的功能。Shiro的設(shè)計(jì)目標(biāo)是為Java應(yīng)用程序提供安全保障,既可以在Web應(yīng)用程序中使用,也可以在任何應(yīng)用程序中使用。Shiro的更大特點(diǎn)是易于使用、易于理解、易于擴(kuò)展。

2. Shiro數(shù)據(jù)庫(kù)驗(yàn)證

在Web應(yīng)用程序中,用戶登錄是一個(gè)很常見(jiàn)的操作。Shiro提供了多種身份驗(yàn)證方式,其中數(shù)據(jù)庫(kù)驗(yàn)證是一種常見(jiàn)而且重要的驗(yàn)證方式。Shiro的數(shù)據(jù)庫(kù)驗(yàn)證主要是通過(guò)JDBC進(jìn)行實(shí)現(xiàn)的。在進(jìn)行數(shù)據(jù)庫(kù)驗(yàn)證時(shí),需要先配置數(shù)據(jù)源和Realm。

2.1 數(shù)據(jù)源配置

數(shù)據(jù)源是Shiro進(jìn)行數(shù)據(jù)庫(kù)驗(yàn)證的關(guān)鍵,因此需要進(jìn)行正確的配置。在配置數(shù)據(jù)源時(shí),可以使用JNDI或者直接使用DriverManager來(lái)創(chuàng)建數(shù)據(jù)源。下面是一段使用JNDI方式配置數(shù)據(jù)源的代碼:

“`xml

maxIdle=”100″ maxActive=”500″ maxWt=”10000″

username=”test” password=”test” driverClassName=”com.mysql.jdbc.Driver”

url=”jdbc:mysql://localhost:3306/test”/>

“`

在上面的配置中,標(biāo)簽定義了一個(gè)數(shù)據(jù)源,name屬性指定了數(shù)據(jù)源的名稱,type屬性指定了數(shù)據(jù)源的類型,url屬性指定了連接數(shù)據(jù)庫(kù)的URL,username屬性指定了連接數(shù)據(jù)庫(kù)的用戶名,password屬性指定了連接數(shù)據(jù)庫(kù)的密碼。

2.2 Realm配置

在Shiro中,Realm是進(jìn)行用戶身份驗(yàn)證、權(quán)限驗(yàn)證的關(guān)鍵。對(duì)于數(shù)據(jù)庫(kù)驗(yàn)證來(lái)說(shuō),需要自定義一個(gè)Realm,并配置相應(yīng)的數(shù)據(jù)源。下面是一個(gè)基于JDBC的Realm的代碼示例:

“`java

public class JdbcRealm extends JdbcRealm {

public JdbcRealm() {

super.setDataSource(MyJdbcUtils.getDataSource());

super.setAuthenticationQuery(“SELECT password FROM users WHERE username = ?”);

super.setUserRolesQuery(“SELECT role_name FROM user_roles WHERE username = ?”);

super.setPermissionsQuery(“SELECT permission FROM roles_permissions WHERE role_name = ?”);

}

}

“`

在上面的配置中,setDataSource()方法設(shè)置了數(shù)據(jù)源,setAuthenticationQuery()方法設(shè)置了驗(yàn)證用戶信息的SQL語(yǔ)句,setUserRolesQuery()方法設(shè)置了查詢用戶角色信息的SQL語(yǔ)句,setPermissionsQuery()方法設(shè)置了查詢用戶權(quán)限信息的SQL語(yǔ)句。用戶角色和權(quán)限信息可以在數(shù)據(jù)庫(kù)中自定義,這里就不再做詳細(xì)介紹。

3. Shiro數(shù)據(jù)庫(kù)驗(yàn)證流程

當(dāng)用戶進(jìn)行Web應(yīng)用程序的登錄操作時(shí),Shiro的數(shù)據(jù)庫(kù)驗(yàn)證流程如下:

1. 用戶向服務(wù)器發(fā)送登錄請(qǐng)求;

2. 服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給Shiro進(jìn)行處理;

3. Shiro判斷請(qǐng)求中的用戶名和密碼是否正確;

4. 如果用戶名和密碼正確,則將該用戶信息保存在Subject對(duì)象中;

5. 如果用戶名和密碼不正確,則返回登錄失敗的信息。

4.

相關(guān)問(wèn)題拓展閱讀:

  • SpringBoot進(jìn)階之整合Shiro實(shí)現(xiàn)緩存和會(huì)話管理

SpringBoot進(jìn)階之整合Shiro實(shí)現(xiàn)緩存和會(huì)話管理

大家好,一直以來(lái)我都本著用最通俗的話理解核心的知識(shí)點(diǎn), 我認(rèn)為所有的難點(diǎn)都離不開(kāi)

「基礎(chǔ)知識(shí)」

的鋪墊。目前正在出一個(gè)

SpringBoot

長(zhǎng)期系列教程,從入門到進(jìn)階, 篇幅會(huì)較多~

「大佬可以繞過(guò) ~」

如果你是一路看過(guò)來(lái)的,很高興你能夠耐心看完。之前帶大家學(xué)了

Springboot

基礎(chǔ)部分,對(duì)基本的使用有了初步的認(rèn)識(shí), 接下來(lái)的幾期內(nèi)容將會(huì)帶大家進(jìn)階使用,會(huì)先講解基礎(chǔ)

中間件

的使用和一些場(chǎng)景的應(yīng)用,或許這些技術(shù)你聽(tīng)說(shuō)過(guò),沒(méi)看過(guò)也沒(méi)關(guān)系,沖前檔我會(huì)帶大家一步一步的入門,耐心看完你一定會(huì)有

收獲

~

上期帶大家學(xué)習(xí)了

Shiro

中如何進(jìn)行權(quán)限認(rèn)證,本期將帶大家學(xué)習(xí)

Shiro

中如何進(jìn)行

緩存和會(huì)話管理

,最后我們將做一個(gè)在線用戶管理以及強(qiáng)制下線用悔乎戶的功能,同樣的,我們集成到

Springboot

中。

首先我們要明白使用緩存的原因,為啥要用它 還記得之前帶大家實(shí)現(xiàn)的

用戶認(rèn)證

權(quán)限認(rèn)證

嗎,那里我使用了

MockUser

,真實(shí)場(chǎng)景中是要去數(shù)據(jù)查詢的,這樣一來(lái)就會(huì)產(chǎn)生耗時(shí),請(qǐng)求多的時(shí)候數(shù)據(jù)庫(kù)肯定忙不過(guò)來(lái)了,所以我們需要使用緩存來(lái)提高程序響應(yīng)速度

緩存使用

Redis

,下面就帶大家整一下:

修改

ShiroConfig

,添加方法

這樣就可以了,大家可以把測(cè)試獲取用戶的地方改成數(shù)據(jù)庫(kù)獲取,看下

控制臺(tái)

sql日志會(huì)明顯減少,因?yàn)橛幸徊糠质菑木彺婺玫?/p>

這部分功能還是比較好玩的,學(xué)完可以自由發(fā)揮做一個(gè)房間功能,可以加入可以踢人,下面我們就開(kāi)整

修改

ShiroConfig

,添加方法,因?yàn)槲覀兪褂玫氖?/p>

Redis

緩存

實(shí)現(xiàn)

SessionListener

最后同樣的,想要開(kāi)啟需要我們注入到

Manager

中:

我們先定義一個(gè)類,用來(lái)記錄在線用戶:

那么怎么獲取呢?我們定義一個(gè)方法,大家實(shí)踐中可以抽到

Service

層,這里方便演示,我直接寫(xiě)到控制器里

如果你看誰(shuí)不爽,可以直接讓他下線,hhh~

是不是很簡(jiǎn)單,這里就不演示了,大家自行試試

本期內(nèi)容就到這里結(jié)束了,總散亂結(jié)一下,本節(jié)主要講了

Shiro

如何進(jìn)行緩存以及如何進(jìn)行用戶會(huì)話管理,大家可以舉一反三,做一些小功能嘗試嘗試

下期給大家講講

Shiro

中如何整合

JWT

,這個(gè)大家應(yīng)該不陌生,如果不知道啥是

JWT

也沒(méi)關(guān)系,我會(huì)帶大家一步一步入門,下期也是

Shiro

系列的終極篇,內(nèi)容可能有點(diǎn)多,耐心看完哦。歡迎加群一起學(xué)習(xí)交流 ~

關(guān)于shiro 數(shù)據(jù)庫(kù)驗(yàn)證的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


當(dāng)前標(biāo)題:Shiro實(shí)現(xiàn)數(shù)據(jù)庫(kù)驗(yàn)證的方法詳解(shiro數(shù)據(jù)庫(kù)驗(yàn)證)
路徑分享:http://www.dlmjj.cn/article/djidjeh.html