美文网首页
oAuth2基于内存存储令牌

oAuth2基于内存存储令牌

作者: Lucie_xxm | 来源:发表于2019-04-28 15:38 被阅读0次

概述

内存存储令牌 的模式用于演示最基本的操作,快速理解 oAuth2 认证服务器中 "认证"、"授权"、"访问令牌” 的基本概念

  • 配置认证服务器
    • 配置客户端信息:ClientDetailsServiceConfigurer
      • inMemory:内存配置
      • withClient:客户端标识
      • secret:客户端安全码
      • authorizedGrantTypes:客户端授权类型
      • scopes:客户端授权范围
      • redirectUris:注册回调地址
      • 配置 Web 安全
      • 通过 GET 请求访问认证服务器获取授权码
      • 端点:/oauth/authorize
      • 通过 POST 请求利用授权码访问认证服务器获取令牌
      • 端点:/oauth/token

注: 默认使用springboot启动web项目

pom

添加依赖相应的依赖

  <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-oauth2</artifactId>
        </dependency>
    </dependencies>

配置认证服务

创建一个类继承 AuthorizationServerConfigurerAdapter 并添加相关注解:

  • @Configuration
  • @EnableAuthorizationServer
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients
                .inMemory()
                .withClient("client")
                .secret("secret")
                .authorizedGrantTypes("authorization_code")
                .scopes("app")
                .redirectUris("http://www.baidu.com");

    }

}

服务器安全配置

创建一个类继承 WebSecurityConfigurerAdapter 并添加相关注解:

  • @Configuration
  • @EnableWebSecurity
  • @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true):全局方法拦截
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true,securedEnabled = true,jsr250Enabled = true)
public class WebSecutityConfigurer extends WebSecurityConfigurerAdapter {

}

application.properties

## Spring server 
spring.application.name=oauth2-server
spring.security.user.name=root
spring.security.user.password=123456
server.port=8080

访问获取授权码

打开浏览器,输入地址:

http://localhost:8080/oauth/authorize?client_id=client&response_type=code

第一次访问会跳转到登录页面

验证成功后会询问用户是否授权客户端

选择授权后会跳转,浏览器地址上还会包含一个授权码(code=1JuO6V),浏览器地址栏会显示如下地址:

http://www.baidu.com/?code=1JuO6V

有了这个授权码就可以获取访问令牌了

通过授权码向服务器申请令牌

通过 CURL 或是 Postman 请求

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=authorization_code&code=1JuO6V' "http://client:secret@localhost:8080/oauth/token"

相关文章

  • oAuth2基于内存存储令牌

    概述 内存存储令牌 的模式用于演示最基本的操作,快速理解 oAuth2 认证服务器中 "认证"、"授权"、"访问令...

  • Spring Security oAuth2 基于内存存储令牌

    学习完整课程请移步 互联网 Java 全栈工程师 概述 本章节基于 内存存储令牌 的模式用于演示最基本的操作,帮助...

  • oAuth2基于JDBC存储令牌

    概述 基于 JDBC 存储令牌 的模式用于演示最基本的操作,帮助大家快速理解 oAuth2 认证服务器中 "认证"...

  • 7、spring cloud OAuth2授权服务

    关于spring cloud OAuth2 OAuth2是一个基于令牌的安全框架,允许用户使用第三方验证服务进行验...

  • OAuth2 和 OpenID Connect 含义理解

    OAuth2 OAuth2协议,它允许应用程序通过一个安全令牌服务获取访问令牌,随后使用这个访问令牌来访问API。...

  • Spring cloud oauth2 研究--第一个DEMO

    OAuth2简介 OAuth2是一个基于令牌的安全验证和授权框架,主要分为四个部分 1)资源所有者 定义哪些应用程...

  • ipfs项目分析

    IPFS项目: 一、目标 1、解决问题:基于区块链和原生令牌的去中心化存储网络,客户花费令牌存储数据和检索数据,矿...

  • OAuth2.0-JWT令牌

    一、JWT令牌介绍 通过Spring Cloud Security OAuth2[https://www.jian...

  • OAuth2中的access_token

    之前的一篇文章OAuth2的原理和应用对OAuth2进行了简单的介绍。OAuth2的关键技术就是令牌 (acces...

  • OAuth2-RFC 6749 学习笔记

    【目录】 OAuth2 框架模型AccessToken:访问令牌RefreshToken:刷新领牌OAuth Sc...

网友评论

      本文标题:oAuth2基于内存存储令牌

      本文链接:https://www.haomeiwen.com/subject/zskdnqtx.html