springMvc+shiro做权限管理,页面上的静态资源,样式图片等没有出现,用几种方式过滤试过,还是不行

html-css09

springMvc+shiro做权限管理,页面上的静态资源,样式图片等没有出现,用几种方式过滤试过,还是不行,第1张

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置。

只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣。

/css/**  = anon

配置完成后,未登录就可以在浏览器中直接访问css下的资源,新项目用的shiro,简单而又实用的权限框架。

在shiroFilter 和 mvc:resources中都需要配置,

如:

shiroFilter中:

<property name="filterChainDefinitions">

<value>

/css/** = anon

/js/** = anon

/img/** = anon

</value>

</property>在spring-mvc.xml中:

<mvc:resources mapping="/css/**" location="/css/" cache-period="2592000"/>

<mvc:resources mapping="/img/**" location="/img/" cache-period="2592000"/>

<mvc:resources mapping="/js/**" location="/js/" cache-period="2592000"/>

1 、 首先 创建一个项目名(mail)的文件夹, 在项目文件夹下创建一个存放JS脚本的文件夹,创建一个存放images(图片)的文件夹,创建一个存放CSS样式的文件夹等。

2、 然后在项目文件夹下创建一个WEB-INF的目录文件,JAVA类、jar包、WEB应用的配置文件都存在这个目录下。WEB-INF目录下存放了一些文件,有classes目录(编译好的类库)、lib目录, 每一个WEB应用程序的访问都需要一个配置文件,基于WEB.xml文件,所以在WEB-INF 文件目录下应该创建一个WEB.xml文件。

3、在所创建的项目mail文件夹下创建一个HTML文件,名为index.html。在HTML文件中编辑一些内容。

4、 在tomcat目录文件夹下的conf文件的Catalina\Localhost文件夹下新建一个名为mail.xml的项目文件,在这个文件中编辑代码,写一个Context的配置的路径 如:

<?xml version='1.0' encoding='utf-8'?>

<Context docBase=”C:\mail”/>

5、 最后重新启动Comcat就可以了。

我在整合springboot 的 无状态shiro 的时候发现了这个问题,同样的配置在spring mvc下用xml方式配置是正常的,就是ShiroFilterFactoryBean注入自定义拦截器后,

只要使用了/** = ANYONE会拦截前面所有的拦截器,不管是否通过。

比如这样配置

/test = none

/** = authc

使用shiro内置拦截器照样拦截前面所有的,因为我是无状态,在访问的时候会报错的。

,但是不注入自定义拦截器就是正常的。注入自定义拦截器,感觉整个拦截器链都混乱了,弄了一下午没有弄好这个问题。