spring boot security 权限用postman测试_Spring Security(五):前后端权限控制详解
文章回顾:
- Spring Security(一):整合JWT实现登录功能
- Spring Security(二):获取用户权限菜单树
- Spring Security(三):与Vue.js整合
- Spring Security(四):更新前端路由获取方式
1、每次请求时,都会带有token
,Spring Security
会根据token
判断用户信息,进行授权。
2、对于接口权限的控制,我们可以用过使用Spring
的EL
表达式配合@PreAuthorize("hasAnyRole('ADMIN')")
注解来对接口进行权限控制,这段注解表示,只有当前用户的角色为ADMIN
的时候,Spring Security
才会放行。注意:建议使用ROLE_*
的方式存放在数据库中用来规定角色名。
@PreAuthorize("hasAnyRole('ADMIN')")@RequestMapping(value = "/getRoleList",method = RequestMethod.POST)public RetResult getRoleList(@RequestBody Map<String,Object> map){//...}
Example
使用本系统的系统管理员和测试用户分别使用Postman
测试,这是测试用户访问进行访问时,会抛出AccessDeniedException
权限不足。
使用系统管理员测试结果,可以访问接口获取数据。
前端权限控制
1、由于本系统采用的是动态加载路由,所以如果当前用户的路由列表中没有你所输入访问的会转到404
页面。
2、自定义权限判断方法。配合v-if
指令来进行验证。
创建srcutilspermission.js
import store from '@/store'export default function hasPermission(value) {if (value && value instanceof Array && value.length > 0) {const roles = store.getters && store.getters.rolesconst permissionList = valueconst isPermission = roles.some(role => {return permissionList.includes(role.rolename)})if (!isPermission) {return false}return true} else {this.$message({message: '需要角色权限列表',type: 'error'})return false}}
解释一下:就是从Vuex
中拿到角色,然后与页面中定义的权限角色进行判断,如果包含的话就可以访问。
<template slot-scope="scope"><el-popover//在这里使用v-if进行判断就行v-if="hasPermission(['ROLE_ADMIN'])":ref="scope.row.id"placement="top"width="180"><p>确定删除本条数据吗?</p><div style="text-align: right; margin: 0"><el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button><el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button></div><el-button slot="reference" :disabled="scope.row.id === 1" type="danger" size="mini">删除</el-button></el-popover></template>...<script>import hasPermission from '@/utils/permission'...methods: {hasPermission,}
这样可以对按钮,或者页面中的一部分页面进行权限控制了~
GitHub分页插件
再说一下Spring Boot
中使用Github
的分页插件
1、首先引入依赖
<!--github分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency>
2、在application.yml
中配置PageHelper
如下
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql
3、建议封装一个PageUtil
,原因是通常Vue
前端分页需要我们传递当前页:pageNum
,页大小:pageSize
,总数量pageTotal
等参数。
package com.example.security.util;import com.github.pagehelper.Page;import lombok.Data;import java.util.List;/*** @Autoor:杨文彬* @Date:2019/1/21* @Description:*/@Datapublic class PageUtil {private Integer pageCur;private Integer pageSize;private Integer rowTotal;private Integer pageTotal;private List data;public PageUtil(Page page,List data) {this.pageCur = page.getPageNum();this.pageSize = page.getPageSize();this.rowTotal = page.getPages();this.pageTotal = Integer.valueOf((int)page.getTotal());this.data = data;}}
返回数据的格式
然后在前端渲染数据就ok了。目前做了角色管理页面,其中也对角色操作一栏使用hasPermission
进行了权限控制。代码已经同步到Github上了,如果你有任何的建议欢迎联系我~
欢迎关注我的个人微信公众号~
spring boot security 权限用postman测试_Spring Security(五):前后端权限控制详解相关推荐
- 【Postman知识分享】Postman测试下载文件和上传文件(图文详解)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- Spring Boot微服务的黑匣子测试是如此简单
当我需要进行原型设计,概念验证或在空闲时间使用一些新技术时,开始新项目对于Maven来说总是有点烦人. 不得不说,设置Maven项目并不难,您可以使用Maven原型. 但是原型通常是过时的. 谁想玩旧 ...
- SpringBoot 系列教程(八十五):Spring Boot使用MD5加盐验签Api接口之前后端分离架构设计
加密算法参考: 浅谈常见的七种加密算法及实现 加密算法参考: 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 目的: 通过对API接口请求报文签名,后端进行验签处理, ...
- Linux用户、权限及改变文件所有者及文件所属组多例详解 附python代码
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Linux用户.权 ...
- 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
前言 后台数据的校验也是开发中比较注重的一点,用来校验数据的正确性,以免一些非法的数据破坏系统,或者进入数据库,造成数据污染,由于数据检验可能应用到很多层面,所以系统对数据校验要求比较严格且追求可变性 ...
- springboot拦截html页面元素,Spring Boot 中如何使用拦截器(十五)
关于拦截器,大家一定都不陌生,spring boot 中是如何使用拦截器的呢?今天就举个例子,来给大家说明一下,废话不多说,开始撸代码!!! 1.创建一个新的spring boot项目,并引入相应的j ...
- spring boot 1.5.4 整合webService(十五)
Spring Boot整合web service 经验引用 之前用webservice的CXF框架, 很方便与简洁,但是悲催的是在部署到生产环境的WebSphere(was平台)下后,不能正常运行. ...
- java局部网内通话杂音_在Spring Boot反应式Web应用程序上启用SSL,并在控制台中对该打印进行http调用时出现异常噪音...
在我创建了我的spring boot反应式Web应用程序以支持SSL之后,当我尝试对服务器进行http调用时,它会在控制台中的异常跟踪下面打印 . 作为应用程序所有者,我无法阻止任何人使用我的服务 . ...
- Spring Boot @PropertySource注解加载指定配置文件(五)
我们可以通过@ConfigurationProperties和@Value两个注解获取主配置文件application.properties 或 apllication.yml中的配置信息,但是如果我 ...
最新文章
- ThreadLocal使用
- Python处理脑电--Epochs数据可视化
- 网络适配器无法建立连接_「图」KB4515384更新令人抓狂:网络适配器又无法启用...
- POJ 1091 跳蚤
- BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
- 安卓开发 xml添加滑动条
- python判断整数是否对称_刷题系列 - Python判断是否镜像对称二叉树
- csdn下载分获取方法
- win7 win10 配置共享文件夹
- 大厂年薪几十万,但是5-8年外包程序员,年薪是多少你知道吗?
- 把一个人的特点写具体作文_把一个人的特点写具体作文400字
- 2.jQuery常见API
- 【初学音频】Android的Audio系统之AudioFlinger
- Intelligent Reflecting Surface Assisted Secrecy Communication via Joint Beamforming and Jamming
- Unity3D插件 Doozy UI 学习(一):打开一个面板
- 访问局域网另外一台电脑虚拟机中CentOS7
- TwinCAT3读取CSV文件
- OpenMesh-网格光顺的算法
- java实现抛物线轨迹计算_JavaFX中抛物线轨迹的时间线
- 计算机网络——常考的面试题
热门文章
- 记录no static method cannot be reference
- Oulipo (KMP出现次数)
- sourcemap总结
- 在操作系统重启后恢复应用程序的工作状态
- Opencv与dlib联合进行人脸关键点检测与识别
- 在Controller中使用AOP
- 如何:将 TraceSource 和筛选器与跟踪侦听器一起使用(转载)
- 在GZIDG弄服务器的这一整夜,快乐
- 《Netkiller Spring Cloud 手札》Spring boot 2.0 mongoTemplate 操作范例
- BZOJ1857:[SCOI2010]传送带——题解