昆明java培训
达内昆明广州春城路

18487146383

热门课程

Apache Shiro中Apache Shiro Web Support的配置

  • 时间:2016-10-19
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明达内Java培训的老师今天给大家讲Apache Shiro的Apache Shiro Web Support。

Apache Shiro Web Support

1.配置

将Shiro整合到Web应用中的最简单方式是在web.xml的Servlet ContextListener和Filter中添加shiro的ini配置。

与Spring的整合(Spring-specific web configuration)在文末说明

1.1 web.xml

Shiro 1.2 and later(Shiro 1.1及早期版本参照官方页面)

<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>

上述配置假定shiro.ini配置文件位于下列地址之一,使用最先获取到的文件:

1. /WEB_INF/shiro.ini

2. classpath根目录下的shiro.ini

上述配置的作用:

- EnvironmentLoaderListener初始化Shiro的WebEnvironment实例(包括SecurityManager),并使其可在ServletContext中访问。如果需要获取WebEnvironment实例,可调用WebUtils.getRequiredWebEnvironment(servletContext)

- ShiroFilter将使用WebEnvironment来对所有被过滤的请求执行必要的安全操作.

- filter-mapping定义保证了所有请求都将被ShiroFilter过滤,这是保证任意请求都是安全的的推荐配置。

通常将ShiroFilter filter-mapping配置在其他filter-mapping之前,以确保Shiro在其他过滤器中也能起作用。

自定义WebEnvironment类配置

EnvironmentLoaderListener默认会创建一个IniWebEnvironment实例,其假定Shiro是采用的ini配置。如需要修改默认ini配置或采用其他格式的配置(如xml),可在web.xml中配置自定义的WebEnvironment

<context-param>

<param-name>shiroEnvironmentClass</param-name>

<param-value>com.foo.bar.shiro.MyWebEnvironment</param-value>

</context-param>

自定义配置文件位置

若配置文件不是存放在默认目录下,则需在web.xml中进行配置:

<context-param>

<param-name>shiroConfigLocations</param-name>

<param-value>YOUR_RESOURCE_LOCATION_HERE</param-value>

</context-param>

param-value的值可以是/WEB-INF/some/path/shiro.ini的形式,或者是其他Shiro的ResourceUtils类支持的形式,如

file:/home/foobar/myapp/shiro.ini

classpath:com/foo/bar/shiro.ini

url:http://confighost.mycompany.com/myapp/shiro.ini

昆明达内Java培训的老师下一期还有新的知识点,大家不要错过。

上一篇:Java培训:equals和=,==的区别
下一篇:java程序员:Session管理

昆明达内Java培训带你了解机器学习

中美it行业数据大pk

昆明达内java培训的面试问题你都掌握了吗

机器学习领域需要掌握什么

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货