zoukankan      html  css  js  c++  java
  • Auth2.0-Client客户端数据库配置

    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 授权。前后端分离,注册和登录

  • 相关阅读:
    ACM 人见人爱A^B
    ACM Max Factor
    ACM Primes
    ACM Least Common Multiple
    ACM 最小公倍数
    ACM Bone Collector
    ACM 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
    ACM Piggy Bank
    ACM 饭卡
    ACM Where is the Marble?
  • 原文地址:https://www.cnblogs.com/JavaWeiBianCheng/p/13984048.html
Copyright © 2011-2022 走看看