JAVA语言之(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建(一)
小标 2019-03-04 来源 : 阅读 566 评论 0

摘要:本文主要向大家介绍了JAVA语言之(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建(一),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之(十五)Java B2B2C o2o多用户商城-commonservice-sso服务搭建(一),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之(十五)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="//maven.apache.org/POM/4.0.0" xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="//maven.apache.org/POM/4.0.0 //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: //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架构的搭建过程及如何运用于企业项目。

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程