博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shiro的使用freemark实现前端控制权限
阅读量:4287 次
发布时间:2019-05-27

本文共 2002 字,大约阅读时间需要 6 分钟。

一 思路

freemark实现控制前端的操作的入口(控制了其显示与否),shiro把控了后端的操作入口。

二 操作配置

2.1 配置application

2.2 配置文件

package com.debug.pmp.server.config;import com.debug.pmp.server.shiro.ShiroVariable;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;import java.util.HashMap;import java.util.Map;import java.util.Properties;//Freemarker配置@Configurationpublic class FreemarkerConfig {    @Bean    public FreeMarkerConfigurer freeMarkerConfigurer(ShiroVariable shiroVariable){        FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();        configurer.setTemplateLoaderPath("classpath:/templates");        Map
variables = new HashMap<>(1); variables.put("shiro", shiroVariable); configurer.setFreemarkerVariables(variables); Properties settings = new Properties(); settings.setProperty("default_encoding", "utf-8"); settings.setProperty("number_format", "0.##"); configurer.setFreemarkerSettings(settings); return configurer; }}

 2.3 shiro的变量

作用是:判断当前登录的主题是否具有制定的权限

package com.debug.pmp.server.shiro;/** * Created by Administrator on 2019/8/4. */import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Component;/** * 推送给前端使用的shiro对象变量 * @Author:debug (SteadyJack) * @Date: 2019/8/4 22:29 **/@Componentpublic class ShiroVariable {    /**     * 判断当前登录用户(主体)是否有 指定的权限     * @param permission 指定的权限     * @return     */    public Boolean hasPermission(String permission){        Subject subject=SecurityUtils.getSubject();        /*if (subject!=null && subject.isPermitted(permission)){            return true;        }        return false;*/        return (subject!=null && subject.isPermitted(permission))? true : false;    }}

2.4 html页面

当执行<#if shiro.hasPermission("sys:user:save")>时候,就会调用ShiroVariable类中的方法,来判断是否具有权限。

三 前后端分离

用户登录成功后,可以将用户所属的权限集合返回给前端,前端做判断处理。

 

 

转载地址:http://aatgi.baihongyu.com/

你可能感兴趣的文章
C#时间点字符串转换为日期,当天时间点判断
查看>>
Visual Studio Code v1.28.2发布
查看>>
js计算时间差示例
查看>>
VSCode中Vue插件使用整理
查看>>
谷歌浏览器如何隐藏控制台的警告内容打印console.warn()
查看>>
Linux小技巧1--利用NFS和Samba在source insight上快速开发应用程序
查看>>
EI(SCI) 收录国外英文期刊(计算机类),A类期刊会议
查看>>
Windows小技巧4——如何取消共享的文件夹
查看>>
跟我一起写 Makefile(一)
查看>>
跟我一起写 Makefile(二)
查看>>
跟我一起写 Makefile(三)
查看>>
双色球笔记2--保存所有双色球号码到MySQL
查看>>
爬虫笔记1--爬取墨迹天气
查看>>
转载1-Python 字符串操作
查看>>
爬虫笔记2--爬取2345网站历史天气
查看>>
C++ 重载、覆盖、隐藏
查看>>
Hyperledger Fabric笔记4--运行IBM Marbles项目
查看>>
Ubuntu小技巧13--grep命令详解
查看>>
Ubuntu小技巧17--常用软件服务配置方法
查看>>
Windows小技巧8--VMware workstation虚拟机网络通信
查看>>