spring security & oauth2 安全认证机制

OAuth2.0用refresh_token更新access_token令牌 概述 使用oauth2时,如果令牌失效了,可以使用刷新令牌通过refresh_token的授权模式再次获取access_token。只需修改认证服务器的配置,添加refresh_token的授权模式即可。 修改授权服务器配置,增加refresh_token配置 ​ @Autowired private UserService userService; @Override public void configure(AuthorizationServerEndpointsConfigurer endpoint 阅读详情

基本概念:

 

(1) Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"云冲印"。

 

(2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上一节例子中的Google。

 

(3)Resource Owner:资源所有者,本文中又称"用户"(user)。

 

(4)User Agent:用户代理,本文中就是指浏览器。

 

(5)Authorization server:授权(认证)服务器,即服务提供商专门用来处理认证的服务器。

 

(6)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

 

 

模式:client-credentials 。该模式不存在用户的概念,仅仅设计到客户端,授权服务器,资源服务器概念。

 

授权服务器配置和资源服务器配置:

 

使用client 模式需要配置授权服务和资源服务:

 

授权服务器配置:

 

@Configuration

   @EnableAuthorizationServer

   protected static class AuthorizationServerConfiguration extendsAuthorizationServerConfigurerAdapter {

 

       @Autowired

       private AuthenticationManager authenticationManager;

 

       @Autowired

       private HcClientDetailsService clientDetailsService;

       //配置AuthorizationServerEndpointsConfigurer众多相关类,包括配置身份认证器,配置认证方式,TokenStore,TokenGranter,OAuth2RequestFactory

       @Override

       public void configure(AuthorizationServerEndpointsConfigurer endpoints)throws Exception {

           endpoints.tokenStore(tokenStore())

                    .reuseRefreshTokens(true)//刷新token不失效

                   .authenticationManager(this.authenticationManager)

                   .pathMapping("/oauth/token", "/app/appserver/token")

                    .allowedTokenEndpointRequestMethods(HttpMethod.GET,HttpMethod.POST);

       }//authenticationManager->authenticationProvider->userDetailService->clientDetailsUserDetailsService,身份信息已经得到了AuthenticationManager的验证。接着便到达了

TokenEndpoint

       //配置AuthorizationServer安全认证的相关信息,创建ClientCredentialsTokenEndpointFilter核心过滤器

       @Override

       public void configure(AuthorizationServerSecurityConfigurer oauthServer)throws Exception {

           oauthServer.allowFormAuthenticationForClients();

       }

       //配置OAuth2的客户端相关信息

       @Override

       public void configure(ClientDetailsServiceConfigurer clients) throwsException {

           clients.withClientDetails(clientDetailsService);

       }

 

       @Bean

       public TokenStore tokenStore() {

           return new RedisTokenStore();

       }

    }


资源服务器配置:

 

@Configuration

   @EnableResourceServer

   protected static class ResourceServerConfiguration extendsResourceServerConfigurerAdapter {

        private String HC_RESOURCE_ID ="haiercash";

 

       @Value("${common.app.checkAuth}")

       private Boolean checkAuth;

 

       @Override

       public void configure(ResourceServerSecurityConfigurer resources) {

           resources.resourceId(HC_RESOURCE_ID);

       }

 

       @Override

       public void configure(HttpSecurity http) throws Exception {

           if (checkAuth == null || !checkAuth) {

               http.authorizeRequests().antMatchers("/**").permitAll().anyRequest().authenticated();

           } else {

                http.authorizeRequests()

                       .antMatchers("/", "/appjs/**","/app/portal/mUser/**", "/app/uauth/**",                     

                               "/app/appserver/appmanage/citybean/checkCitySmrz"

                        )

                       .permitAll().anyRequest().authenticated().and().headers().frameOptions().sameOrigin();

           }

       }

    }

http://blog.youkuaiyun.com/u013815546/article/details/76977239



Spring oauth2.0 刷新token后设置原token5分钟内继续可用 默认情况下刷新token后原token会立马不可用。但是在某些情况下我们需要刷新token后原token在一定时间内继续可用(例如微信的刷新token)。 通过查看DefaultTokenServices中的刷新token方法refreshAccessToken可以看到生成新的token后会调用removeAccessTokenUsingRefreshToken方法,此方法默认会删除存储的相关token信息 private void removeAccessTokenUsingRefreshToken 阅读详情

相关推荐

OAuth2 集成:通过 Spring Security 实现单点登录与第三方登录!

🏆本文收录于「滚雪球学SpringBoot」专栏,手把手带你零基础入门Spring Boot,从入门到就业,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1390

refreshToken刷新token后会变化的原因以及refreshToken的复用

refreshToken刷新token后会变化的原因以及refreshToken的复用 两次使用refreshToken刷新token返回的refreshToken如下: 将两次返回的refreshToken解密后可以看到。处理ati不一样,其它参数都是一样的 ati(access token):新的访问令牌的id jti : refreshToken 的id 既然刷出了新的token,那么ati肯定变了,那么由这些信息加密成的refreshToken自然也是一直变化的 那么如果想无限制刷新refres

weixin_43757027的博客 7194

OAuth2 与 Spring Boot 集成 —— 打造安全高效的认证与授权系统!

🏆本文收录于「滚雪球学SpringBoot」专栏,手把手带你零基础入门Spring Boot,从入门到就业,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 2035

SpringBoot集成SpringSecurity5和OAuth2 — 5、OAuth2集成JWT

SpringBoot集成SpringSecurity5和OAuth2 — 5、OAuth2集成JWT

Mr_XiMu的博客 3117

Java领域Spring Cloud安全认证与授权机制

在微服务架构中,服务间的安全通信和用户身份认证面临着前所未有的挑战。本文旨在系统性地讲解Spring Cloud生态下的安全解决方案,涵盖从基础认证到复杂授权场景的全套实现方案。核心安全概念与协议分析Spring Security架构解析OAuth2与JWT的深度整合完整的微服务安全实战生产环境最佳实践认证(Authentication): 验证用户身份的过程授权(Authorization): 确定用户权限范围的过程OAuth2: 行业标准的授权协议JWT。

AI开发架构师 994

Java项目中Spring Boot的微服务安全认证方案

本文旨在为Java开发者提供一套完整的Spring Boot微服务安全认证解决方案。微服务架构下的安全挑战基于Spring Security的核心认证流程OAuth2授权框架的四种模式JWT令牌的实现与优化微服务间的安全通信机制API网关在安全体系中的角色首先介绍微服务安全的基本概念和挑战然后深入分析核心认证授权技术原理接着通过实际项目演示完整实现最后探讨高级主题和未来发展方向微服务(Microservices)

Java大师兄的博客 1334

Spring Security+JWT+OAuth2实现同一账号重复登录时第一次登陆成功的强制下线(包括多平台使用同一个登陆系统的)

引言 我们后台项目是用Spring Security+JWT+OAuth2做的安全框架,现在有个需求就是同一账号重复登录时第一次登陆成功的强制下线。尝试了很多方法无果,当时真的是被弄得焦头烂额了。最后功夫不负有心人找到了解决方案,下面跟大家分享下。 单平台 具体实现方案就是重写DefaultTokenServices的createAccessToken方法(下发token的方法) 虽说是重写但是我们新建了一个SingleTokenServices类,将DefaultTokenServices中的方法复制过来

油条的博客 2722

python使用TensorRT报错,多线程或多进程中使用问题

python使用TensorRT报错,Cuda Runtime问题

qq_44224801的博客 747

Spring Security Oauth2认证源码解析

本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。 准备工作 首先开启debug信息: logging: level: org.springframework: DEBUG 可以完整的看到内部的运转流程。 client模式稍微简单一些,使用client模式获取tokenhttp://localhost:808...

alan_liuyue的博客 3202

2026年(新服务器默认密码)最新各大厂商默认凭证大全

本文整理了国内外主流服务器厂商的默认管理接口凭证信息,包括Dell、HPE、浪潮、华为等品牌的管理接口类型、默认用户名/密码和IP地址。特别强调国产服务器在信创环境下的安全风险,指出国内厂商部分型号仍保留固定默认密码(如浪潮admin/admin),而国际厂商多采用随机密码标签。文章提供了新机初始化安全流程建议:查找机箱标签、立即修改默认密码、配置网络隔离、更新固件等。最后提醒运维人员,服务器安全应从首次上电开始重视,管理接口暴露是重大风险点,必须严格执行安全规范。

你好,旧时光! 1694

Hierarchical Flow Partition(Top-down&&Bottom-up)

hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。

qq_39493558的博客 3062

基于 Spring Boot 和 Spring Security OAuth2 的单点登录系统的设计与实现

不管你是卡壳的 Javaweb 项目、难啃的小程序开发,还是 Python 数据可视化、SSM/SpringBoot 框架搭建,甚至 Vue/HTML/Jsp/PHP 全栈需求,咱全是纯手写高含金量代码!技术咨询秒回不拖沓,文档编写 / 论文降重直接给你 “学术级优化”,长期答辩答疑辅导更是全程护航 —— 哪怕你是 “答辩小白”,经咱腾讯会议一对一精讲,也能变身 “答辩王者”,轻松 hold 住全场!然而,单点登录技术也面临一。系统单独登录,并管理不同的账户密码,这既增加了用户的操作复杂度,降低了使用的。

weixin_50956837的博客 1009

Cygwin安装教程

简介 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件 Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统 简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现 这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在W...

Errol's Blog 13万+

Spring Security + Oauth2 认证授权

文章目录前言一、Spring Security + Oauth2 认证的4种模式1.1 授权码模式1.2 简化模式1.3 密码模式1.4 客户端模式二、使用步骤1.引入库2.读入数据总结 前言 微服务开发这么流行,安全认证非常重要,Spring Security + Oauth2 作为一个 认证授权的框架,不可或缺。 一、Spring Security + Oauth2 认证的4种模式 1.1 授权码模式 1.2 简化模式 1.3 密码模式 1.4 客户端模式 二、使用步骤 1.引入库 代码如下(示例)

qq_19283249的博客 4790

基于深度学习的X光安检危险品检测系统(YOLOv8 + UI界面 + 数据集)

随着全球安全形势的变化,机场、车站、地铁等场所的安检工作日益重要。X光安检系统已经成为现代公共安全领域中不可或缺的部分,能够有效地检测物品的内部结构,识别潜在的危险品。然而,传统的X光图像分析方法仍然依赖人工操作,检测效率较低,并且易受到人为因素的影响。近年来,深度学习技术的应用在图像分析领域取得了显著的突破,特别是在目标检测任务中,YOLO(You Only Look Once)模型因其高效性和精度,成为了许多目标检测任务的首选模型。

YOLO 1059

3. LangGraph快速入门

本示例中,我们将使用 Claude Sonnet 4.5 模型,并定义加法、乘法、除法工具。# 定义工具@toolArgs:"""@toolArgs:"""@toolArgs:"""# 为大模型绑定工具图的状态用于存储消息和大模型调用次数。LangGraph 中的状态在整个智能体执行过程中保持持久化。使用带的Annotated类型可以确保新消息追加到现有列表,而不是替换列表。模型节点用于调用大模型,并决定是否调用工具。return {],

Long_像风一样自由 842

Re:从零开始的Spring Security Oauth2(二)

本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。获取token上一篇博客中我们尝试使用了password模式和client模式,有一个比较关键的endpoint:/oauth/token。从这个入口开始分析,spring security oauth2内部是如何生成token的。首先开启d

徐靖峰的专栏 3万+

Qt | linux+openCV+Qt6.5.3环境搭建成功版(带例子)

opencv安装 Qt 实战举例

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1885

从零开始的 Spring Security OAuth2(二)

准备工作 首先开启 debug 信息: 1 2 3 logging: level: org.springframework: DEBUG 可以完整的看到内部的运转流程。 client 模式稍微简单一些,使用 client 模式获取 tokenhttp://localhost:8080/oauth/token?client_id=client_1&client_secret=123456&scope=select&gr

weixin_42073629的博客 449

基于 ESP32 与 TDS 传感器的水培营养液离子浓度自动配比系统设计与实现

本系统以 ESP32 为主控芯片,结合 TDS(总溶解固体)传感器实时监测水培营养液中的离子浓度,通过蠕动泵自动补充浓缩营养液或清水,实现营养液 EC 值的闭环自动配比。系统适用于家庭及小型农场的水培种植场景,可稳定维持营养液浓度在作物生长所需的最佳区间。

weixin_42300449的博客 77

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Spring Security入门】13-从零开始的Spring Security OAuth2(二)

本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。 准备工作 首先开启debug信息: logging: level: org.springframework: DEBUG 可以完整的看到内部的运转流程。 client模式稍微简单一些,使用client模式获取to...

通往神秘的道路的专栏 372

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

揭秘Spring Security OAuth2授权码模式:如何实现企业级安全认证?

掌握Spring Security OAuth2 授权码模式,轻松构建企业级安全认证体系。适用于多系统集成与第三方登录,基于授权服务器与资源服务器分离架构,提升安全性与可扩展性。详解配置流程与核心原理,值得收藏。

BreakNexus的博客 293

WINCC7.3破解文件

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

springsecurity oauth2.0 通过注解跳过认证_spring security源码分析心得

背景看了半天的文档及源码,终于理出了spring-security的一些总体思路,spring security主要分认证(authentication)和授权(authority)。进入主题。Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。Spring Security 为基于J2EE企业应用软件提供了全面...

weixin_28985215的博客 3813

终极指南:Spring Security OAuth2单点登录与自定义令牌配置完整教程

Spring Security OAuth2是构建安全认证系统的强大框架,本教程将带你从零开始掌握单点登录实现与令牌自定义配置的核心技能。通过SpringAll项目中的63.Spring-Security-OAuth2-Guide模块,你将学习如何快速搭建企业级认证授权系统。 ## 核心组件快速上手 ### 认证服务器配置步骤 认证服务器是OAuth2架构的核心,负责颁发和验证令牌。在项目中

gitblog_00918的博客 854

spring cloud oauth2实战

oauth2.0实战

weixin_44680725的博客 938

九.SpringCloud+Security+Oauth2实现微服务授权 - Oauth2&JWT的认识

1.Oauth2概述 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的,oAuth是Open Authorization的简写,目前的版本是2.0版。 2.Oauth2的认证流程 这里以Oauth2授权码模式为例 这里以云打印案例举例,张三想要通过云打印平台打印QQ空间的照片,传统的流程是张三把QQ账号交给

墨家巨子@俏如来 2783
上一篇: Cannot assign requested address问题
下一篇: tokenExtractor
雨冰
博客等级 码龄15年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值