欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Shiro中的Realm怎么使用

這篇文章主要介紹“Shiro中的Realm怎么使用”,在日常操作中,相信很多人在Shiro中的Realm怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Shiro中的Realm怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、鄰水網(wǎng)站維護(hù)、網(wǎng)站推廣。

Realm的繼承關(guān)系

通過查看類的繼承關(guān)系,我們發(fā)現(xiàn) Realm 的子類實(shí)際上有很多種,這里我們就來看看有代表性的幾種:

1.IniRealm

可能我們并不知道,實(shí)際上這個(gè)類在我們第二篇文章中就已經(jīng)用過了。這個(gè)類一開始就有如下兩行定義:

public static final String USERS_SECTION_NAME = "users";
public static final String ROLES_SECTION_NAME = "roles";
 

這兩行配置表示 shiro.ini 文件中,[users] 下面的表示表用戶名密碼還有角色,[roles] 下面的則是角色和權(quán)限的對應(yīng)關(guān)系。

2.PropertiesRealm

PropertiesRealm 則規(guī)定了另外一種用戶、角色定義方式,如下:

user.user1=password,role1 role.role1=permission1

3.JdbcRealm

這個(gè)顧名思義,就是從數(shù)據(jù)庫中查詢用戶的角色、權(quán)限等信息。打開 JdbcRealm 類,我們看到源碼中有如下幾行:

protected static final String DEFAULT_AUTHENTICATION_QUERY = "select password from users where username = ?";
protected static final String DEFAULT_SALTED_AUTHENTICATION_QUERY = "select password, password_salt from users where username = ?";
protected static final String DEFAULT_USER_ROLES_QUERY = "select role_name from user_roles where username = ?";
protected static final String DEFAULT_PERMISSIONS_QUERY = "select permission from roles_permissions where role_name = ?";
 

根據(jù)這幾行預(yù)設(shè)的 SQL 我們就可以大致推斷出數(shù)據(jù)庫中表的名稱以及字段了,當(dāng)然,我們也可以自定義 SQL。JdbcRealm 實(shí)際上是 AuthenticatingRealm 的子類,關(guān)于 AuthenticatingRealm 我們在后面還會詳細(xì)說到,這里先不展開。接下來我們就來詳細(xì)說說這個(gè) JdbcRealm。

 

JdbcRealm

1.準(zhǔn)備工作

使用 JdbcRealm,涉及到數(shù)據(jù)庫操作,要用到數(shù)據(jù)庫連接池,這里我使用 Druid 數(shù)據(jù)庫連接池,因此首先添加如下依賴:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>RELEASE</version>
</dependency>
<dependency>
   <groupId>MySQL</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.27</version>
</dependency>
 

2.數(shù)據(jù)庫創(chuàng)建

想要使用 JdbcRealm,那我首先要創(chuàng)建數(shù)據(jù)庫,根據(jù) JdbcRealm 中預(yù)設(shè)的 SQL,我定義的數(shù)據(jù)庫表結(jié)構(gòu)如下:

Shiro中的Realm怎么使用  
p309

這里為了大家能夠直觀的看到表的關(guān)系,我使用了外鍵,實(shí)際工作中,視情況而定。然后向表中添加幾條測試數(shù)據(jù)。數(shù)據(jù)庫腳本小伙伴可以在 github 上下載到(https://github.com/lenve/shiroSamples/blob/v4/shiroDemo.sql)。

3.配置文件處理

然后將 shiro.ini 中的所有配置注釋掉,添加如下注釋:

jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
dataSource=com.alibaba.druid.pool.DruidDataSource
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql://localhost:3306/shiroDemo
dataSource.username=root
dataSource.password=123
jdbcRealm.dataSource=$dataSource
jdbcRealm.permissionsLookupEnabled=true
securityManager.realms=$jdbcRealm
 

這里的配置文件都很簡單,不做過多贅述,小伙伴唯一需要注意的是 permissionsLookupEnabled 需要設(shè)置為 true,否則一會 JdbcRealm 就不會去查詢權(quán)限用戶權(quán)限。

4.測試

OK,做完上面幾步就可以測試了,測試方式和第二篇文章中一樣,我們可以測試下用戶登錄,用戶角色和用戶權(quán)限。

5.自定義查詢 SQL

小伙伴們看懂了上文,對于自定義查詢 SQL 就沒什么問題了。我這里舉一個(gè)簡單的例子,比如我要自定義 authenticationQuery 對對應(yīng)的 SQL,查看 JdbcRealm 源碼,我們發(fā)現(xiàn) authenticationQuery 對應(yīng)的 SQL 本來是 select password from users where username = ? ,如果需要修改的話,比如說我的表名不是 users 而是 employee,那么在 shiro.ini 中添加如下配置即可:

jdbcRealm.authenticationQuery=select password from employee where username = ?

到此,關(guān)于“Shiro中的Realm怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享題目:Shiro中的Realm怎么使用
當(dāng)前網(wǎng)址:http://www.aaarwkj.com/article14/ipddde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站微信公眾號、網(wǎng)站營銷、用戶體驗(yàn)網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
国产高清在线不卡一区| 欧美日韩精品一区二区视频永久免 | 欧美日韩高清一区二区三区 | 国产经典三级在线看| 国产亚洲综合久久系列| 午在线亚洲男人午在线| 天天操夜夜操狠狠操91| 国产丝袜美腿一二三区| 亚洲精品一级理论片对面| 亚洲一区二区三区熟妇| 欧美日韩在线视频第三区| 中文字幕av一区二区人妻| 亚洲欧美半夜激情一区二区| 色哟哟国产精品一区自拍| 欧美日韩专区一区二区三区| 亚洲视频在线男人天堂| 亚洲精品二区在线播放| 日韩午夜电影一区二区三区| 少妇高潮毛片免费看高潮 | 亚洲黄色成人免费观看| 高清偷自拍亚洲精品三区| 亚洲精品女同专区视频| 欧美性大片一区二区三区| 国产男女猛烈无遮挡网站| 日本新任女教师在线播放| 在线免费观看日本91| 亚洲成人乱码一区二区| 天堂网一区二区三区四区| 国产精品久久久久久爽| 日韩成人大片在线播放| 国产精品久久久久久老熟女| 日韩在线一区二区视频| 人妻操人人妻中出av| 可以免费看的欧美黄片| 亚洲av成人在线不卡| 91蜜臀视频在线播放| 高清av网站大全网站| 亚洲乱码中文字幕久久| 一区二区三区福利视频在线观看| 国产一区二区三区自拍| 最新日韩人妻中文字幕一区|