Spring Security OAuth2 Login

概述

OAuth3是一个授权框架的标准,Spring Security对OAuth3.0的支持加以改造适配,支持用户使用已有的其他系统账户登陆应用(框架中默认支持包括GitHub, Facebook, Google, Okta)。

OAuth3.0 Login

Spring Security OAuth3.0 Login是基于OAuth3.0协议和OpenID Connect Core1.0协议,按照其中的授权码模式实现。

使用GitHub账号登陆

GitHub中注册应用

设置地址为:
https://github.com/settings/applications/new

其中回调URL的格式为:{baseUrl}/login/oauth3/code/{registrationId}.

添加maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth3-client</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth3-jose</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>

配置application.yml

spring:
  security:
    oauth3:
      client:
        registration:
          github:
            client-id: e660bdf67960d1e3a486
            client-secret: 6e201837d5d6c302d875f87299f2edb8a2c2c268

其中client-id和client-secret填入github生成的信息

启动应用

启动应用,在浏览器中输入测试地址
http://localhost:8091/test,页面自动跳转至GitHub的授权页面,点击授权按钮完成OAuth3的登陆

相关推荐:

Spring常见的十大错误,78%的老程序员都踩过这些坑!

首先我们来看一下,Spring常见错误有那些 太过关注底 内部结构“泄露” 缺乏关注点分离 缺乏异常处理或处理不当 多线程处理不当 不使用基于注解的验证 (依旧)使用基于xml的配置 忽略profile 无法接受依赖项注入 缺乏测试,或测试不当 接下来就一一介绍这些常见的错误1.错误一:太过关注底层...

好程序员Java学习路线分享Spring创建Bean的3种方式

好程序员Java学习路线分享Spring创建Bean的3种方式,本文讲解了在Spring应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案。方式1:使用SpringXML方式配置,该方式用于在纯Spring应用中,适用于简单的小应用,当应用变得...

追踪JVM中的本地内存

1.概述 有没有想过为什么Java应用程序通过众所周知的-Xms和-Xmx调优标志消耗的内存比指定数量多得多?出于各种原因和可能的优化,JVM可以分配额外的本机内存。这些额外的分配最终会使消耗的内存超出-Xmx限制。 在本教程中,我们将列举JVM中的一些常见内存分配源,以及它们的大小调整标志,然后学...

在用Spring boot搭建项目的时候出现 “无法访问此网站“ 是什么情况

这篇文章主要讲解了“在用Springboot搭建项目的时候出现“无法访问此网站“是什么情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在用Springboot搭建项目的时候出现“无法访问此网站“是什么情况”吧!在用Springboot搭建项目的时候...

SpringBoot启动机制(starter机制)核心原理详解

作者:MyBug 一、前言 使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,这次主要是分析springboot特性自动装配。那么首先带领大家回顾一下以往...

一道78%的Java程序员搞不清的Spring bean面试题

熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、globalsession。如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同。今天要介绍的是这五种中的前两种,也是Spring最初提供的...