Springboot集成Spring Security(结合数据库根据角色给定权限)

1、Spring Security简介

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
(百度百科)

2、引入依赖

在pom文件加入如下代码:

        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

3、创建数据库并实现根据id查找

角色表
在这里插入图片描述
用户表
在这里插入图片描述
关联表
在这里插入图片描述

业务实现的方法(这里省略了Dao和业务接口)

   //根据id找角色实体
    @Override
    public AyRole find(String id) {
   
        return ayRoleRepository.findById(id).get();
    }
//根据用户id找角色关联的实体列表
      @Override
    public List<AyUserRoleRel> findByUserId(String userId) {
   
        return ayUserRoleRelRepository.findByUserId(userId);
    }
//根据名字找用户
    @Override
    public AyUser findByName(String name) {
   
        return ayUserDao.findByName(name);
    }

4、实现UserDetailsService接口

用CustomUserService类实现UserDetailsService接口

注意:给定角色名称要加上ROLE_前缀,不然会识别不出

代码如下:

import com.example.demojpa.error.BusinessException;
import com.example.demojpa.model.AyUser;
import com.example.demojpa.model.AyUserRoleRel;
import com.example.demojpa.service.AyRoleService;
import com.example.demojpa.service.AyUserRoleRelService;
import com.example.demojpa.service.AyUserService;
import org.apache.logging
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值