shiro(3)-过滤器

1 与Web 集成

• Shiro 提供了与 Web 集成的支持,其通过一个ShiroFilter 入口来拦截需要安全控制的URL,然后进行相应的控制
• ShiroFilter 类似于如 Strut2/SpringMVC 这种web 框架的前端控制器,是安全控制的入口点,其负责读取配置(如ini 配置文件),然后判断URL是否需要登录/权限等工作。

2 ShiroFilter 的工作原理

shiro(3)-过滤器_第1张图片
image

3 ShiroFilter

shiro(3)-过滤器_第2张图片
image

4 部分细节

• [urls] 部分的配置,其格式是: “url=拦截器[参数],拦截器[参数]”;
• 如果当前请求的 url 匹配 [urls] 部分的某个 url 模式,将会执行其配置的拦截器。
• anon(anonymous) 拦截器表示匿名访问(即不需要登录即可访问)
• authc (authentication)拦截器表示需要身份认证通过后才能访问

5 shiro中默认的过滤器

shiro(3)-过滤器_第3张图片
image

image

6 URL 匹配模式

• url 模式使用 Ant 风格模式
• Ant 路径通配符支持 ?、*,注意通配符匹配不包括目录分隔符“/”:
– ?:匹配一个字符,如 /admin? 将匹配 /admin1,但不匹配 /admin 或 /admin/;
– *:匹配零个或多个字符串,如 /admin 将匹配 /admin、/admin123,但不匹配 /admin/1;
:匹配路径中的零个或多个路径,如 /admin/ 将匹配 /admin/a 或 /admin/a/b

7 URL 匹配顺序

• URL 权限采取第一次匹配优先的 方式,即从头开始使用第一个匹配的 url 模式对应的拦截器链。
• 如:
– /bb/=filter1
– /bb/aa=filter2
– /
=filter3
– 如果请求的url是“/bb/aa”,因为按照声明顺序进行匹配,那么将使用 filter1 进行拦截

你可能感兴趣的:(shiro(3)-过滤器)