tx

wangcx

栖迟於一丘,则天下不易其乐
21,728
Shiro 权限注解 Shiro 权限注解

Shiro提供了相应的注解用于权限控制,如果使用这些注解就需要使用AOP的功能来进行判断,如Spring AOP;
Shiro提供了Spring AOP集成用于权限注解的解析和验证。

@RequiresAuthentication

表示当前Subject已经通过login 进行了身份验证;即Subject.isAuthenticated()返回true。

@RequiresUse

表示当前Subject已经身份验证或者通过记住我登录的。

@RequiresGuest

表示当前Subject没有身份验证或通过记住我登录过,即是游客身份。

@RequiresRoles(value = {"admin", "user"}, logical = Logical.AND)
@RequiresRoles(value = {"admin"})
@RequiresRoles({"admin"})

表示当前Subject需要角色admin 和user。

@RequiresPermissions (value={“user:a”, “user:b”}, logical= Logical.OR)

表示当前Subject需要权限user:a或user:b。


Shiro的认证注解处理是有内定的处理顺序的,如果有多个注解的话,前面的通过了会继续检查后面的,若不通过则直接返回,处理顺序依次为(与实际声明顺序无关)

  1. RequiresRoles
  2. RequiresPermissions
  3. RequiresAuthentication
  4. RequiresUser
  5. RequiresGuest
    以上注解既可以用在controller中,也可以用在service中使用;
    建议将shiro注解放在controller中,因为如果service层使用了spring的事物注解,那么shiro注解将无效。
45 条评论
user 编辑评论信息
插入图片

隐私评论
  1. @
    Thomascog 2023年10月28日
    Windows 10 · Chrome 103 · 俄罗斯

    Thanks, +

  2. @
    TimothyTok 2023年10月28日
    Windows 7 · Chrome 103 · 罗马尼亚

    interesting post

  3. @
    XRumerTest 2023年10月12日
    Windows 7 · Chrome 103 · 孟加拉

    Hello. And Bye.

  4. @
    Timothyvon 2023年09月28日
    Windows 8.1 · Chrome 103 · 摩尔多瓦 基希讷乌Trabia-Network公司

    Thanks, I've been looking for this for a long time

  5. @
    Davidhoamn 2023年09月17日
    Windows 10 · Chrome 103 · 摩尔多瓦 基希讷乌Trabia-Network公司

    Cool + for the post

随机一言

:D 获取中...

最新评论

随机文章

LogBack 日志路径配置问题 432 浏览 - 2022/04/26
修改 Windows控制台编码为UTF-8 637 浏览 - 2022/09/06
XML 中大于号和小于号的处理 550 浏览 - 2022/11/30
Shiro 权限注解 3061 浏览 - 2020/12/07