五分钟带你玩转SpringSecurity(四)晋级!Spring EL 权限表达式全集

网友投稿 279 2022-09-30

五分钟带你玩转SpringSecurity(四)晋级!Spring EL 权限表达式全集


Spring Security 允许我们使用 Spring EL 表达式,来进行用户权限的控制,如果对应的表达式结果返回true,则表

示拥有对应的权限,反之则无。

Spring Security 可用表达式对象的基类是 SecurityExpressionRoot 参见此类即可。

表达式

描述

permitAll()

总是返回true,表示允许所有访问(认证不认证都可访问 URL或方法

denyAll()

总是返回false,表示拒绝所有访问(永远访问不到指定的 URL或方法

isAnonymous()

当前用户是一个匿名用户(未登录用户)允许访问,返回true

isRememberMe()

当前用户是通过Remember-Me自动登录的允许访问,返回true

isAuthenticated()

当前用户是已经登录认证成功的允许访问(包含了rememberMe自动

登录的),返回true

isFullyAuthenticated()

如果当前用户既不是一个匿名用户,同时也不是通过Remember-Me自

动登录的,则允许访问(可以理解为通过页面输入帐户信息认证的)

hasRole(String role)

当前用户拥有指定角色权限的允许访问,返回true。注意: 指定的角色

名(如: ADMIN ) SpringSecurity 底层会在前面拼接 ROLE_ 字符串,所

以在UserDetailsService实现类,数据库返回的角色名要有ROLE_ADMIN

hasAnyRole([role1, role2])

多个角色以逗号分隔字符串。如果当前用户拥有指定角色中的任意一

个则允许访问,返回true

hasAuthority(String authority)

当前用户拥有指定权限标识的允许访问,返回true。注意:和hasRole

区别是, hasAuthority 不会在前面拼接 ROLE_ 字符串, 。

hasAnyAuthority([auth1,auth2])

多个权限标识是以逗号分隔的字符串。如果当前用户拥有指定权限标识

中的任意一个则允许访问,返回true

hasIpAddress("192.168.1.1/29") 

限制指定IP或指定范围内的IP才可以访问


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Azure新知识科普 - Azure Virtual Network Manager Security Config
下一篇:Azure新知识科普 - Azure Virtual Network Manager
相关文章

 发表评论

暂时没有评论,来抢沙发吧~