spring boot 2.X整合spring security和spring oauth

Spring Boot 2.x实战78 - Spring Security 2 - Spring Security的认证(Authentication) 1.3 Authentication Spring Security为我们提供了一个专门的org.springframework.security.core.Authentication接口来代表认证;它最常用的实现类有UsernamePasswordAuthenticationToken。 一旦请求被认证后,Authentication对象就会自动存储在由SecurityContextHolder管理的SecurityContext中。 认证的原理通过下面类的处理顺序来进行的: FilterChain 阅读详情

​ 网上有很多该系列的教程,但是很多都是spring boot1.x,很少看见关于spring boot 2.0 .本人是打算做个spring cloud的web程序,这个整合我就是放在zuul上,类似于做了个网关的鉴权吧。。

国际通用案例 上jar包依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring.druid.version>1.1.10</spring.druid.version>
    <spring.mybatis.version>1.3.2</spring.mybatis.version>
    <mapper.spring.version>2.0.4</mapper.spring.version>
    <pagehelper.spring.version>1.2.6</pagehelper.spring.version>
    <jwt.verson>0.9.0</jwt.verson>
</properties>

 <!--安全验证相关-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security.oauth</groupId>
    <artifactId>spring-security-oauth2</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-jwt</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security.oauth.boot</groupId>
    <artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
<!--解析JWT-->
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>${jwt.verson}</version>
</dependency>

我们首先要写登录逻辑

@Component
@Slf4j
public class AppUserDetailsService implements UserDetailsService {
    
    
	@Autowired
	private PasswordEncoder passwordEncoder;
	/**
	 * 表单登录
	 */
	@Override
	public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
    
    
		return buildUser(userName);
	}
	//用户必须要有ROLE_USER 才可以登录 服务提供商
	private UserDetails buildUser(String userId) {
    
    
		// 根据用户名查找用户信息,这里可以写我们的登录逻辑比如说XXXXservice.findUser(String user);
		//根据查找到的用户信息判断用户是否被冻结
		String password = passwordEncoder.encode("123456");
		log.info("数据库密码是:"+password);
		return new User(userId, password,
				true, true, true, true,
				AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_ADMIN,ROLE_USER"));
	}
}

配置我们的资源服务器@EnableResourceServer

@Configuration
@EnableResourceServer
public class AppWebSecurityConfigurerAdapter extends ResourceServerConfigurerAdapter {
    
    

   private final AppSecurityExpressionHandler appSecurityExpressionHandler;
   private final ZuulProperties zuulProperties;
   private final AuthenticationSuccessHandler appAuthenticationSuccessHandler;
   private final AuthenticationFailureHandler appAuthenticationFailureHandler;
   private final AccessDeniedHandler appAccessDeniedHandler;

