shiro web

本文介绍如何使用Shiro进行权限管理配置,包括shiro.ini文件的详细设置,如登录URL、未授权URL及权限和角色定义;同时展示了web.xml文件的配置方法,涉及监听器配置和Shiro过滤器的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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默认过滤器的名字

 权限过滤和角色过滤前会进行认证过滤

Filter Name Class
anon(无需认证) org.apache.shiro.web.filter.authc.AnonymousFilter
authc(需要认证通过) org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
logout org.apache.shiro.web.filter.authc.LogoutFilter
noSessionCreation org.apache.shiro.web.filter.session.NoSessionCreationFilter
perms(需要有某种权限) org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
port org.apache.shiro.web.filter.authz.PortFilter
rest org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
roles(需要为某种角色) org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
ssl org.apache.shiro.web.filter.authz.SslFilter
user org.apache.shiro.web.filter.authc.UserFilter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值