Spring Security 新版本配置
新版SpringSecurity配置WebSecurityConfigurerAdapter 已经被废弃了,所以赶紧去看别人是如何写的但是看到最后都没有看到特别好的博客我就自己写了一下可能写的不太好希望大家可以积极讨论1、导入依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency2、配置文件package com.sky.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; /** * author 尹稳健~ * version 1.0 */ Configuration public class SecurityConfig { /** * 加密方式 * * return */ Bean public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } /** * 认证管理器登录的时候参数会传给 authenticationManager * * return * throws Exception */ Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception { return authenticationConfiguration.getAuthenticationManager(); } /** * 直接在过滤器链里面配置httpSecurity * * param http * return * throws Exception */ Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { return http //关闭csrf .csrf().disable() //不通过Session获取SecurityContext .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() // 允许跨域 .cors() .and() // 配置路劲是否需要认证 .authorizeRequests() // 对于登录接口 允许匿名访问 .antMatchers(/user/login).permitAll() // 配置权限 .antMatchers(/hello2).hasAuthority(/hello2) // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() .build(); } }3、编写serviceService public class LoginServiceImpl implements LoginService { Autowired private AuthenticationManager authenticationManager; Autowired private RedisCache redisCache; Override public ResponseResult login(User user) { // AuthenticationManager的authenticate 进行用户认证 UsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(user.getUserName(),user.getPassword()); Authentication authenticate authenticationManager.authenticate(authenticationToken); // 如果认证没通过提示 if (Objects.isNull(authenticate)){ throw new RuntimeException(用户名或密码错误!); } // 认证通过返回jwt LoginUser loginUser (LoginUser) authenticate.getPrincipal(); System.out.println(loginUser); Long userId loginUser.getUser().getId(); String jwt JwtUtil.createJWT(userId.toString()); MapString, Object map new HashMap(); map.put(token,jwt); // 将jwt存入redis中 redisCache.setCacheObject(login:userId,loginUser,5, TimeUnit.MINUTES); return new ResponseResult(200,登录成功,map); } }4、重写UserDetailsServicepackage com.sky.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.sky.domain.LoginUser; import com.sky.domain.User; import com.sky.mapper.MenuMapper; import com.sky.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import java.util.List; /** * author 尹稳健~ * version 1.0 */ Service public class UserServiceImpl implements UserDetailsService { Autowired private UserMapper userMapper; Autowired private MenuMapper menuMapper; Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // 查询用户信息 LambdaQueryWrapperUser queryWrapper new LambdaQueryWrapper(); queryWrapper.eq(User::getUserName,username); User user userMapper.selectOne(queryWrapper); // 如果没有查询到用户 if (user null){ throw new RuntimeException(用户名错误或者密码错误); } return new LoginUser(user); } }

相关新闻

学院个人信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

学院个人信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着信息化时代的快速发展,高校管理逐渐向数字化、智能化方向转型。传统的学院信息管理方式依赖纸质档案和人工操作,效率低下且易出错,难以满足现代教育管理的需求。学院个人信息管理系统通过整合学生、教师和课程等核心数据&#xff0c…

2026/5/17 9:31:57 阅读更多 →
Java SpringBoot+Vue3+MyBatis 一款BS美食网站系统源码|前后端分离+MySQL数据库

Java SpringBoot+Vue3+MyBatis 一款BS美食网站系统源码|前后端分离+MySQL数据库

摘要 随着互联网技术的快速发展和人们生活水平的不断提高,美食文化逐渐成为大众关注的焦点。美食网站作为信息传播和社交互动的重要平台,不仅能够帮助用户获取丰富的食谱和烹饪技巧,还能促进美食爱好者之间的交流与分享。传统的美食网站多采用…

2026/5/17 9:31:57 阅读更多 →
PTE备考|PTE口语考试的高分技巧分享

PTE备考|PTE口语考试的高分技巧分享

PTE报名官网入口 PTE考试越来越被想要留学的考生们所青睐,因为PTE的题库相比雅思托福要小很多,难度也相对低了很多。尤其是PTE是机器评分,就不存在压分这种情况。当考试们在面对机器的时候,PTE口语考试最重要的就是口语流利度和发…

2026/7/3 19:29:45 阅读更多 →

最新新闻

ONVIF摄像头接入项目实战记录

ONVIF摄像头接入项目实战记录

在多厂商监控设备共存的AI视频分析项目落地过程中,异构视频源的标准化接入往往是耗时最多的环节。本文基于工业级AI视频分析平台的研发与交付实践,系统性地阐述如何通过ONVIF协议实现摄像头的自动化设备发现、能力协商与取流地址获取。本文旨在为负责视频…

2026/7/4 14:10:00 阅读更多 →
构建高质量操作指南数据集与大模型优化实践

构建高质量操作指南数据集与大模型优化实践

1. 项目背景与核心价值 去年我在处理一个企业知识库项目时,发现现有AI助手在"教人做事"类任务上表现糟糕——要么漏掉关键步骤,要么逻辑混乱。这促使我启动了一个大规模研究:从全网抓取98万份操作指南类网页,清洗后得到…

2026/7/4 14:07:59 阅读更多 →
基于改进YOLOv8的电子废物智能分拣系统开发

基于改进YOLOv8的电子废物智能分拣系统开发

## 1. 项目背景与核心价值电子废物(E-waste)已成为全球增长最快的固体废弃物类型。根据国际电信联盟数据,2023年全球电子废物总量突破6000万吨,但正规回收率不足20%。这个现象背后隐藏着两个关键问题: 1. 有害物质&…

2026/7/4 14:05:58 阅读更多 →
一键下载中小学电子课本:告别网络依赖的智能工具

一键下载中小学电子课本:告别网络依赖的智能工具

一键下载中小学电子课本:告别网络依赖的智能工具 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: htt…

2026/7/4 14:05:58 阅读更多 →
2025主流开源AI UI选型指南:OpenWebUI、Ollama WebUI等四大工具实测

2025主流开源AI UI选型指南:OpenWebUI、Ollama WebUI等四大工具实测

1. 项目概述:当AI能力不再被代码门槛锁死“No Code, No Limits”不是一句营销口号,而是我过去18个月在十几个真实业务场景里反复验证的一条技术路径——从为本地社区诊所搭建症状初筛助手,到帮独立设计师快速生成品牌视觉草稿,再到…

2026/7/4 14:05:58 阅读更多 →
Spring Security OAuth2实战:手把手搭建认证服务器与资源服务器(JWT+密码模式)

Spring Security OAuth2实战:手把手搭建认证服务器与资源服务器(JWT+密码模式)

引言 在现代微服务架构中,安全认证与授权是绕不开的话题。OAuth2 作为业界标准的授权协议,能够帮助我们实现第三方应用授权、单点登录以及资源保护。Spring Security 提供了对 OAuth2 的一流支持,使得开发者可以快速构建符合标准的认证与资源…

2026/7/4 14:03:58 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