freemarker中使用shiro标签

目前Freemarker对Shrio的标签还不支持,不过已经有人贡献出来第三方面解决方案,如下:

1、下载shiro-freemarker-tags

GitHub地址:https://github.com/jagregory/shiro-freemarker-tags
可以先看一下他的说明文档,有一个初步的了解。

2、Spring MVC配置

自定义一个ShiroTagFreeMarkerConfigurer继承Spring本身提供的FreeMarkerConfigurer,目的是在FreeMarker的Configuration中添加shiro的配置

?
public  class  ShiroTagFreeMarkerConfigurer  extends  FreeMarkerConfigurer {
  
     @Override
     public  void  afterPropertiesSet()  throws  IOException, TemplateException {
         super .afterPropertiesSet();
         this .getConfiguration().setSharedVariable( "shiro" new  ShiroTags());
     }
      
}

下面的Spring mvc配置

?
<bean id= "freemakerCongfig"
     class = "com.xxx.web.freemarker.ShiroTagFreeMarkerConfigurer" ><!--这里是你自己定义的ShiroTagFreeMarkerConfigurer类-->
     <property name= "templateLoaderPath"  value= "/WEB-INF/views/"  />
     <property name= "freemarkerSettings" >
         <props>
             <prop key= "defaultEncoding" >UTF- 8 </prop>
             <prop key= "classic_compatible" > true </prop>
         </props>
     </property>
</bean>

3、使用Shiro Tag
?
下面具体讲讲标签应用,先列出原先的方式,再列出freemarker的方式,网上例举 比较少 
guest标签 
验证当前用户是否为“访客”,即未认证(包含未记住)的用户 
    <shiro:guest>  
    </shiro:guest>  

freemark中: <@shiro.guest> 
    </@shiro.guest> 

user标签 
认证通过或已记住的用户 
<shiro:user>  
</shiro:user> 

freemark中: 
<@shiro.user>  
    </@shiro.user> 
authenticated标签 
已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。 
    <shiro:authenticated>  
    </shiro:authenticated>  
freemark中: 
Java代码   收藏代码
  1. <@shiro.authenticated>    
  2.    </@shiro.authenticated>   



principal 标签 
输出当前用户信息,通常为登录帐号信息 
    Hello,  <shiro:principal property="name"/> 
freemarker中: 
  Hello,  <@shiro.principal property="name" />, how are you today?  


hasRole标签 
验证当前用户是否属于该角色 
    <shiro:hasRole name="administrator">  
         Administer the system   
    </shiro:hasRole>  

freemarker中: 
<@shiro.hasRole name=”admin”>Hello admin!</@shiro.hasRole> 
好了 其他没说的 依次类推 

还有一个问题 就是 如果默认用shiro登录后是remember me true的 
那么用户登录后 如果此时重启tomcat  那么 
<@shiro.principal property="name" />还是有值的 

这时候退出按钮的控制应该用:<@shiro.user>  
       退出  
    </@shiro.user> 
转载自:http://skyfar666.iteye.com/blog/2001891
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值