shiro--Web集成
一,依赖
在maven,pom.xml中导入相关依赖,如下:<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.2.2</version>
</dependency>
Shiro 1.1 及以前版本配置方式
1.2在web.xml中加入以下过滤配置
<filter>
<filter-name>iniShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
<init-param>
<param-name>configPath</param-name>
<param-value>classpath:shiro.ini</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>iniShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1.使用 IniShiroFilter 作为 Shiro 安全控制的入口点,通过 url-pattern 指定需要安全的 URL;
2.通过 configPath 指定 ini 配置文件位置,默认是先从 /WEB-INF/shiro.ini 加载,如果没有就默认加载 classpath:shiro.ini,即默认相对于 web 应用上下文根路径;
3.也可以通过如下方式直接内嵌 ini 配置文件内容到 web.xml。
<init-param>
<param-name>config</param-name>
<param-value>
ini配置文件贴在这
</param-value>
</init-param>
二 shiro.ini配置
ini中不允许中途换行,否则会报错。在INI文件中注释只有#号
[main]
\#默认是/login.jsp
authc.loginUrl=/login
roles.unauthorizedUrl=/unauthorized
perms.unauthorizedUrl=/unauthorized
[users]
zhang=123,admin
wang=123
[roles]
admin=user:*,menu:*
[urls]
/login=anon
/unauthorized=anon
/static/**=anon
/authenticated=authc
/role=authc,roles[admin]
/permission=authc,perms["user:create"]
其中最重要的就是 [urls] 部分的配置,其格式是: “url = 拦截器 [参数],拦截器[参数]”;即如果当前请求的 url 匹配[urls] 部分的某个 url 模式,将会执行其配置的拦截器。比如 anon 拦截器表示匿名访问(即不需要登录即可访问);authc 拦截器表示需要身份认证通过后才能访问;roles[admin]拦截器表示需要有 admin 角色授权才能访问;而 perms[“user:create”]拦截器表示需要有 “user:create” 权限才能访问。
url 模式使用 Ant 风格模式
Ant 路径通配符支持?、、,注意通配符匹配不包括目录分隔符 “/”:
?:匹配一个字符,如”/admin?” 将匹配 / admin1,但不匹配 / admin 或 / admin2;
\:匹配零个或多个字符串,如 / admin * 将匹配 / admin、/admin123,但不匹配 / admin/1;
\:匹配路径中的零个或多个路径,如 / admin/ 将匹配 / admin/a 或 / admin/a/b。
具体请参考https://www.w3cschool.cn/shiro/c52r1iff.html
上一篇: 理解JSON
下一篇: shiro的一次认证多次授权
推荐阅读