使用Apache Shiro保護Web應用程序的一個坑

 

最近要寫的一個項目需要shiro,首當其衝想到就是上github上找一下資料學習=。= 結果就找到了https://github.com/apache/shiro

然後根據需求 點進去了 web應用http://shiro.apache.org/webapp-tutorial.html (巨坑!由於之前基本沒了解,所以很多坑。這裏建議初學者先去看開濤的https://www.iteye.com/blogs/subjects/shiro?page=2

然後糊里糊塗的開始一步步跟着敲代碼了,中途遇到了挺多問題的,這裏貼出來,讓各位排排坑把。

第一個坑莫過於他使用的是Stormpath這個雲託管的用戶管理服務,基本我們這些自學黨不會用到的。

然後這裏我自己google了很久 因爲對shiro是初次學習很多概念都不懂,其實操之過急了我應該先從基本功能看起的。配置數據源得先把它源代碼裏的

# Configure a Realm to connect to a user datastore.  In this simple tutorial, we'll just point to Stormpath since it
# takes 5 minutes to set up:
#stormpathClient = com.stormpath.shiro.client.ClientFactory
#stormpathClient.cacheManager = $cacheManager

# (Optional) If you put your apiKey.properties in the non-default location, you set the location here
#stormpathClient.apiKeyFileLocation = $HOME/.stormpath/apiKey.properties

#stormpathRealm = com.stormpath.shiro.realm.ApplicationRealm
#stormpathRealm.client = $stormpathClient

# Find this URL in your Stormpath console for an application you create:
# Applications -> (choose application name) --> Details --> REST URL
# (Optional) If you only have one Application
#stormpathRealm.applicationRestUrl = https://api.stormpath.com/v1/applications/$STORMPATH_APPLICATION_ID

#stormpathRealm.groupRoleResolver.modeNames = name
#securityManager.realm = $stormpathRealm

全部註釋掉,會一點英語不難理解他是連接Stormpath來作爲數據源的。然後就是增加上我們自己數據庫的連接

這裏我使用的連接池是dbcp (注意:不同連接池裏面的屬性不一樣,例如c3p0的 datasource裏面的屬性名就根dbcp不一樣,這就需要就行修改,不然初始化會失敗)

#採用第三方JdbcRealm連接數據庫
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
#實例化數據源
dataSource=org.apache.commons.dbcp.BasicDataSource
#設置參數
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=
dataSource.username=
dataSource.password=

#將數據源設置到realm中
jdbcRealm.dataSource=$dataSource
securityManager.realms=$jdbcRealm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章