springboot——security基于Jdbc的多用户支持

SpringBoot Security 自定义用户认证 下面将实现Spring boot整合Spring Security 实现自定义内存身份认证的实现。 阅读详情

一、pom.xml配置

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-jdbc</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-security</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework.security</groupId>
		<artifactId>spring-security-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

二、application.properties配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

三、user.ddl配置:

user.ddl在org.springframework.security.core.userdetails.jdbc包

create table users(username varchar(50) not null primary key,password varchar(500) not null,enabled boolean not NULL);
create table authorities (username varchar(50) not null,authority varchar(50) not null,constraint fk_authorities_users foreign key(username) references users(username));

四、security代码

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/admin/api/**").hasRole("ADMIN")
                .antMatchers("/user/api/**").hasRole("USER")
                .antMatchers("/app/api/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .and()
                .csrf().disable();
    }

    @Bean
    public UserDetailsService userDetailsService(DataSource dataSource) {
        JdbcUserDetailsManager manager = new JdbcUserDetailsManager(dataSource);
        Function<String, String> function = s -> passwordEncoder().encode(s);
        manager.createUser(User.withUsername("root").password("root").roles("ADMIN").passwordEncoder(function).build());
        manager.createUser(User.withUsername("chopper").password("123456").roles("USER").passwordEncoder(function).build());
        return manager;
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new MessageDigestPasswordEncoder("MD5");
    }
}

五、测试接口

@RestController
public class AdminController {
    @RequestMapping("/admin/api/hello")
    public String hello() {
        return "hello, admin!";
    }
}
@RestController
public class AppController {
    @RequestMapping("/app/api/hello")
    public String hello() {
        return "hello, app!";
    }
}
@RestController
public class UserController {
    @RequestMapping("/user/api/hello")
    public String hello() {
        return "hello, user!";
    }
}

SpringBoot登录认证实战:基于Session与Spring Security的完整实现 用户认证与授权是Web应用安全的核心基础,它决定了用户身份的识别与访问权限的控制。其核心原理在于验证用户凭证并建立可信的会话状态。在技术实现上,Spring Security作为Java生态中权威的安全框架,通过过滤器链机制,为开发者提供了一套声明式的安全解决方案,极大地简化了密码加密、权限控制、CSRF防护等复杂功能的开发。这套方案尤其适用于传统的单体Web应用,能够有效保障业务系统的安全基线。本文聚焦于SpringBoot项目中经典的Session-Cookie认证模式,详细解析了如何整合Spring 阅读详情

相关推荐

SpringBoot认证管理实战:Spring Security与JWT整合构建安全API

在现代Web应用开发中,认证与授权是保障系统安全的基石,其核心在于验证用户身份并控制资源访问。其实现原理通常基于过滤器链或令牌机制,对请求进行拦截与校验。从技术价值看,一套健壮的认证体系能有效防止未授权访问和数据泄露,是应用可信赖的保障。在应用场景上,无论是传统的服务端渲染应用还是前后端分离的API服务,都需要适配的认证方案。本文聚焦于当前主流的技术组合,通过整合Spring Security框架与JWT(JSON Web Token)标准,详细阐述如何构建一个适用于分布式、无状态架构的认证管理系统,并深入

weixin_30719711的博客 442

Springboot实现多租户切换数据源,动态读取数据库数据源信息

Spring Boot 构建多租户Saas软件架构,实现动态切换数据源 实现了动态源切换;且新增租户,动态创建数据库和基础表结构和数据。

潇洒哥的博客 1万+

SpringBoot编程基础教程:Spring Security安全

作者:禅与计算机程序设计艺术 1.背景介绍 概述 Spring Security是Spring Framework中的一个安全框架,它为基于Spring的企业级应用提供了一种简单易用的方法用来保护 web 应用程序。它提供身份验证、授权、加密传输中敏感数据的防护以及

AI天才研究院 347

oauth2 返回userId

oauth2 返回userId

jiejiegua的博客 943

【谷粒商城】分布式事务与下单

=购物车== 构建gulimall-cart,复制静态资源到nginx,修改网关 购物车分为离线购物车和登录购物车 离线购物车重启浏览器了也还有 1、购物车需求 特点:读多写少,放入数据库并不合适 登录状态:登录购物车 放入数据库 mongodb 放入redis(采用) 登录以后,将离线购物车里合并后清空离线购物车 未登录状态:离线购物车 放入localstorage浏览器的技术 cookie WebSQL 放入redis(采用) 浏览器重启后还在 2、购物车VO (1) 数据结构分析

努力充实,远方可期 1万+

STM32F4驱动ADS1220高精度ADC:从SPI配置到数据校准的完整实战指南

本文详细介绍了如何使用STM32F4微控制器驱动ADS1220高精度ADC,涵盖从SPI接口配置、寄存器设置到数据采集与校准的全过程。通过实战代码示例和硬件设计要点,帮助开发者快速构建高精度数据采集系统,适用于工业测量和精密仪器等应用场景。

weixin_26918763的博客 225

Spring Security安全框架入门

Spring Security简介 Spring Security是一个高度自定义的安全框架,利用Spring Ioc 和 Aop功能,为系统提供了声明式安全访问功能,减少了为系统安全而编写大量重复代码 Spring Security的两个主要区域是 "认证","授权",这两点也是Spring Security的重要核心功能 认证:是建立一个声明的主体过程(一个"主体"一般指用户,设备),通俗一点说就是系统认为用户是否能登录。 授权:指确定一个主体是否允许在你的应用程序执行一个动作的过程。通俗..

weixin_43786878的博客 370

给MATLAB安装runtime插件

输入你刚刚下载压缩包的位置(小白提示:在 此电脑 中找到压缩包位置,右键属性复制位置)(!设置好以后然后填写下面输出exe文件的信息,包括文件的名字、作者、Email、公司、概述、描述,下面还可以选择额外的安装选项,exe文件运行需要的其他文件(图像、子程序等)、提供给用户的文件(readme.txt等)(很多方法是官网下载,但在官网下载还是会版本不对应,所以直接在你所用的MATLAB里搜索安装链接最靠谱)(!5.可以打包程序了(你发送文件的人电脑里没有MATLAB也可以查看运行你的程序了)

Pei_hua100的专栏 1万+

spring security webflux 数据库存储认证用户

springsecuritywebflux数据库存储认证用户

weixin_43931625的博客 1165

YOLOv8【第十章:多任务扩展深度篇·第1节】YOLOv8-Seg 实例分割:Mask原型生成与系数预测原理解析!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1812

YOLOv8【第七章:损失函数篇·第1节】一文搞定,IoU系列损失函数!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1199

Spring Security灵活的PasswordEncoder加密方式

知识改变命运,撸码使我快乐,2020继续游走在开源界 点赞再看,养成习惯 给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案 本章基于Spring Security 5.4.1版本编写,从5.x版本开始引入了很多新的特性。 为了适配老系统的安全框架升级,Spring Security也是费劲了心思,支持不同的密码加密方式,而且根据不同的用户可以使用...

恒宇少年De成长之路 5887

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)

关于使用TileMap生成随机2D地图,其实之前已经有做过类似的,感兴趣可以看看 但是随着学习深入,发现之前做的比较粗糙和不够全面,最近又在外网看到

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2216

在SpringBoot项目中,Shiro和Spring Security该如何选择?

要知道Shiro和Spring Security该如何选择,首先要看看两者的区别和对比ShiroApache Shiro是一个强大且易用的Java安全框架,能够非常清晰的处理认证、授权、管...

Java笔记虾 3917

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 : 一、Spring Security 介绍 二、Spring Security 快速入门 2.1 基础环境搭建 : ① 创建Spring Boot 项目 ② 创建 html资源文件 ③ 编写Web控制层 2.2 开启安全管理效果测试 : ④ 添加 spring-boot-starter-security 启动器 ⑤ 项目启动测试 三、"MVC Security" 安全配置介绍 四、自定义 "用户认证" ......

m0_70720417的博客 1808

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

springboot利用jdbc实现分布式session,集成spring-security

纯过程记录文,偏理论,不贴代码,因为费时。 应用复杂了或者负荷太高了,就得考虑集群或者分布式。 然后就得考虑由此带来的问题–session共享、资源的并发访问、服务的划分。 由于,目前我司各类小项目之间差异太大,无法或者说不值得强行将其整合为一个大的应用。因此,在项目规模没上来之前,不值得上分布式或者集群。但是,相关技术储备还是要做一些的。主要是考虑,可能会有一些项目慢慢壮大,到了瓶颈的时候,就...

OHRadiance的专栏 1422

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringBoot实战:整合Spring Security、JWT与Redis构建企业级认证系统

在现代Web应用开发中,用户认证与授权是保障系统安全的核心机制。其原理是通过验证用户身份并控制资源访问权限,确保数据安全与业务合规。JWT(JSON Web Token)作为一种无状态令牌技术,通过数字签名实现安全的身份凭证传递,有效解决了分布式系统中的会话管理难题。结合Redis高性能缓存,可以进一步提升系统响应速度并实现令牌黑名单等高级功能。这种技术组合在电商、社交、企业后台等需要严格权限控制的场景中具有广泛应用价值。本文以SpringBoot框架为基础,通过整合Spring Security、JWT和

weixin_30482383的博客 444

SpringBoot集成Spring Security与OAuth2:实现授权码模式的安全认证

SpringBoot集成Spring Security与OAuth2:实现授权码模式的安全认证 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 springboot-security-oauth2 是一个基于SpringBoot的高效安全认证项目,集成了Spring Security和OAuth2框架,专注于实现资源访问的授权认证。该项目不仅支持多种认证模式,包括cli...

gitblog_09744的博客 680

SpringBoot实战:整合Spring Security、JWT与Redis构建权限认证系统

在现代Web应用开发中,权限认证是保障系统安全的核心机制。其基本原理是通过验证用户身份(认证)和检查访问权限(授权)来控制资源访问。JWT(JSON Web Token)作为一种无状态的令牌技术,通过数字签名确保信息传输的完整性和安全性,有效解决了分布式系统中的会话管理问题。结合Redis这一高性能内存数据库,可以实现令牌的高效存储、黑名单管理和权限信息缓存,从而提升系统性能和安全性。这种技术组合特别适用于微服务架构和前后端分离场景,能够实现灵活、可扩展的访问控制。本文以SpringBoot框架为基础,通过

weixin_34221276的博客 414

spring security依赖

(1)spring-boot-starter-security自动包含了spring-security-core, spring-security-web an和spring-security-config,springboot自动管理jar包依赖,减少了和Spring的依赖冲突,如非SpringBoot中的 spring-orm和spring-security-core包含的spring-core会冲突。

egegerhn的博客 2398

springboot整合spring-security注意事项,不要踩坑

Spring Security中文文档

weixin_47137340的博客 632

SpringBoot集成Spring Security与OAuth2:构建安全高效的授权认证系统

SpringBoot集成Spring Security与OAuth2:构建安全高效的授权认证系统 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代的Web应用开发中,安全性和用户认证是不可或缺的环节。springboot-security-oauth2 项目正是为了满足这一需求而诞生的。该项目基于SpringBoot框架,集成了Spring Security和OA...

gitblog_09761的博客 504

SpringBoot集成Spring Security、OAuth2实现授权码模式

SpringBoot集成Spring Security、OAuth2实现授权码模式 去发现同类优质开源项目:https://gitcode.com/ 项目描述 springboot-security-oauth2 是一个基于SpringBoot的项目,集成了Spring Security和OAuth2,实现了资源访问的授权认证。该项目支持多种认证模式,包括client credentials、pa...

gitblog_09804的博客 733
上一篇: springboot——security基于内存的多用户支持
下一篇: springboot——security基于自定义数据库模型的认证
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值