官网资料
shiro 1.2+ web.xml 配置
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
默认情况下,EnvironmentLoaderListener
将创建一个IniWebEnvironment
实例对象。IniWebEnvironment
实例需要加载.ini
配置文件,默认情况下会按顺序从下面两个路径中搜索加载ini
配置文件,并利用找到的第一个配置文件
1. /WEB-INF/shiro.ini
2. classpath:shiro.ini
我们也可以通过参数指定在其它路径下的.ini
文件
<context-param>
<param-name>shiroConfigLocations</param-name>
<param-value>YOUR_RESOURCE_LOCATION_HERE</param-value>
</context-param>
YOUR_RESOURCE_LOCATION_HERE
的值可以参考如下内容
/WEB-INF/hello.ini
file:/home/foobar/myapp/shiro.ini
classpath:com/foo/bar/shiro.ini
url:http://confighost.mycompany.com/myapp/shiro.ini
指定WebEnvironment
实例
<context-param>
<param-name>shiroEnvironmentClass</param-name>
<param-value>com.foo.bar.shiro.MyWebEnvironment</param-value>
</context-param>
Web InI 配置
/account/** = ssl, authc
等号(=)左边是一个Ant
格式的路径,相对路径
等号(=)右边是该路径匹配的过滤器(链),格式为:
filter1[optional_config1], filter2[optional_config2], ..., filterN[optional_configN]
filterN
是在[main]
中定义的过滤器名称
禁用过滤器
在不移除过滤器的情况下,我们可以通过在[main]
中禁用指定的过滤器从而将该过滤器从过滤器链中移除
[main]
authc.loginUrl= /login.html
authc.enabled=false
[urls]
/login.html = anon
/* = authc
将authc.enabled
设置为true
浏览器地址栏中输入localhost:8080
进入login.html
shiro内部提供的过滤器
anon:需认证
authc:需要认证成功
perms:权限认证
roles:角色认证