玩转SpringBoot安全管理:SpringSecurity之UserDetailService身份认证

本文详细介绍了如何在SpringBoot项目中使用SpringSecurity的UserDetailService进行身份认证,避免频繁的JDBC查询。文章涵盖创建实体类、Repository层封装、Service层业务方法以及UserDetailsService接口的实现,强调了UserDetails接口和SimpleGrantedAuthority在权限管理中的作用,并提供了配置修改和测试案例。

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

接着说,接着说🧖‍♀️代码资源在下面💇‍♀️
上一期传送门在这里:玩转SpringBoot安全管理:SpringSecurity介绍及入门、自定义用户认证及授权管理、MVC Security安全配置介绍(内存和JDBC身份认证实现)
这一章节会比较困难🦹‍♂️🦹‍♂️🦹‍♂️

在这里插入图片描述

这里代码相对来说比较多,我就不展示啦💁‍♀️💁‍♀️
微信搜索“大魔王编程乐园”公众号,关注并发送SS身份认证 就可以得到项目源码啦🤠下期见🐱‍🏍

UserDetailService身份认证

对于用户量比较大的项目来说呢,频繁使用JDBC进行数据库查询认证非常麻烦,会降低网站登陆速度,对于一个完善的项目来说,如果有一些业务已经实现了用户信息查询的服务,那么就没有必要再去使用JDBC查询了
那么现在在我们的项目里建立定义查询用户及角色信息的服务接口

1.基本工作

修改pom文件,这里不演示👱‍♀️

1.1 创建实体类

Authority.class

package com.security.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;


@Entity(name = "t_authority ")
public class Authority implements Serializable {
   
//    由于使用了缓存,所以一定要对实体类进行序列化
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String authority ;

    public Integer getId() {
   
        return id;
    }

    public void setId(Integer id) {
   
        this.id = id;
    }

    public String getAuthority() {
   
        return authority;
    }

    public void setAuthority(String authority) {
   
        this.authority = authority;
    }

    @Override
    public String toString() {
   
        return "Authority{" +
                "id=" + id +
                ", authority='" + authority + '\'' +
                '}';
    }
}

Customer .class

package com.security.domain;


import javax.persistence.*;
import java.io.Serializable;

@Entity(name = "t_customer")
public class Customer implements Serializable {
   
    //    由于使用了缓存,所以一定要对实体类进行序列化
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String username;
    private String password;
    private Boolean valid;

    @Override
    public String toString() {
   
        return "Customer{" +
                "id=" + id +
                ", use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是X大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值