Allen32

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

shiro常用标签

 

 

下面来讲解具体的标签用法。

1.guest(游客)

 
  1. <shiro:guest>
  2. 您当前是游客,<a href="javascript:void(0);" class="dropdown-toggle qqlogin" >登录</a>
  3. </shiro:guest>

2.user(已经登录,或者记住我登录)

 
  1. <shiro:user>
  2. 欢迎[<shiro:principal/>]登录,<a href="/logout.shtml">退出</a>
  3. </shiro:user>

3.authenticated(已经认证,排除记住我登录的)

 
  1. <shiro:authenticated>
  2. 用户[<shiro:principal/>]已身份验证通过
  3. </shiro:authenticated>

4.notAuthenticated(和authenticated相反)

 
  1. <shiro:notAuthenticated>
  2. 当前身份未认证(包括记住我登录的)
  3. </shiro:notAuthenticated>

这个功能主要用途,识别是不是本次操作登录过的,比如支付系统,进入系统可以用记住我的登录信息,但是当要关键操作的时候,需要进行认证识别。

5.principal标签,这个要稍微重点讲讲。好多博客都是一下带过。

principal 标签,取值取的是你登录的时候。在Realm 实现类中的如下代码:

 
  1. ....
  2. return new SimpleAuthenticationInfo(user,user.getPswd(), getName());

new SimpleAuthenticationInfo(第一个参数,....) 的第一个参数放的如果是一个username ,那么就可以直接用。

 
  1. <!--取到username-->
  2. <shiro: principal/>

如果第一个参数放的是对象,比如我喜欢放User 对象。那么如果要取username 字段。

 
  1. <!--需要指定property-->
  2. <shiro:principal property="username"/>

和下面 Java  代码一致

 
  1. User user = (User)SecurityUtils.getSubject().getPrincipals();
  2. String username = user.getUsername();

6.hasRole标签(判断是否拥有这个角色)

 
  1. <shiro:hasRole name="admin">
  2. 用户[<shiro:principal/>]拥有角色admin<br/>
  3. </shiro:hasRole>

7.hasAnyRoles标签(判断是否拥有这些角色的其中一个)

 
  1. <shiro:hasAnyRoles name="admin,user,member">
  2. 用户[<shiro:principal/>]拥有角色admin或user或member<br/>
  3. </shiro:hasAnyRoles>

8.lacksRole标签(判断是否不拥有这个角色)

 
  1. <shiro:lacksRole name="admin">
  2. 用户[<shiro:principal/>]不拥有admin角色
  3. </shiro:lacksRole>

9.hasPermission标签(判断是否有拥有这个权限)

 
  1. <shiro:hasPermission name="user:add">
  2. 用户[<shiro:principal/>]拥有user:add权限
  3. </shiro:hasPermission>

10.lacksPermission标签(判断是否没有这个权限)

 
  1. <shiro:lacksPermission name="user:add">
  2. 用户[<shiro:principal/>]不拥有user:add权限
  3. </shiro:lacksPermission>
posted on 2018-02-08 20:24  Allen32  阅读(360)  评论(0)    收藏  举报