-----------------标签-------------------------------
<shiro:guest> 游客访问 <a href = "login.jsp"></a> </shiro:guest> user 标签:用户已经通过认证\记住我 登录后显示响应的内容 <shiro:user> 欢迎[<shiro:principal/>]登录 <a href = "logout">退出</a> </shiro:user> authenticated标签:用户身份验证通过,即 Subjec.login 登录成功 不是记住我登录的 <shiro:authenticted> 用户[<shiro:principal/>] 已身份验证通过 </shiro:authenticted> notAuthenticated标签:用户未进行身份验证,即没有调用Subject.login进行登录,包括"记住我"也属于未进行身份验证 <shiro:notAuthenticated> 未身份验证(包括"记住我") </shiro:notAuthenticated> principal 标签:显示用户身份信息,默认调用 Subjec.getPrincipal()获取,即Primary Principal <shiro:principal property = "username"/> hasRole标签:如果当前Subject有角色将显示body体内的内容 <shiro:hashRole name = "admin"> 用户[<shiro:principal/>]拥有角色admin </shiro:hashRole> hasAnyRoles标签:如果Subject有任意一个角色(或的关系)将显示body体里的内容 <shiro:hasAnyRoles name = "admin,user"> 用户[<shiro:pricipal/>]拥有角色admin 或者 user </shiro:hasAnyRoles> lacksRole:如果当前 Subjec没有角色将显示body体内的内容 <shiro:lacksRole name = "admin"> 用户[<shiro:pricipal/>]没有角色admin </shiro:lacksRole> hashPermission:如果当前Subject有权限将显示body体内容 <shiro:hashPermission name = "user:create"> 用户[<shiro:pricipal/>] 拥有权限user:create </shiro:hashPermission> lacksPermission:如果当前Subject没有权限将显示body体内容 <shiro:lacksPermission name = "org:create"> 用户[<shiro:pricipal/>] 没有权限org:create </shiro:lacksPermission>
---------------权限注解------------------------
@RequiresAuthenthentication:表示当前Subject已经通过login进行身份验证;即 Subjec.isAuthenticated()返回 true @RequiresUser:表示当前Subject已经身份验证或者通过记住我登录的, @RequiresGuest:表示当前Subject没有身份验证或者通过记住我登录过,即是游客身份 @RequiresRoles(value = {"admin","user"},logical = Logical.AND):表示当前Subject需要角色admin和user @RequiresPermissions(value = {"user:delete","user:b"},logical = Logical.OR):表示当前Subject需要权限user:delete或者user:b