Shiro 教程,關(guān)于最近反應(yīng)的相關(guān)異常問題,解決方法合集。
Shiro + SSM(框架) + Freemarker(jsp)講解的權(quán)限控制Demo,還不趕快去下載?
前言:本教程適合有一定基礎(chǔ)的 Java程序員使用,如果對(duì) Shiro 有一定的了解,過程中會(huì)很快接受,建議在使用 Shiro教程Demo的時(shí)候,建議直接Maven,教程Demo中沒有對(duì)Maven過多的依賴,只有一個(gè)依賴包的管理,如果對(duì)Maven不熟悉,你可以安裝一個(gè)MyEclipse8.5,自帶Maven環(huán)境,本站有 在線生成MyEclipse注冊(cè)碼。注意,開始不管你技術(shù)多牛,不管我的文檔寫的有多么不好,都建議你看完,這樣大概心里有個(gè)數(shù),Demo里有什么功能,哪些地方怎么實(shí)現(xiàn)的?都知道個(gè)大概。
Shiro教程地址:http://suancuo.cn/shiro (含項(xiàng)目下載地址)。
本篇敘述的是問題集合,以及相關(guān)解決方案,如果你在使用本站提供的 SSM + Shiro + Redis + Freemarker 的Shiro教程 中遇到問題,以及解決方案,可以聯(lián)系站長(zhǎng)告知,我會(huì)第一時(shí)間更新到此篇博客之中。
一、Shiro 教程 Demo 環(huán)境準(zhǔn)備。
環(huán)境在http://suancuo.cn/shiro 中說的很詳細(xì),我Ctrl + C 過來。
開發(fā)工具: Eclipse 、 MyEclipse 、 Idea 等等。
依賴第三方:Mysql 5.0 以上、 Redis (v2.8左右)。
需要的配置:jdbc.properties 中配置 Mysql 的信息、spring-cache.xml 配置 Redis 配置,如果是默認(rèn)配置,就不用換,Redis Windows 環(huán)境安裝教程:http://suancuo.cn/blog/110.html。
這里特別強(qiáng)調(diào)一下,開發(fā)工具的問題。
IDEA:很多同學(xué)用IDEA 的時(shí)候出現(xiàn)了問題,主要出現(xiàn)在2個(gè)地方,一個(gè)是 XML 打包不進(jìn)去,還有一個(gè)是Maven 的問題,但是如果對(duì)IDEA 環(huán)境比較熟悉,那就沒這個(gè)問題。
Eclipse:最新版本有問題,其實(shí)也是在打包和 Maven 上。不是最新版本,親測(cè)好使沒毛病。
Myecilpse8 ~ Myecilpse 10 :親測(cè)好使,沒毛病。
我開發(fā)的工具版本:
Eclipse:Eclipse IDE for Java Developers —— Version: Helios Service Release 2 ,后面由于家里環(huán)境是MyEclipse8.5,后面是采用MyEclipse8.5,開發(fā)完成的;
Mysql:版本是5.6 ,用的是阿里的RDS 服務(wù),底層是Mysql5.6 。
Redis:版本是2.8.2400 / 64bit 。
二、Redis(Cache)問題。
自查:有沒有安裝redis,有沒有成功啟動(dòng),如果有,請(qǐng)確認(rèn)Redis是否IP和端口有改變,Shiro 教程Demo中配置如下:
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig"/>
<constructor-arg index="2" value="6379"/><!--默認(rèn)端口-->
<constructor-arg index="3" value="5000"/><!--鏈接超時(shí)時(shí)效-->
<constructor-arg index="1" value="127.0.0.1"/><!--默認(rèn)本地ip地址-->
</bean>這些都是默認(rèn)的配置,請(qǐng)核對(duì)一遍。如果沒問題,請(qǐng)把配置改成如下的配置:
<!-- redis 配置,也可以把配置挪到properties配置文件中,再讀取 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="2" value="6379" name="port" type="int"/>
<constructor-arg index="3" value="5000" name="timeout" type="int"/>
<constructor-arg index="1" value="127.0.0.1" name="host" type="java.lang.String"/>
</bean>這種 arguments 構(gòu)造的方式,之前配置有缺點(diǎn)。
因?yàn)閰?shù)類型不一致,有時(shí)候jar 和環(huán)境的問題,導(dǎo)致參數(shù)根據(jù)index 對(duì)應(yīng),會(huì)處理問題,
理論上加另一個(gè) name ,就可以解決,現(xiàn)在把name 和 type 都加上,更保險(xiǎn)。
那緩存到此基本沒問題,還有問題,加群交流。
新版本 Shiro_SSM_0.2 會(huì)解決這個(gè)問題。
三、登錄問題。
現(xiàn)有現(xiàn)象:
登錄后提示 “登錄成功” ,但是沒跳轉(zhuǎn),也反應(yīng),或者
404了。- 輸入帳號(hào)密碼后,點(diǎn)擊登錄,沒有任何反應(yīng)。
登錄的時(shí)候,提示“登錄成功”,跳轉(zhuǎn)后,又回到登錄頁面了。
對(duì)應(yīng)解決:
- 查看前后臺(tái)是否報(bào)錯(cuò),這時(shí)候應(yīng)該是Redis有問題,要么后臺(tái)其他報(bào)錯(cuò)了。
項(xiàng)目是否部署到
root,也就是根目錄,因?yàn)轫?xiàng)目中沒有basePath,所以有問題,新版本會(huì)解決這個(gè)問題。- 這個(gè)問題應(yīng)該是寫入
Cookie的問題,項(xiàng)目里有二個(gè)這個(gè)配置(spring-shiro.xml)。
<!-- 會(huì)話Cookie模板 -->
<bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
<!--cookie的name,我故意取名叫xxxxbaidu -->
<constructor-arg value="v_v-s-baidu"/>
<property name="httpOnly" value="true"/>
<!--cookie的有效時(shí)間 -->
<property name="maxAge" value="-1"/>
<!-- 配置存儲(chǔ)Session Cookie的domain為 一級(jí)域名 -->
<property name="domain" value=".itboy.net"/>
</bean><!-- 用戶信息記住我功能的相關(guān)配置 -->
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
<constructor-arg value="v_v-re-baidu"/>
<property name="httpOnly" value="true"/>
<!-- 配置存儲(chǔ)rememberMe Cookie的domain為 一級(jí)域名 -->
<property name="domain" value=".itboy.net"/>
<property name="maxAge" value="2592000"/><!-- 30天時(shí)間,記住我30天 -->
</bean>里面有下面配置,為 .itboy.net 項(xiàng),刪除即可。
<!-- 配置存儲(chǔ)rememberMe Cookie的domain為 一級(jí)域名 -->
<property name="domain" value=".itboy.net"/>
有其他問題,或者解決了,請(qǐng)聯(lián)系群主,我把過程及解決方案加上....
版權(quán)所屬:SO JSON在線解析
原文地址:http://suancuo.cn/blog/164.html
轉(zhuǎn)載時(shí)必須以鏈接形式注明原始出處及本聲明。
如果本文對(duì)你有幫助,那么請(qǐng)你贊助我,讓我更有激情的寫下去,幫助更多的人。

