SpringBoot整合Spring Security(二、资源访问权限控制)

本文详细介绍了如何在SpringBoot应用中整合Spring Security,实现资源访问权限控制。内容包括建立资源和角色关联的数据库表,创建自定义FilterInvocationSecurityMetadataSource和AccessDecisionManager,以及测试不同角色用户的访问权限。
摘要由CSDN通过智能技术生成

Spring Security 对资源的访问权限控制

资源访问权限控制涉及到的表除了上篇的用户表、角色表,用户角色中间表,这里还得加上资源表,和资源角色中间表,资源表存的都是Controller中接口的访问URL,资源角色中间表则将资源和角色关联起来。

资源表:
在这里插入图片描述
资源角色中间表
在这里插入图片描述

1.建表Sql

/*
 Navicat Premium Data Transfer

 Source Server         : 本地MySql
 Source Server Type    : MySQL
 Source Server Version : 50721
 Source Host           : localhost:3306
 Source Schema         : permission

 Target Server Type    : MySQL
 Target Server Version : 50721
 File Encoding         : 65001

 Date: 03/05/2020 19:00:36
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for menu
-- ----------------------------
DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu`  (
  `id` int(11) NOT NULL,
  `pattern` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of menu
-- ----------------------------
INSERT INTO `menu` VALUES (1, '/db/**');
INSERT INTO `menu` VALUES (2, '/admin/**');
INSERT INTO `menu` VALUES (3, '/user/**');

-- ----------------------------
-- Table structure for menu_role
-- ----------------------------
DROP TABLE IF EXISTS `menu_role`;
CREATE TABLE `menu_role`  (
  `id` int(11) NOT NULL,
  `mid` int(11) NULL DEFAULT NULL,
  `rid` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of menu_role
-- ----------------------------
INSERT INTO `menu_role` VALUES (1, 1, 1);
INSERT INTO `menu_role` VALUES (2, 2, 2);
INSERT INTO `menu_role` VALUES (3, 3, 3);

SET FOREIGN_KEY_CHECKS = 1;

2.资源表实体

Menu

/**
 * @Author:lvyuanjie
 * @Date:2020/5/3 19:16
 */
public class Menu {
    private Integer id;

    private String pattern;

    private List<Role> roles;

//省略getter ,setter
}

3.MenuMapper 和 MenuMapper.xml

/**
 * @Author:lvyuanjie
 * @Date:2020/5/3 19:19
 */
public interface MenuMap
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值