后面几篇咱们曾经介绍了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>
  1. 配置bootstrap.yml文件
spring:  application:    name: commonservice-sso  profiles:     active: dev,discoveryClient  cloud:    config:      discovery:         enabled: true        service-id: commonservice-config-servereureka:   client:    service-url:      defaultZone: http://honghu:123456@localhost:8761/eureka  instance:    prefer-ip-address: true
  1. 配置我的项目启动文件
package com.ml.honghu;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication@EnableEurekaClientpublic class SSOApplication {    public static void main(String[] args) {        SpringApplication.run(SSOApplication.class, args);    }}
  1. 创立sso相干表:

oauth_access_token、oauth_approvals、

oauth_client_details、oauth_client_token、

oauth_code、oauth_refresh_token

脚本如下:

/*Navicat MySQL Data TransferSource Server         : localhostSource Server Version : 50621Source Host           : localhost:3306Source Database       : honghuTarget Server Type    : MYSQLTarget Server Version : 50621File Encoding         : 65001Date: 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架构的搭建过程及如何使用于企业我的项目。