(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建相关的知识,希望对你有一定的参考价值。

前面几篇我们已经介绍了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:[email protected]: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架构的搭建过程及如何运用于企业项目。

以上是关于(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建的主要内容,如果未能解决你的问题,请参考以下文章

Java springcloud B2B2C o2o多用户商城 springcloud架构

(十四)Java springcloud B2B2C o2o多用户商城 springcloud架构

(十四)Java springcloud B2B2C o2o多用户商城 springcloud架构

JAVA商城 B2B2C +o2o+ springcloud+ spring cloud商城系统 小程序 多用户商城系统 直播带货 新零售商城

Java B2B2C o2o多用户商城 springcloud架构:注册中心Eureka

Java springcloud B2B2C o2o多用户商城 springcloud架构-config-bus(十三)--二