欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Auth2.0-Client客户端数据库配置

程序员文章站 2022-06-13 20:06:40
...

Auth2.0-Client客户端数据库配置

 

Client客户端信息通常以HardCode方式放在inMemory里面。本文我们将把ta放到数据库里面,以方便维护。

1.0 修改代码如下

    private final DataSource dataSource;

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(dataSource);
    }

    @Bean
    public JdbcTokenStore tokenStore() {
        return new JdbcTokenStore(dataSource);
    }

1.1 执行数据库脚本

schema.sql

DROP TABLE IF EXISTS oauth_client_details;

CREATE TABLE oauth_client_details
(
    client_id               VARCHAR(255) PRIMARY KEY,
    resource_ids            VARCHAR(255),
    client_secret           VARCHAR(255),
    scope                   VARCHAR(255),
    authorized_grant_types  VARCHAR(255),
    web_server_redirect_uri VARCHAR(255),
    authorities             VARCHAR(255),
    access_token_validity   INTEGER,
    refresh_token_validity  INTEGER,
    additional_information  VARCHAR(4096),
    autoapprove             VARCHAR(255)
);

DROP TABLE IF EXISTS oauth_client_token;

CREATE TABLE oauth_client_token
(
    token_id          VARCHAR(255),
    token             LONG VARBINARY,
    authentication_id VARCHAR(255) PRIMARY KEY,
    user_name         VARCHAR(255),
    client_id         VARCHAR(255)
);

DROP TABLE IF EXISTS oauth_access_token;

CREATE TABLE oauth_access_token
(
    token_id          VARCHAR(255),
    token             LONG VARBINARY,
    authentication_id VARCHAR(255) PRIMARY KEY,
    user_name         VARCHAR(255),
    client_id         VARCHAR(255),
    authentication    LONG VARBINARY,
    refresh_token     VARCHAR(255)
);

DROP TABLE IF EXISTS oauth_refresh_token;

CREATE TABLE oauth_refresh_token
(
    token_id       VARCHAR(255),
    token          LONG VARBINARY,
    authentication LONG VARBINARY
);

DROP TABLE IF EXISTS oauth_code;

CREATE TABLE oauth_code
(
    code           VARCHAR(255),
    authentication LONG VARBINARY
);

DROP TABLE IF EXISTS oauth_approvals;

CREATE TABLE oauth_approvals
(
    userid         VARCHAR(255),
    clientid       VARCHAR(255),
    scope          VARCHAR(255),
    status         VARCHAR(10),
    expiresat      TIMESTAMP,
    lastmodifiedat TIMESTAMP
);

data.sql

LOCK tables `oauth_client_details` WRITE; 
/*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */ 
;INSERT INTO `oauth_client_details` VALUES 
            ( 
                        'clientApp', 
                        'resource_id', 
                        '$2a$10$R.QchD5KA5mrVYdbx4WwGunbEzcE8NUSxFz0qWhBSlhHCgJr5qLwq', 
                        'all', 
                        'password,authorization_code,client_credentials,refresh_token,implicit',
                        'http://baidu.com', 
                        'READ_ONLY_CLINT', 
                        NULL, 
                        NULL, 
                        '{}', 
                        '' 
            ); 

/*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */ 
;UNLOCK tables;

2.0工作场景代码下载

序号 内容
01 Vue+SpringBoot 文件操作、上传、预览和删除
02 Vue+Spring Data JPA+MySQL 增查改删
03 React+Spring Data JPA+MySQL 增查改删
04 Kotlin+Vue+Spring Data JPA+MySQL 增查改删
05 Gmail+QQ邮箱发送邮件
06 自定义Oauth2.0,Google和Github登录页面
07 Oauth2 Password-Flow 授权。前后端分离,注册和登录

Auth2.0-Client客户端数据库配置

相关标签: spring oauth2