   public AppWebSecurityConfigurerAdapter(AppSecurityExpressionHandler appSecurityExpressionHandler, ZuulProperties zuulProperties, AuthenticationSuccessHandler appAuthenticationSuccessHandler, AuthenticationFailureHandler appAuthenticationFailureHandler, AccessDeniedHandler appAccessDeniedHandler) {
    
    
      
springboot2.0.X使用spring security oauth2 最近收到一个任务使用spring security做一个oauth2的授权服务器和资源服务器,授权方式为Client_Credentials写一个demo,官方文档对这方面的描述比较少,官方项目中只有一个demo,是个spring项目,所有东西都存在了内存中,虽然他提供了Enable注解,因为我们要求的是client-id,client-secret等存入数据库把token存入redis,当然他官... 阅读详情

相关推荐

SpringBoot2.x系列教程12-springboot集成spring security

随着行业的不断发展,前后端分离开发的模式也在不断的得到程序员群体的欢迎,简单而言前后端分离开发的模式将后端程序员从前端的苦海中解脱了出来,使其能够专注后端的逻辑业务开发,前端工程师只负责页面的实现,调用后端工程师实现的接口实现页面数据的填充,这样的实现方式相对于以往的开发模式很明显提高了开发的效率,与此同时也带来了接口访问安全性的问题,由此也就出现了接口的权限鉴权管控机制。目前比较常用的鉴权机制框架有shiro、spring security,之前在springboot没有出现之前由于spring secu

松花江畔 479

Spring Boot+Vue+Spring Security OAuth2的前后端分离项目实现研究

业余在开发一个Spring Boot+Vue+Spring Security OAuth2的一个前后端分离项目,其中遇到不少如跨域、OPTIONS请求处理、PreAuthorize注解无效、Token失效处理等问题,记录如下。 在此项目中,资源服务与授权服务在同一应用中,使用端口8081;前端应用使用端口8080。前端使用axios进行ajax调用。 关于Spring Security OAuth...

icarusliu的专栏 1万+

Spring Boot OAuth2整合实战:从第三方登录到API安全防护

OAuth2作为现代应用授权的工业标准协议,其核心思想是‘授权而非认证’,通过定义资源所有者、客户端、授权服务器和资源服务器四个角色间的标准化交互流程,解决了应用间安全访问用户资源的问题。该协议基于授权码、密码、客户端凭证和隐式四种模式,其中授权码模式因其通过前端信道传递授权码、后端信道交换令牌的安全机制,成为Web应用整合第三方登录的主流选择。在技术实现层面,Spring Security框架提供了对OAuth2协议的全面支持,通过自动配置和声明式安全规则,开发者能够高效构建安全的认证授权基础设施。这种整

weixin_30698527的博客 400

Spring Security 5.x+OAuth2.0+OIDC1.0

5分钟完成Spring Security+OAuth2.0+OIDC1.0集成

z2008g的专栏 1612

Spring Boot整合OAuth2:从授权协议到微服务安全实战

在现代应用开发中,授权是保障系统安全与用户体验的核心环节。OAuth2作为一种行业标准的授权协议,其核心原理在于通过令牌(Token)机制,允许第三方应用在用户授权后访问其资源,而无需获取用户密码,从而实现了认证与授权的安全解耦。这一机制的技术价值在于提供了安全、标准化的授权流程,极大地简化了多平台登录、API资源访问等场景的开发复杂度。其典型的应用场景包括第三方登录(如微信、GitHub登录)、微服务间的安全通信以及构建统一单点登录(SSO)系统。本文聚焦于如何在Spring Boot生态中高效整合OAu

weixin_34275734的博客 498

Spring Security OAuth2授权服务器搭建与密码加密实战

在分布式系统和微服务架构中,身份认证与授权是保障应用安全的核心机制。OAuth 2.0作为行业标准授权框架,通过分离客户端、资源所有者和资源服务器角色,实现了安全的第三方资源访问。其核心原理是基于令牌(Token)的访问控制,替代传统的密码共享模式,大幅提升了系统的安全性和可维护性。从技术价值看,OAuth 2.0不仅简化了多端登录的统一管理,还支持细粒度的权限控制(Scope),为现代应用提供了灵活的安全基础设施。典型的应用场景包括单点登录(SSO)、API开放平台和微服务间的安全调用。本文聚焦于**密码

weixin_33755557的博客 987

Spring Security 6.x 整合 OAuth 2.1:构建企业级认证授权方案实战

在Web应用开发中,认证与授权是保障系统安全的核心机制。认证负责验证用户身份,授权则决定其可访问的资源与操作。JWT作为一种广泛使用的无状态令牌技术,是实现分布式系统安全通信的关键。其原理是基于数字签名,确保信息在传输过程中不被篡改,具有自包含、易于跨域等优势。结合OAuth 2.0/2.1协议,能够为应用提供安全的第三方授权和单点登录能力,其技术价值在于构建标准化、可扩展的安全体系。在微服务、前后端分离及开放平台等场景下,这种组合方案尤为重要。本文聚焦于使用Spring Security 6.x框架,深度

weixin_30561177的博客 495

【Matlab 六自由度机器人】基于改进型D-H参数的运动学建模与蒙特卡洛工作空间分析

本文详细介绍了如何使用改进型D-H参数法为六自由度机器人建立运动学模型,并利用Matlab Robotics Toolbox实现正运动学计算与可视化。通过蒙特卡洛法对机器人工作空间进行分析,生成三维点云图以直观展示其可达范围,为机器人选型与任务规划提供关键依据。

weixin_29040367的博客 439

LVI-SAM适配KITTI数据集避坑指南:IMU频率与数据同步问题解析

本文深入解析了将LVI-SAM框架适配KITTI数据集时,在IMU频率与多传感器数据同步方面遇到的核心挑战与解决方案。针对KITTI数据集中sync与extract两种数据包的差异,文章提供了从数据选择、参数调优到时间戳诊断与修复的完整避坑指南,帮助开发者实现稳定高效的SLAM系统部署。

7z8x2c4v6b9的博客 247

unity shader 后处理实现水墨风格渲染「Low Poly 」变「水墨画 」

水墨风格渲染 这次学校的比赛打算做一个中国古代背景的游戏,所以尝试做了水墨风格的渲染。 主要按以下四步来实现的效果: 根据色调和饱和度调整饱和度。 对图像进行模糊 水墨风格的物体边缘 物体内画笔笔触的模拟 接下来我分别就这四步依次展开说明: 调整饱和度 这里我使用Post-Processing Stack 的Color Grading 来调节饱和度,通过使用Grading Curv...

九级铁甲蛹的博客 1万+

Ubuntu使用gstreamer开发USB相机应用(一)

Ubuntu使用gstreamer开发USB相机应用(一) 包括:gstreamer安装,测试。使用v4l2测试USB相机。使用gstreamer采集相机

Alon1787的博客 2739

ATM火控电容改造实战:提升速凌无刷电机动力与系统稳定性

在嵌入式系统与电机驱动领域,电源完整性是保障电路稳定运行的核心基础。其核心原理在于通过合理的电容网络设计,为负载提供瞬时大电流并滤除高频噪声,从而维持电压稳定。这项技术的核心价值在于能显著提升系统的动态响应能力与可靠性,避免因电压跌落导致微控制器复位或功率器件过应力。典型的应用场景包括无人机电调、机器人关节驱动以及各类需要快速响应的伺服系统。本文聚焦于水弹发射器ATM火控系统的硬件迭代,通过详解电容的选型、布局与焊接流程,特别是针对速凌五代无刷电机的高启动电流特性,系统性地阐述了如何通过强化电源储能与芯片去

weixin_33868027的博客 556

MATLAB离线附加功能包下载与安装教程

本文介绍如何下载与安装MATLAB离线附加功能包,便于大家更加高效的使用MATLAB。

加斯顿工程师的博客 1万+

6、直流微电网中恒功率负载(CPL)的稳定性分析与控制策略

本文探讨了直流微电网中恒功率负载(CPL)带来的稳定性问题,并深入分析了其影响机制及相应的缓解策略。文章首先通过小信号模型和非线性分析揭示了CPL对系统稳定性的影响,接着讨论了被动稳定方法的优缺点,最后重点介绍了基于时间的方法和几何控制器等控制策略。这些方法各有优劣,在实际应用中需结合具体需求选择合适方案,以实现直流微电网的稳定运行。

star的博客 227

基于Qt的工业组态软件开发:图形绘制与TCP通讯实现

在数据接收时,通过 readyRead 信号触发解析函数,校验数据包完整性后提取有效数据,并更新对应图形元素的状态,例如根据温度值改变矩形的填充色,实现设备状态可视化。测试阶段,我们将软件部署到Windows工控机,连接PLC设备进行通讯测试,结果表明图形元素响应及时,TCP数据传输稳定,满足工业现场的基本需求。综上所述,基于Qt的组态软件开发,核心在于利用 QGraphicsView 框架实现图形元素的灵活绘制与管理,结合 QTcpSocket 完成工业数据的可靠交互。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 273

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: webpack打包项目实战。看我怎么分项目管理
Java_chaozi
博客等级 码龄11年 11粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值