1.配置shiro.ini文件为shiro提供配置
[user]
admin=123,role1
user1=123,role2
[main]
authc.loginUrl=/login //当认证为通过时跳转到/login对应的servlet
roles.unauthorizedUrl=/unauthorized.jsp //当角色不满足时调到unauthorized.jsp
perms.unauthorizedUrl=/unauthorized.jsp //当权限不满足时调到unauthorized.jsp
[roles]
#等号左边为角色名,右边为权限名
role1=user:*
role2=user:select
[urls]
#配置中等号左边为访问的servlet对应的pattern,右边为shiro默认过滤器的名字
#等号左边可用正则来表示,例如:/login?表示/logina 或/loginb等 ,/login*表示之后任意个,/login/*表示他的子目录的请求
#无需认证就可访问login对应的servlet
/login=anon
#需要认证通过才可以访问select对应的servlet,否则会跳到[main]中配置的authc.loginUrl中
/select=authc
# 需要角色为role1才可访问delete对应的servlet否则会跳到[main]中配置的roles.unauthorizedUrl
/delete=roles[role1]
#需要权限为user:update才可访问update对应的servlet否则会跳到[main]中配置的authc.loginUrl
/update=perms["user:update"]
2.配置web.xml文件
2.1 配置监听
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
2.2 添加shior过滤支持
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
<!--默认地址为:/WEB-INF/shiro.ini-->
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.3 其他servlet配置
注:shiro默认过滤器的名字
权限过滤和角色过滤前会进行认证过滤