spring-security之生产环境的用户登录(查询数据库)

springboot+mybatis+sucurity 在配合 Spring Security 使用时,我们可以使用 Mybatis Plus 来定义数据访问层(DAO),使用 Spring Boot 的自动配置功能来配置 Mybatis Plus 和 Spring Security,从而实现用户认证和授权的功能。在上述代码中,我们配置了数据源、Spring Security 的用户信息(用于登录验证)、Mybatis Plus 的配置和 Mapper 接口的扫描位置。需要注意的是,这里的。首先,我们需要在数据库中创建用户表,作为存储用户信息和凭证的表。 阅读详情

spring-security通过认证类查询数据库中的表:
spring-security把用户在前端页面提交的用户名传参给认证类
认证类通过用户名在数据库中查询数据
认证类将查询结果返回给spring-security,
spring-security将认证类返回的数据和页面提交的数据进行比对,如果用户名和密码匹配就登录成功,不匹配则登录失败

导入依赖信息

<!-- 身份验证 -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
</dependency>

配置web.xml:

  • 扫描spring-security.xml
  • 添加过滤器
<!-- 配置springSecurity安全过滤器 -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

配置spring-security.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/security
		http://www.springframework.org/schema/security/spring-security.xsd">

    <!-- 以下资源不被拦截 -->
    <http pattern="/css/**" security="none"/>
    <http pattern="/img/**" security="none"/>
    <http pattern="/js/**" security="none"/>
    <http pattern="/plugins/**" security="none"/>


    <http pattern="/seller/add.do" security="none"/>
    <http pattern="/*.html" security="none"/>

    <!-- 页面拦截规则 -->
    <http use-expressions="false">
        <intercept-url pattern="/**" access="ROLE_SELLER" />
        <form-login login-page="/shoplogin.html"
                    default-target-url="/admin/index.html" authentication-failure-url="/shoplogin.html"
                    always-use-default-target="true" />
        <csrf disabled="true" />
        <headers>
            <frame-options policy="SAMEORIGIN" />
        </headers>
        <logout />
    </http>

    <!-- 认证管理器 -->
    <authentication-manager>
        <authentication-provider user-service-ref="userDetailService"/>
    </authentication-manager>

    <!-- 定义自定义认证类 -->
    <beans:bean id="userDetailService" class="com.weilinyang.service.UserDetailsServiceImpl"/>

</beans:beans>

创建自定义认证类UserDetailsServiceImpl,并在spring-security.xml进行配置
自定义认证类要实现spring-security的接口UserDetailService

public class UserDetailsServiceImpl implements UserDetailsService {

    @Reference
    private SellerService sellerService;
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        // 构建角色列表
        List<GrantedAuthority> grantAuths = new ArrayList<GrantedAuthority>();
        grantAuths.add(new SimpleGrantedAuthority("ROLE_SELLER"));

        //查询数据库的表
        TbSeller seller = sellerService.findOne(username);
        if (seller!=null){
            return new User(username,seller.getPassword(),grantAuths);
        }else{
            return null;
        }

    }
}

seivice层就是根据用户名查询用户

