shiro的freemaker标签配置使用

本文介绍如何在使用Freemarker的前端页面中集成Shiro权限控制,通过引入shiro-freemarker-tags库并配置Spring Bean实现权限判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于前端页面使用freemarker,shiro有jsp标签,在使用freemarker标签只借助第三方的梯子shiro-freemarker-tags

1.maven引用包:

 <dependency>
        <groupId>net.mingsoft</groupId>
        <artifactId>shiro-freemarker-tags</artifactId>
        <version>0.1</version>
 </dependency>

2.继承FreeMarkerConfigurer,进行响应的扩展
public class FreeMarkerConfigExtend extends FreeMarkerConfigurer {
    @Override
    public void afterPropertiesSet() throws IOException, TemplateException {
        super.afterPropertiesSet();
        this.getConfiguration().setSharedVariable("shiro", new ShiroTags());
    }
}

3.在applicationContext.xml文件中配置(以下配置直接拷贝与现有项目)

 <bean id="freemarkerConfig"
          class="com.belle.infrastructure.freemarker.shirotags.FreeMarkerConfigExtend">
        <property name="templateLoaderPaths">
            <list>
                <value>/WEB-INF/ftl/</value>
                <value>/WEB-INF/templates/</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="locale">zh_CN</prop>
                <prop key="default_encoding">UTF-8</prop>
            </props>
        </property>
    <!--    <property name="freemarkerVariables">
            <map>
                <entry key="BasePath" value="/fms" />
                <entry key="model" value="200" />
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property> -->

    </bean>


4.freemarker页面上使用

4.1按钮控制

<@shiro.hasPermission name="invoice:delete">
        <div class="btn" id='exportReport'>
            <span class="btn_l"></span>
            <b class="ico_btn add"></b>
            <span class="btn_txt">删除报表</span>
            <span class="btn_r"></span>
        </div>
</@shiro.hasPermission>


4.2 金额等敏感字段控制
 <@shiro.hasPermission name="invoiceAmt:show">
		<@ex.column property="invoiceAmt" title="价税合计"  style="color:red;font-weight:bold;white-space:nowrap;">
		      ${vo.invoiceAmt?default('0.00')?string('###,##0.00')}
		</@ex.column>
</@shiro.hasPermission>


参考资料:

http://www.sojson.com/blog/143.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值