NullPointer 发表于 2016-12-23 11:58

(第三天)Shiro与Spring集成

集成Spring需要两大步骤
一、Web.xml配置
1、Shiro通过ShiroFilter入口来拦截需要安全控制的URL,然后进行相应的控制。
2、ShiroFilter类似于如Struts2/SpringMVC这种框架的前端控制器,是安全控制的入口点,其负责读取配置(如ini配置文件),然后判断URL是否需要登陆/权限等工作。
3、DelegatingFilterProxy作用是自动到Spring容器查找名字为shiroFilter(filter-name)的bean并把所有Filter的操作委托给它。

二、Spring集成1、配置SecurityManager,Shiro的核心组件

2. 配置 CacheManager.
2.1 需要加入 ehcache 的 jar 包及配置文件.

3. 配置 LifecycleBeanPostProcessor

4、启用 IOC 容器中使用 shiro 的注解. 但必须在配置了 LifecycleBeanPostProcessor 之后才可以使用.

5、 配置 ShiroFilter

三、部分细节说明:
1、部分的配置格式是:url=拦截器[参数],拦截器[参数]....;(参数后续解释)
2、若当前请求的url匹配部分的某个url模式,将会执行其配置的拦截器;(拦截器后续有专题)
3、anon(anonymous)拦截器表示匿名访问(即不需要登陆就可访问);
4、authc(authentication)拦截器表示需要身份认证通过后才能访问(登陆后才能访问)
5、roles拦截器表示需要有admin角色授权才能访问;
6、perms["user:create"]拦截器表示需要有“user:create”权限才能访问。

四、URL匹配模式
url模式使用Ant风格模式
Ant路径通配符支持?、*、**,注意通配符匹配不包括目录分隔符“/”:
1、?:匹配一个字符,如”/admin?”将匹配/admin1,但不匹配/admin或/admin2;2、*:匹配零个或多个字符串,如/admin*将匹配/admin、/admin123,但不匹配/admin/1;3、**:匹配路径中的零个或多个路径,如/admin/**将匹配/admin/a或/admin/a/b。五、url模式匹配顺序1、Url采取第一次匹配优先的方式2、url模式匹配顺序是按照在配置中的声明顺序匹配,即从头开始使用第一个匹配的url模式对应的拦截器链。如:Java代码


[*]/bb/**=filter1
[*]/bb/aa=filter2
[*]/**=filter3   

如果请求的url是“/bb/aa”,因为按照声明顺序进行匹配,那么将使用filter1进行拦截。
完整Demo下载地址:https://github.com/GeekerDream/shiro中的shiro-example-spring

13551494196 发表于 2016-12-23 12:38

感谢分享{:301_993:}

xiaopan7881 发表于 2017-1-12 11:31

感谢分享,jar有没有 可以分享一下

NullPointer 发表于 2017-1-12 15:52

xiaopan7881 发表于 2017-1-12 11:31
感谢分享,jar有没有 可以分享一下

看我其他文章,有ssm+shiro整合好的空框架
页: [1]
查看完整版本: (第三天)Shiro与Spring集成