您的位置:首页 > 其它

shiro配置好后,页面登录成功会自动重定向/favicon.ico

2016-11-30 19:14 274 查看
问题描述:



今天给浏览器页面加上logo文件 /favicon.ico,类似上图。

文件放在 static/common/images 路径下,页面 head 里加上

<link rel="shortcut icon" href="static/common/images/favicon.ico" type="image/x-icon">

浏览器可以成功显示 favicon.ico,但是在第一次登陆成功后会自动重定向到 /favicon.ico 文件的路径。

网上的解决办法:

基本大多数浏览器都会请求 favicon.ico 这个图标文件用来展示在浏览器的URL地址前面,而这个文件被shiro保护了。

解决方法:

在 filterChainDefinitions 下配置 /favicon.ico 以匿名访问

 /favicon.ico = anon

可是我配置好 /static/common/images/favicon.ico = anon 后,还是会重定向。

多次测试之后发现anon配置的顺序会有影响。

Shiro验证URL时,URL匹配成功便不再继续匹配查找,所以要注意配置文件中的URL顺序,尤其在使用通配符时。

故filterChainDefinitions的配置顺序为自上而下,以最上面的为准。

之前的配置:
<property name="filterChainDefinitions">
<value>
/resources/**=anon
/systemManage/resources/**=anon
/unauthorized = authc
/login = authc
/logout = logout
<!--/authenticated = authc-->
/** = user,sysUser
/static/common/images/favicon.ico = anon
</value>
</property>


修改后的配置:
<property name="filterChainDefinitions">
<value>
/static/common/images/favicon.ico = anon
/resources/**=anon
/systemManage/resources/**=anon
/unauthorized = authc
/login = authc
/logout = logout
<!--/authenticated = authc-->
/** = user,sysUser
</value>
</property>

只是调整了  /static/common/images/favicon.ico = anon 的顺序。

过滤器 anon  表示可匿名使用,可以理解为匿名用户或游客,无需认证便可以访问的的文件。

还是不太理解顺序跟重定向的关系,但是我确实依靠调整顺序解决了这个问题。有知情的大神,还请不吝指教!


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