tx

wangcx

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

隐私评论
  1. @
    Kzkktostarf 2天前
    Windows 7 · Chrome 90 · 保加利亚

    interesting post

  2. @
    Kazkzrdvet 6天前
    Windows 8.1 · Chrome 90 · 意大利

    very interesting, but nothing sensible

  3. @
    kzkazWinty 6天前
    Windows 10 · Edge · 英国

    interesting post

  4. @
    KkkzellHoasp 3月11日
    Windows 10 · Chrome 90 · 罗马尼亚

    very good

随机一言

:D 获取中...

随机文章

Shiro 权限注解 239 浏览 - 2020/12/07
Homebrew 修改源 202 浏览 - 2020/05/14
macOS JDK 多版本配置及切换 208 浏览 - 2019/10/11
Mac 下安装 Homebrew 178 浏览 - 2020/05/11