美文网首页
(十五) 整合spring cloud云架构 - commons

(十五) 整合spring cloud云架构 - commons

作者: 黑骑士1203 | 来源:发表于2020-11-06 11:10 被阅读0次

    前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行commonservice-sso服务搭建,本节我们只是搭建commonservice-sso的基础平台,闲话少说,直接将步骤记录下来:

    1. 创建maven项目commonservice-sso,其中pom.xml文件配置如下:

    <?xml version="1.0" encoding="UTF-8"?>  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">      <modelVersion>4.0.0</modelVersion>            <parent>          <groupId>com.ml.honghu</groupId>          <artifactId>commonservice</artifactId>          <version>0.0.1-SNAPSHOT</version>      </parent>        <artifactId>commonservice-sso</artifactId>      <packaging>jar</packaging>        <dependencies>          <dependency>              <groupId>org.springframework.cloud</groupId>              <artifactId>spring-cloud-starter-eureka</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.cloud</groupId>              <artifactId>spring-cloud-starter-config</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-actuator</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-data-rest</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-web</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-security</artifactId>          </dependency>            <dependency>              <groupId>org.springframework.security.oauth</groupId>              <artifactId>spring-security-oauth2</artifactId>          </dependency>            <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-test</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.hateoas</groupId>              <artifactId>spring-hateoas</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-data-rest</artifactId>          </dependency>          <dependency>              <groupId>com.ml.honghu.common.framework</groupId>              <artifactId>common-framework-dao</artifactId>              <version>1.0.0-SNAPSHOT</version>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-web</artifactId>          </dependency>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-freemarker</artifactId>          </dependency>          <dependency>              <groupId>com.ml.honghu</groupId>              <artifactId>component-base</artifactId>          </dependency>          </dependency>      </dependencies>        <!-- 打包插件,其中repackage、true是专门打spring boot专用包 -->      <build>          <plugins>              <plugin>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-maven-plugin</artifactId>                  <executions>                      <execution>                          <id>1</id>                          <goals>                              <goal>repackage</goal>                          </goals>                      </execution>                      <execution>                          <id>2</id>                          <goals>                              <goal>build-info</goal>                          </goals>                      </execution>                  </executions>              </plugin>          </plugins>      </build>  </project>  

     2. 配置bootstrap.yml文件

    spring:    application:      name: commonservice-sso    profiles:       active: dev,discoveryClient    cloud:      config:        discovery:           enabled: true          service-id: commonservice-config-server  eureka:     client:      service-url:        defaultZone: http://honghu:123456@localhost:8761/eureka    instance:      prefer-ip-address: true  

     3. 配置项目启动文件

    package com.ml.honghu;    import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.SpringBootApplication;  import org.springframework.cloud.netflix.eureka.EnableEurekaClient;    @SpringBootApplication  @EnableEurekaClient  public class SSOApplication {      public static void main(String[] args) {          SpringApplication.run(SSOApplication.class, args);      }  }  

     4. 创建sso相关表:

    oauth_access_token、oauth_approvals、

    oauth_client_details、oauth_client_token、

    oauth_code、oauth_refresh_token

    脚本如下:

    /* Navicat MySQL Data Transfer  Source Server         : localhost Source Server Version : 50621 Source Host           : localhost:3306 Source Database       : honghu  Target Server Type    : MYSQL Target Server Version : 50621 File Encoding         : 65001  Date: 2017-10-26 20:12:56 */    SET FOREIGN_KEY_CHECKS=0;    -- ----------------------------  -- Table structure for `oauth_access_token`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_access_token`;  CREATE TABLE `oauth_access_token` (    `token_id` varchar(256) DEFAULT NULL,    `token` blob,    `authentication_id` varchar(128) NOT NULL,    `user_name` varchar(256) DEFAULT NULL,    `client_id` varchar(256) DEFAULT NULL,    `authentication` blob,    `refresh_token` varchar(256) DEFAULT NULL,    PRIMARY KEY (`authentication_id`)  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;      -- ----------------------------  -- Table structure for `oauth_approvals`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_approvals`;  CREATE TABLE `oauth_approvals` (    `userId` varchar(256) DEFAULT NULL,    `clientId` varchar(256) DEFAULT NULL,    `scope` varchar(256) DEFAULT NULL,    `status` varchar(10) DEFAULT NULL,    `expiresAt` datetime DEFAULT NULL,    `lastModifiedAt` datetime DEFAULT NULL  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;    -- ----------------------------  -- Records of oauth_approvals  -- ----------------------------    -- ----------------------------  -- Table structure for `oauth_client_details`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_client_details`;  CREATE TABLE `oauth_client_details` (    `client_id` varchar(128) NOT NULL,    `resource_ids` varchar(256) DEFAULT NULL,    `client_secret` varchar(256) DEFAULT NULL,    `scope` varchar(256) DEFAULT NULL,    `authorized_grant_types` varchar(256) DEFAULT NULL,    `web_server_redirect_uri` varchar(256) DEFAULT NULL,    `authorities` varchar(256) DEFAULT NULL,    `access_token_validity` int(11) DEFAULT NULL,    `refresh_token_validity` int(11) DEFAULT NULL,    `additional_information` varchar(4096) DEFAULT NULL,    `autoapprove` varchar(256) DEFAULT NULL,    PRIMARY KEY (`client_id`)  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;      -- ----------------------------  -- Table structure for `oauth_client_token`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_client_token`;  CREATE TABLE `oauth_client_token` (    `token_id` varchar(256) DEFAULT NULL,    `token` blob,    `authentication_id` varchar(128) NOT NULL,    `user_name` varchar(256) DEFAULT NULL,    `client_id` varchar(256) DEFAULT NULL,    PRIMARY KEY (`authentication_id`)  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;    -- ----------------------------  -- Records of oauth_client_token  -- ----------------------------    -- ----------------------------  -- Table structure for `oauth_code`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_code`;  CREATE TABLE `oauth_code` (    `code` varchar(256) DEFAULT NULL,    `authentication` blob  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;    -- ----------------------------  -- Records of oauth_code  -- ----------------------------    -- ----------------------------  -- Table structure for `oauth_refresh_token`  -- ----------------------------  DROP TABLE IF EXISTS `oauth_refresh_token`;  CREATE TABLE `oauth_refresh_token` (    `token_id` varchar(256) DEFAULT NULL,    `token` blob,    `authentication` blob  ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

     备注: oauth的相关表是用来存储用户的token信息和认证信息的。(企业架构源码可以加求球:叁五三陆二肆柒二伍玖)

    本节搭建先搭建那么多,后面的业务代码太多,我们会在后面的章节中放出来。

    从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。

    相关文章

      网友评论

          本文标题:(十五) 整合spring cloud云架构 - commons

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