Shiro 教程,关于最近反应的相关异常问题,解决方法合集。

信息发布:soゝso 发布日期:2016-08-26 00:13 热度:1023 分享到:

shiro demo下载

Shiro + SSM(框架) + Freemarker(jsp)讲解的权限控制Demo,还不赶快去下载?

前言:本教程适合有一定基础的 Java程序员使用,如果对 Shiro 有一定的了解,过程中会很快接受,建议在使用 Shiro教程Demo的时候,建议直接Maven,教程Demo中没有对Maven过多的依赖,只有一个依赖包的管理,如果对Maven不熟悉,你可以安装一个MyEclipse8.5,自带Maven环境,本站有 在线生成MyEclipse注册码。注意,开始不管你技术多牛,不管我的文档写的有多么不好,都建议你看完,这样大概心里有个数,Demo里有什么功能,哪些地方怎么实现的?都知道个大概。

Shiro教程地址:http://www.sojson.com/shiro  (含项目下载地址)。

本篇叙述的是问题集合,以及相关解决方案,如果你在使用本站提供的 SSM + Shiro + Redis + Freemarker 的Shiro教程 中遇到问题,以及解决方案,可以联系站长告知,我会第一时间更新到此篇博客之中。

一、Shiro 教程 Demo 环境准备。

环境在http://www.sojson.com/shiro 中说的很详细,我Ctrl + C 过来。

开发工具: Eclipse  MyEclipse  Idea  等等。

依赖第三方:Mysql 5.0 以上、 Redis  (v2.8左右)。

需要的配置:jdbc.properties 中配置 Mysql  的信息、spring-cache.xml 配置 Redis  配置,如果是默认配置,就不用换,Redis Windows 环境安装教程:http://www.sojson.com/blog/110.html

这里特别强调一下,开发工具的问题。

IDEA:很多同学用IDEA 的时候出现了问题,主要出现在2个地方,一个是 XML 打包不进去,还有一个是Maven 的问题,但是如果对IDEA 环境比较熟悉,那就没这个问题。

Eclipse:最新版本有问题,其实也是在打包和 Maven  上。不是最新版本,亲测好使没毛病。

Myecilpse8 ~ Myecilpse 10 :亲测好使,没毛病。

我开发的工具版本:

Eclipse:Eclipse IDE for Java Developers —— Version: Helios Service Release 2 ,后面由于家里环境是MyEclipse8.5,后面是采用MyEclipse8.5,开发完成的;

Mysql:版本是5.6 ,用的是阿里的RDS 服务,底层是Mysql5.6

Redis:版本是2.8.2400 / 64bit 

二、Redis(Cache)问题。

自查:有没有安装redis,有没有成功启动,如果有,请确认Redis是否IP和端口有改变,Shiro 教程Demo中配置如下:

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
	<constructor-arg index="0" ref="jedisPoolConfig"/>
	<constructor-arg index="2" value="6379"/><!--默认端口-->
	<constructor-arg index="3" value="5000"/><!--链接超时时效-->
	<constructor-arg index="1" value="127.0.0.1"/><!--默认本地ip地址-->
</bean>

这些都是默认的配置,请核对一遍。如果没问题,请把配置改成如下的配置:

<!-- 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 构造的方式,之前配置有缺点。

因为参数类型不一致,有时候jar 和环境的问题,导致参数根据index 对应,会处理问题,

理论上加另一个 name ,就可以解决,现在把name type 都加上,更保险。

那缓存到此基本没问题,还有问题,加群交流。

新版本 Shiro_SSM_0.2 会解决这个问题。

三、登录问题。

现有现象:

  1. 登录后提示 “登录成功” ,但是没跳转,也反应,或者404 了。

  2. 输入帐号密码后,点击登录,没有任何反应。
  3. 登录的时候,提示“登录成功”,跳转后,又回到登录页面了。

对应解决:

  1. 查看前后台是否报错,这时候应该是Redis有问题,要么后台其他报错了。
  2. 项目是否部署到 root ,也就是根目录,因为项目中没有basePath ,所以有问题,新版本会解决这个问题。

  3. 这个问题应该是写入Cookie 的问题,项目里有二个这个配置(spring-shiro.xml )。
<!-- 会话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的有效时间 -->
    <property name="maxAge" value="-1"/>
    <!-- 配置存储Session Cookie的domain为 一级域名 -->
    <property name="domain" value=".itboy.net"/>
</bean>
<!-- 用户信息记住我功能的相关配置 -->
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
    <constructor-arg value="v_v-re-baidu"/>
    <property name="httpOnly" value="true"/>
    <!-- 配置存储rememberMe Cookie的domain为 一级域名 -->
    <property name="domain" value=".itboy.net"/>
    <property name="maxAge" value="2592000"/><!-- 30天时间,记住我30天 -->
</bean>

里面有下面配置,为 .itboy.net 项,删除即可。

<!-- 配置存储rememberMe Cookie的domain为 一级域名 -->
<property name="domain" value=".itboy.net"/>



有其他问题,或者解决了,请联系群主,我把过程及解决方案加上....


本文主题

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。 如果还有疑问,点击我加群,为你提供最好的解答。


工具导航地图

 
Nodejs + socket Demo 赞助二维码 赞助名单 百度口碑点赞 查看QQ群美女帅哥 点击加QQ群 听音乐 开启弹幕 X
反馈意见