SpringSecurity授权

授权简介

用户认证指的是不管是用户名密码,还是图形验证码,最终的目的都是让系统知道到底是谁在访问你的系统,解决的问题是:你是谁。

本篇文章的内容主要讲解你能在系统中做什么事情,针对这个有的叫做授权, 有的叫做鉴权, 还有的叫权限控制。最终的目的就是你能够在系统中做什么。

Spring Security对授权的定义

image-20211111103759364

安全权限控制问题其实就是控制能否访问URL。

Spring Security授权原理

image-20211111104246174

在我们应用系统里面,如果想要控制用户权限,需要有两部分数据:

  • 系统配置信息:写着系统里面有哪些URL,每一个url拥有哪些权限才允许被访问。
  • 用户权限信息:请求用户拥有的权限
    • 系统用户发送一个请求:系统配置信息和用户权限信息作比对,如果比对成功则允许访问。

当一个系统授权规则比较简单,基本不变的时候,系统的权限配置信息可以写在我们的代码里面。比如前台门户网站等权限比较单一,使用简单的授权配置即可完成;如果权限复杂,例如办公OA,电商后台管理系统等就不能写在代码里面了,需要RBAC权限模型设计。

Spring Security授权

内置权限表达式

Spring Security 使用Spring EL来支持,主要用于Web访问和方法安全上,可以通过表达式来判断是否具有访问权限。

下面是Spring Security常用的内置表达式。ExpressionUrlAuthorizationConfigurer定义了所有的表达式。

表达式说明
permitAll指定任何人都允许访问
denyAll指定任何人都不允许访问
anonymous指定匿名用户允许访问
rememberMe指定已记住的用户允许访问
authenticated指定任何经过身份验证的用户都允许访问,不包含anonymous
fullyAuthenticated指定由经过身份验证的用户允许访问,不包含anonymousrememberMe
hasRole(role)指定需要特定的角色的用户允许访问,会自动在角色前面插入ROLE_
hasAnyRole([role1,role2])指定需要任意一个角色的用户允许访问,会自动在角色前面插入ROLE_
hasAuthority(authority)指定需要特定权限的用户允许访问
hasAnyAuthority([authority,authority])指定需要任意一个权限的用户允许访问
hasIpAddress(ip)指定需要特定的IP地址可以访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值