tx

wangcx

栖迟於一丘,则天下不易其乐
22,242
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注解将无效。
49 条评论
user 编辑评论信息
插入图片

隐私评论
  1. @
    Michaelzelry 2023年11月12日
    Windows 8.1 · Chrome 103 · 罗马尼亚

    very good

  2. @
    TimothyTok 2023年11月08日
    Windows 8.1 · Chrome 103 · 罗马尼亚

    thank you very much

  3. @
    Thomascog 2023年11月07日
    Windows 7 · Chrome 103 · 意大利

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

  4. @
    Dexterreign 2023年11月02日
    Windows 10 · Chrome 103 · 俄罗斯

    I visit every day some sites and information sites to read
    content, however this blog presents quality based posts.

    my page: текст ссылки

  5. @
    Thomascog 2023年10月28日
    Windows 10 · Chrome 103 · 俄罗斯

    Thanks, +

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

    interesting post

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

    Hello. And Bye.

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

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

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

    Cool + for the post