2019独角兽企业重金招聘Python工程师标准>>>

前面几篇我们已经介绍了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相关表:

/*
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架构的搭建过程及如何运用于企业项目。完整项目的源码来源 技术支持1791743380

转载于:https://my.oschina.net/u/3826344/blog/1861174

Spring Cloud云架构 - commonservice-sso服务搭建(一)相关推荐

  1. java 云架构_java版Spring Cloud云架构代码结构构建

    本篇我们根据架构图进行代码的构建.根据微服务化设计思想,结合spring cloud一些优秀的项目,如服务发现.治理.配置化管理.路由负载.安全控制等优秀解决方案,使用Maven技术将框架进行模块化. ...

  2. (十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置

    2019独角兽企业重金招聘Python工程师标准>>> 我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c ...

  3. spring cloud微服务分布式云架构-commonservice-config配置服务搭建

    2019独角兽企业重金招聘Python工程师标准>>> 1. 介绍 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持.使用Config Serve ...

  4. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  5. Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)

    上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * ...

  6. 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程

    现在我们针对于login做成相关的微服务,解析如下: 请求方式:POST 服务URL: http://localhost:8080/user/login 参数类型:application/json H ...

  7. 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)

    之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点: 一.oauth中的角 ...

  8. Java架构-(十) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)

    之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点: 一.oauth中的角 ...

  9. (十) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)

    之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点: 一.oauth中的角 ...

最新文章

  1. 关于字符串计算size的方法比较
  2. __slots__(面向对象进阶)
  3. HTML5 localStorage本地存储
  4. 【Nginx】错误: [emerg] “proxy_pass“ cannot have URI part in location given by regular expression,...
  5. oracle数据库分层,Oracle数据库的分层查询(一)
  6. 20155303 2016-2017-2 《Java程序设计》第四周学习总结
  7. ps -ef和ps aux
  8. 应用软件更新提醒单页HTML网站源码
  9. oracle undo数据文件坏,oracle undo数据文件损坏故障处理案例
  10. 【重识 HTML + CSS】CSS 伪类、伪元素
  11. 如何借助log4j把日志写入数据库中
  12. Atitit opencv3.0  3.1 3.2 新特性attilax总结
  13. 【TWVRP】基于matlab遗传和模拟退火算法求解带时间窗的取送货问题【含Matlab源码 1139期】
  14. 1月10日云栖精选夜读:专访金榕:四年蜕变,阿里iDST是如何登上浪潮之巅的?
  15. 微信dat文件用什么软件打开方式_2020微信dat文件解密工具怎么获取软件
  16. CreateIoCompletionPort函数和完成端口
  17. python机器学习 | 朴素贝叶斯算法介绍及实现
  18. 支付宝首次揭秘红包技术
  19. 模态逻辑(1)——从命题逻辑开始
  20. Ubuntu安装ESPNET(搞了一个多月)

热门文章

  1. r语言怎么把txt数据变成一个Rdata格式_甲基化芯片数据下载如何读入到R里面
  2. 数据从hadoop到oracle,如何向 hadoop 导入数据
  3. 一棵二叉树的中根线索二叉树_二叉树面试题刷题模板(终极版)
  4. java跑批任务_【spring配置】——spring整合Quartz定时器
  5. php最复杂,php – 什么方法最好构建这个复杂的图
  6. 质量管理系统_晟通集团内训 | 质量管理系统提升实战训练
  7. java 避免重定向_java重定向与转发的问题
  8. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  9. 使用Arrays sort 方法進行排序
  10. Node.js是什么?