课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Apache Shiro中Apache Shiro Web Support的配置
  • Apache Shiro中Apache Shiro Web Support的配置

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

  • 昆明达内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--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56