Spring Boot 2应用程序和OAuth 2 –传统方法
这篇文章是3个系列文章中的第二部分,探讨了如何为基于Spring Boot 2的应用程序启用OSO2提供程序SSO。 3个帖子是:
1. 引导兼容OpenID Connect的OAuth2授权服务器/ OpenID提供程序的方法
2.与OAuth2授权服务器/ OpenID提供程序集成的旧版Spring Boot / Spring 5方法–这篇文章
3.与OAuth2授权服务器/ OpenID Connect提供商集成的更新的Spring Boot 2 / Spring 5方法–即将推出
这篇文章将探讨传统的Spring Boot 2 / Spring Security 5方法,以为应用程序启用基于OAuth2的身份验证机制,本文假设所有
遵循了上一篇博客文章中的步骤, UAA已启动并正在运行。
可能想到的一个问题是,为什么我应该在Spring Boot 2 / Spring Security 5的背景下谈论遗留物,而这本来应该是做SSO的新方法! 原因是,随着开发人员我们一直在使用Spring Boot 1.5.x的一种方法(现在认为该方法已被弃用),但是其中的功能尚未完全移植到新方法上(能够启动OAuth2授权服务器以及创建OAuth2资源服务器的能力是示例),在此期间,Spring Security开发人员(感谢
Rob Winch和Joe Grandja )通过spring-security-oauth2-boot项目的形式为传统方法提供了桥梁。
方法
因此,旧方法的外观是什么–在此之前,我已经详细介绍了它,以总结一下它在一个名为@ EnableOAuth2SSO的注释和一组支持该注释的属性的基础上的工作原理,示例安全配置如下所示–
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableOAuth2Sso
@Configuration
public class OAuth2SecurityConfig extends WebSecurityConfigurerAdapter {@Overridepublic void configure(WebSecurity web) throws Exception {super.configure(web);web.ignoring().mvcMatchers("/favicon.ico", "/webjars/**", "/css/**");}@Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable();http.authorizeRequests().antMatchers("/secured/**").authenticated().antMatchers("/").permitAll().anyRequest().authenticated();}}
指向UAA的一组支持属性如下:
ssoServiceUrl: http://localhost:8080/uaasecurity:oauth2:client:client-id: client1client-secret: client1access-token-uri: ${ssoServiceUrl}/oauth/tokenuser-authorization-uri: ${ssoServiceUrl}/oauth/authorizeresource:jwt:key-uri: ${ssoServiceUrl}/token_keyuser-info-uri: ${ssoServiceUrl}/userinfo
将spring-security-oauth2-boot项目作为依赖项插入:
compile 'org.springframework.cloud:spring-cloud-starter-oauth2'
compile("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.0.0.BUILD-SNAPSHOT")
这些注释也适用于Spring Boo2应用程序。 但是请注意,Spring Boot 2支持两个不同的Web框架-Spring Web和Spring Webflux ,此方法可过渡地 引入 Spring Web ,这将Spring Web强制为默认框架 。
完整示例及其启动方法可在我的github存储库中找到 – https://github.com/bijukunjummen/oauth2-boot2
测试中
任何以“ / secured / **”开头的uri均已启用SSO,如果访问索引页,则无需任何身份验证即可显示它:
现在,单击以“ / secured / **”开头的uri应该会触发OAuth2 授权代码流 :
并应通过UAA向用户显示登录屏幕:
使用之前创建的凭证登录– user1 / user1应该将用户重定向回该应用程序的Spring Boot 2旧版,并显示受保护的页面:
这就完成了使用Spring Boot 2进行SSO的遗留方法。请注意,这只是伪身份验证,OAuth2的用途更多是为了授权访问用户资源,而不是在这里使用身份验证。 可以在此处找到澄清这一点的文章。 下一篇有关本机Spring Security 5 / Spring Boot2的文章将提供使用OpenID Connect的更清晰的身份验证机制。
翻译自: https://www.javacodegeeks.com/2018/02/spring-boot-2-applications-oauth-2-legacy-approach.html
Spring Boot 2应用程序和OAuth 2 –传统方法相关推荐
- 带有Gradle的Spring Boot Web应用程序
1.简介 在继续使用Gradle创建演示Spring Boot Web应用程序之前,我假设我们已经准备好使用Gradle设置 . 摇篮设置指南 Gradle官方网站 2.创建演示应用程序 现在我们已经 ...
- Spring Boot Web应用程序中注册 Servlet 的方法实例
Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...
- Spring boot、微服务、OAuth、OpenID的爱恨情仇!
在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...
- 使用 spring boot 开发通用程序
2019独角兽企业重金招聘Python工程师标准>>> tag: spring 学习笔记 date: 2018-03 spring 是什么?spring 核心是应用组件容器,管理组件 ...
- synology_用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
synology 对于将在Synology RS815 + NAS上检查备份文件的Spring Boot应用程序,我们希望能够轻松测试此NAS上存储的文件,而不必复制存储在该NAS上的7TB. 理想情 ...
- 使用Spring Boot开发Restful程序
一.简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- synology smb_用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
synology smb 对于将在Synology RS815 + NAS上检查备份文件的Spring Boot应用程序,我们希望能够轻松测试此NAS上存储的文件,而不必复制存储在其上的7TB. 理想 ...
- openshift使用_OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序
openshift使用 由于此错误, Gradle 1.6是在OpenShift上运行的最后一个受支持的Gradle版本. 但是从Gradle 2.2开始,这不再是问题,因此,使用自己动手做墨盒,在O ...
- 用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
对于将在Synology RS815 + NAS上检查备份文件的Spring Boot应用程序,我们希望能够轻松测试此NAS上存储的文件,而不必复制存储在其上的7TB. 理想情况下,我们希望创建相同的 ...
最新文章
- uva11990 动态逆序对
- Linux下用户管理
- Python 3 的 int 类型详解(为什么 int 不存在溢出问题?)
- Flexible 弹性盒子模型之CSS flex-shrink 属性
- java 打印abcd_用JAVA编程统计字符串ABCD123!@#$%ab中大写字母、小写字母、数字、其它字符的个数并打印出来...
- Python 标准库 —— glob
- springboot+vue全栈开发_全栈的自我修养: 002使用@vue/cli进行vue环境搭建 (使用Vue,SpringBoot,Flask完成前后端分离)...
- server2019安装mysql_windows server2019下安装mysql8.0.11
- ext2文件系统源代码之ext2.h
- 安卓版本客户端2.1
- C语言:51单片机看这一篇就够了
- python封包和解包_python解析网络封包方法
- 问题:MongoDB C# driver异常:Truncation resulted in data loss
- AutoCAD2024最新版介绍及安装下载
- OneDrive登录问题
- tf.unstack() 详解 —》理解为主
- 元境技术助力元宇宙营销 联合发起商广协元宇宙营销研究院
- ar编码matlab仿真_机器人常用可视化仿真工具
- 响应式织梦模板婚纱照摄影类网站
- 图像平滑之二维离散卷积