shrio使用Freemark注解式权限验证

1.扩展freemarker标签

public class MyFreeMarkerConfig extends FreeMarkerConfigurer {
    @Override
    public void afterPropertiesSet() throws IOException, TemplateException {
        //继承之前的属性配置,这不不能省
        super.afterPropertiesSet();
        Configuration cfg = this.getConfiguration();
        cfg.setSharedVariable("shiro", new ShiroTags());//注册shiro 标签
    }
}

2.在springmvc.xml中将MyFreeMarkerConfig设置成当前环境中使用freemarker配置对象

<bean class="cn.wolfcode.rbac.shiro.conf.CrmFreeMarkerConfigurer"> 
    <!-- 配置 freemarker 的文件编码 -->
    <property name="defaultEncoding" value="UTF-8"/> 
    <!-- 配置 freemarker 寻找模板的路径  -->
    <property name="templateLoaderPath" value="/WEB-INF/views/"/>
</bean>

class路径为自定义crmfreeMakerConfiguer的路径

3.使用shiro相关标签

<@shiro.hasRole name="admin">
<a href="#" class="btn btn-danger btn_batchDelete">
 <span class="glyphicon glyphicon-trash"></span> 批量删除
 </a>
</@shiro.hasRole>

1.判断用户是否有角色,如果有角色就可以使用批量删除功能

<@shiro.authenticated>
<@shiro.principal property="name" />
</@shiro.authenticated>
<@shiro.notAuthenticated>叩丁狼</@shiro.notAuthenticated>

2.如果是数据库里有的用户,显示他的名字,否则显示自定义的名字

<@shiro.hasAnyRoles name="admin,user,operator">Hello admin</@shiro.hasAnyRoles>

3.验证当前用户是否拥有这些角色中的任何一个,中间用,隔开

<@shiro.hasPermission name="department:delete">删除</@shiro.hasPermission>

4.判断当前用户是否拥有该权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值