Spring Security连接数据库实现登录 使用Spring Security的登录页面,从数据库中获取数据进行登录认证。 步骤: 一、前置工作: 1.搭建Spring Boot 2.连接MySQL数据库,数据库中创建好表 二、 Spring Security环节 创建与数据库对应的admin实体(Admin.java) 写查询语句(AdminDao.java和AdminDao.xml) 实现UserDetailsService接口(Us... 阅读详情

相关推荐

微信扫码登录全流程实战:Spring Security + OAuth2 + JWT 深度解析

用户认证与授权是现代Web应用安全架构的核心基石。其原理在于,系统需要先确认用户身份(认证),再决定其可访问的资源(授权)。为实现安全、可扩展的认证,无状态令牌技术应运而生,它允许服务端将验证信息封装于令牌中,由客户端保管,从而摆脱了传统会话对服务器状态的依赖,完美契合分布式架构。JWT(JSON Web Token)正是这一技术的典范,它通过自包含的签名令牌,在保障安全的同时提升了性能。而在涉及第三方身份(如微信)登录的场景中,OAuth 2.0协议成为实现安全委托授权的行业标准,其授权码模式能有效保护敏

weixin_33984032的博客 431

Spring Security源码解析(一.基础知识点与流程介绍)

目录 一、Authentication,AuthenticationManager,AuthenticationProvider ​二、UserDetails,UserDetailsService,UserCache,User 三、SecurityContext,SecurityContextHolder 四、WebSecurityConfigurerAdapter 五、总结 首先回想...

qq_30905661的博客 8361

前后端分离系列 -- SpringBoot + Spring Security + Vue 实现用户认证 SpringSecurity如此简单

前后端分离系列 -- SpringBoot + Spring Security + Vue 实现用户认证 SpringSecurity如此简单

wanghuichen的博客 5848

SpringSecurity权限认证(三)

SpringSecurity权限认证(三) 查询数据库中信息进行用户登录 前端传入用户信息之后,在security中,有单独的类进行存储,就是UserDetails。 为了方便,直接让用户类实现UserDetails。登录时,直接传入UserDetails类即可。 之后,security,会调用UserDetailsService的loadUserByUsername进行登录。 我们需要自行登录,就需要实现UserDetailsService重写loadUserByUsername函数。 @Servi

Bep_的博客 993

别再自己写消息提示了!5分钟用WPF+Material Design打造专业级Snackbar(支持.NET 6)

本文为WPF开发者提供了一份快速集成专业级Snackbar消息提示的实战指南。通过引入MaterialDesignThemes开源库,在.NET 6 WPF项目中,仅需5分钟即可告别传统的MessageBox,实现遵循Material Design规范、动画流畅、支持队列管理的非侵入式Snackbar控件,显著提升应用的用户体验与现代化交互水平。

year5的博客 170

LIS3DHTR三轴加速度计Arduino驱动与嵌入式集成指南

加速度计是嵌入式系统中实现运动感知、姿态解算和振动分析的核心传感器。其工作原理基于MEMS微机械结构在惯性力作用下的电容变化,经片内ADC转换为数字信号;I²C接口因其硬件资源占用少、布线简洁,成为低功耗物联网节点的主流通信方式。技术价值体现在高分辨率(12位)、多量程(±2g~±16g)与低功耗(待机电流仅2µA)的平衡,支撑电池供电设备长期运行。典型应用场景包括可穿戴设备的姿态识别、工业预测性维护中的振动监测,以及智能硬件的敲击/跌落检测。本文围绕LIS3DHTR芯片及其Grove模块,详解Arduin

weixin_42584758的博客 594

Spring Security教程(6)---- 使用数据库管理用户及权限

上一章已经把表结构上传了,今天这部分主要用到的表是 SYS_USERS  用户管理表SYS_ROLES  角色管理表SYS_AUTHORITIES权限管理表SYS_USERS_ROLES用户角色表SYS_ROLES_AUTHORITIES角色权限表 要实现使用数据库管理用户,需要自定义用户登录功能,而Spring已经为我们提供了接口UserDetailsServ

z69183787的专栏 5656

Win10系统下AppScan 10.0.0安装破解全流程(附百度网盘资源)

本文详细介绍了在Windows 10系统上安装和配置AppScan 10.0.0进行Web漏洞扫描的完整流程。内容涵盖环境准备、分步安装、核心文件部署、许可证配置及首次扫描实践,旨在帮助开发人员和安全爱好者快速搭建专业的Web应用安全扫描环境,并提升扫描效率。

u8v9w0x1y的博客 363

10.SpringSecurity-web权限方案-用户认证(查询数据库完成认证)

pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven

自能生羽翼,何必仰云梯 611

Palantir的Ontology:从静态知识图谱到动态业务引擎的跃迁

本文探讨了Palantir的Ontology技术如何将静态知识图谱升级为动态业务引擎。通过引入函数和行动作为核心元素,Ontology实现了业务逻辑的自动化响应与执行,显著提升物流、能源等领域的运营效率。文章详细解析了其混合存储引擎、状态监听网络等关键技术设计,并对比展示了传统架构与Ontology架构的业务价值差异。

weixin_42570296的博客 200

H3C防火墙旁路部署实战:网关迁移到防火墙后,如何配置DHCP和VLAN间隔离策略?

本文详细介绍了H3C防火墙旁路部署实战,重点讲解网关迁移到防火墙后的DHCP配置和VLAN间隔离策略。通过实际案例和配置示例,帮助网络工程师解决传统核心交换机架构的性能瓶颈和安全管控问题,实现精细化访问控制。

weixin_42549451的博客 414

若依多用户表登录(sping security多用户)

若依分离版新增用户表怎么实现和后台管理互不影响的登录?这篇文章教你怎么实现登录时分表查询!

m0_72618563的博客 1万+

S/4HANA 迁移前的必修课:用 SCMON 找出沉睡的自定义代码

SAP S/4HANA迁移项目中,SCMON工具能有效解决历史代码评估难题。通过监控ABAP对象调用情况,SCMON可识别40-60%处于"沉睡"状态的自定义代码。配置时需注意监控周期(建议3-6个月)和数据保留期(建议1年),并配合Time Slices功能进行时段分析。工具导出的调用数据可与测试覆盖率对比,帮助决策代码迁移优先级。实际应用中需结合业务场景,建议与SUSG工具配合使用,并保持持续监控。SCMON虽不能完全替代人工判断,但其提供的客观数据能显著提升迁移决策的科学性,建议在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 289

Spring Security基本配置(登录,注销,权限,记住我,注解)

Spring Security简介SpringSecurity 特点:ShiroSpringSecurity 入门案例controller访问 简介 Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。 于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authenticatio

dyk 3360

python实现DoIP基本通信(收发报文)

python实现DoIP基本通信(收发报文)

天赐好车的博客 894

把 SAP ABAP BDC 跑得又快又稳:从 SHDB 录屏到可上线的批量上传程序(含 MM01 案例与源码)

SAP BDC批量数据迁移实践 摘要:本文介绍了SAP系统中BDC(Batch Data Communication)技术在数据迁移中的应用。文章首先对比了Session method和CALL TRANSACTION method两种实现方式的特点及适用场景,重点推荐使用Session method进行主数据批量处理。然后详细讲解了通过SHDB工具录制MM01事务创建物料主数据的完整流程,包括如何生成基础BDC代码。最后展示了将录制的脚本改造为可批量处理文件数据的实用程序,核心改动包括定义数据结构、读取文

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 322

jwt怎么获取当前登录用户_Spring Security 整合JWT(四)

一、前言本篇文章将讲述Spring Security 简单整合JWT 处理认证授权基本环境spring-boot 2.1.8mybatis-plus 2.2.0mysql 数据库maven项目Spring Security入门学习可参考之前文章:SpringBoot集成Spring Security入门体验(一)Spring Security 自定义登录认证(二)Spring Security 动...

weixin_39553653的博客 2480

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring Security核心架构与生产级应用实战指南

在Web应用开发中,认证与授权是保障系统安全的核心机制。认证解决“你是谁”的问题,通过验证用户身份确保访问者合法;授权则解决“你能干什么”的问题,依据权限控制资源访问范围。Spring Security作为Spring生态的安全框架,通过声明式配置和过滤器链机制,将复杂的安全逻辑抽象为可定制的组件,显著提升开发效率与系统安全性。其技术价值在于提供了标准化、模块化的安全解决方案,支持从基础表单登录到OAuth 2.0第三方登录等多种认证方式,并能与MyBatis-Plus、Activiti等常用框架无缝整合。

weixin_33971977的博客 596

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Spring Security Oauth2】构建授权服务器(五):自定义(用户登录)认证策略

一、背景介绍 1、通过之前的文章搭建授权服务器时,使用的登录账号和密码是在代码中写入的。而业务都是取数据库中的用户信息进行认证。 二、环境准备 【Spring Security Oauth2】构建授权服务器(一):内存模式 三、自定义(登录)认证策略 1、创建AccountDetailsServiceImpl类继承UserDetailsService类,用于查询数据库中用户信息。文章就简单化了,具体数据库操作需自己接入。 package com.cyun.security.oauth2.config.se

apple_csdn的博客 8672

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Security权限控制实战:从认证授权到生产部署完整指南

身份认证(Authentication)和授权(Authorization)是Web应用安全的核心基础。Spring Security通过过滤器链机制拦截请求,基于配置的安全规则实现访问控制,其技术价值在于为Java应用提供标准化的安全解决方案。在实际工程实践中,开发者需要掌握方法级权限控制、URL级权限控制和数据级权限控制三个层次,并理解RBAC模型的应用。常见的应用场景包括用户登录认证、API接口权限管理、CSRF防护等。本文针对Spring Security配置中的典型问题,特别是权限规则不生效和Ac

weixin_34413802的博客 511

学习笔记【Spring Security快速入门】

Spring Security Web应用的安全性包括 用户认证(Authentication) 和 用户授权(Authorization) 两个部分,这两点也是SpringSecurity重要核心功能。 通俗点说: 用户认证就是系统认为用户是否登录 用户授权就是系统判断用户是否有权限去做某些事 SpringSecurity特点 和Spring无缝整合 全面的权限控制 专门为Web开发而设计 重量级 Shiro特点 轻量级 好处:不局限于Web环境,可以脱离Web环境使用 缺陷:Web环境下一些特

qq_53273362的博客 273

【spring security】【尚硅谷】

前置知识 spring框架 springboot使用 javaWeb技术 Spring Security 框架简介 概述 Spring Security是基于Spring框架,是一套web安全性的完整的解决方案 关于安全的主要的两个区域“认证”和“授权” web安全性主要包括用户认证(Authentication)、**用户授权(Authorization)**两个部分,同时也是Spring Security重要的核心功能 用户认证(Authentication):系统认为用户是否可以登录 用户授权(A

hupengfei_shenyang的博客 2343

Spring Security——03,认证_登录

当我们输入密码1234后,Spring Security会根据存储的密码密文解析出加密算法和盐值,然后它会根据这个加密算法和盐值将你输入的密码加密,最后才会将生成的密码密文与存储的密码密文进行比较。每次加密的随机盐会被保存在一个hash中的,每次加密时候,密文中都包含了随机盐的基本信息,所以他能根据这个基本信息找到保存在hash上的那个随机盐。所以是一一对应的关系。它会调用我们之前自定义的UserDetailsServiceimpl里面的方法进行一个校验,会根据我们传过去的用户名去查询数据库,然后再返回。

weixin_42858422的博客 1861

WeBlog 鉴权体系深度解析:Spring Security + JWT 实现前后端分离登录认证

WeBlog 是一个基于 Spring Boot + Vue 3.2 + Vite 4.3 的前后端分离个人博客系统,其中**WeBlog 鉴权体系**完全基于 **Spring Security + JWT** 构建。本文将深度解析这套**前后端分离登录认证**方案:从登录过滤器、Token 生成与校验,到安全配置与异常处理,一步步拆解 JWT 登录认证的完整实现,非常适合正在学习 Spring

gitblog_00370的博客 985

springboot 集成jwt设置过期时间_Spring Security 整合JWT(四)

一、前言本篇文章将讲述Spring Security 简单整合JWT 处理认证授权基本环境spring-boot 2.1.8mybatis-plus 2.2.0mysql 数据库maven项目Spring Security入门学习可参考之前文章:SpringBoot集成Spring Security入门体验(一)Spring Security 自定义登录认证(二)Spring Security 动...

weixin_39551611的博客 2372

springboot整合spring-security并修改默认登录页面,添加验证码功能(实现方法一)

文章目录 前言 一、环境搭建 1.创建springboot项目, 导入依赖 2.springboot启动器及application.yml配置文件创建 3.resources目录下建一个static文件夹, 存放自定义的登录界面login.html 4.用户实体类及数据库表 5.UserDao操作数据库, 整合了mybatis-plus 二、spring-security相关配置 1.拓展验证方式, 添加一个验证码 2.实现自定义相关的接口,返回MyWebAuth...

qq_42236679的博客 3922
上一篇: spring-security之生产环境的用户登录(身份验证)以及用户名回显和用户退出
下一篇: spring-security密码加密解析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值