`
springcloud关注者
  • 浏览: 311872 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
12d8ea3d-4199-3941-8a17-acd5024729b8
Spring_Cloud构...
浏览量:251128
文章分类
社区版块
存档分类
最新评论

(十五) 整合spring cloud云架构 - 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: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架构的搭建过程及如何运用于企业项目。

 

 

10
0
分享到:
评论
2 楼 springcloud关注者 2017-10-27  
valiant025 写道
文章终于又更新了...谢谢分享

这两天会持续更新,朋友时候关注
1 楼 valiant025 2017-10-27  
文章终于又更新了...谢谢分享

相关推荐

    鸿鹄Cloud分布式微服务云系统管理_springcloud_分布式_产品_云_平台_

    Commonservice-system 是一个大型分布式、微服务、面向企业的 JavaEE 体系快速研发平台,基于模块化、服务化、原子化、热插拔的设计思想,使用成熟领先的无商业限制的主流开源技术构建。 采用服务化的组件开发模式,...

    eureka分布式微服务

    其中,Eureka是Spring Cloud中的服务发现组件,它能够实现服务注册与发现的功能,是分布式微服务架构中不可或缺的一部分。 #### 二、创建Eureka服务发现中心 根据给定的文件信息,我们将详细介绍如何创建一个名为`...

    spring cloud consul使用ip注册服务的方法示例

    其次,我们需要添加 `instance-id` 属性,并将其设置为 `${spring.application.name}:${spring.cloud.client.ip-address}`。这将使 Consul 使用 IP 地址来注册服务。 ```yaml spring: cloud: consul: host: xxx....

    unity对接网狐服务器文档

    - 公共服务(CommonService):提供基础服务支持,需优先编译。 - 网络服务(NetService):处理网络通信,用于登录服务器和游戏服务器,同样需要优先编译。 - 列表服务(ListService)、内核引擎(KernelEngine...

    17.5、利用反射调用webservice1

    - 实现`IWsService`的`WsServiceImp`类,使用`@Service`注解标记为Spring的bean,表明它是一个可被Spring管理的服务组件。 - 利用`@PostConstruct`注解的方法`init`,在Spring容器启动时自动执行,用于初始化`...

    大数据分析系统

    综上所述,“大数据分析系统”是一个基于Java的复杂应用系统,它利用Spring框架和一系列其他开源库实现了高效的数据处理和分析功能。通过丰富的API和接口,该系统可以灵活地集成到现有的IT基础设施中,为企业提供...

    Spring循环依赖报错Bean with name ‘**’ has been injected into other beans [**] in its raw version as part

    在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间形成的一种相互依赖关系,导致Spring容器在初始化这些Bean时遇到困难。当一个Bean依赖于另一个Bean,而后者又反过来依赖于前者,就会出现...

    2、webservice--常用注解1

    在上面的配置中,我们定义了一个名为 `commonWS` 的WebService,服务类为 `org.dsp.ea.pay.ws.ICommonWS`,服务地址为 `/CommonService`。同时,我们还指定了 `commonWSImp` bean 作为服务实现类。 这篇文章详细...

    hibernate链接oracle

    最后,定义了两个业务服务bean:`BWService`和`CommonService`。这两个服务均使用了上面定义的事务代理工厂,并关联了具体的实现类。 - `target`: 实际调用的业务逻辑bean,如`BWServiceTarget`和`CommonTarget`。 ...

    angular4 共享服务在多个组件中数据通信的示例

    在这里,我们将`CommonService`添加到`providers`数组中,确保父组件有一个服务实例。同时,在构造函数中,我们获取了服务中的`dateList`并将其赋值给组件的`list`属性,以便在模板中展示数据。 父组件的HTML模板`...

    .NET Core 3.0之创建基于Consul的Configuration扩展组件

    .NET Core 3.0是一个用于构建云原生应用的开源框架,它支持跨平台运行,并集成了许多现代开发实践和模式。在.NET Core 3.0中创建基于Consul的Configuration扩展组件是一项高级任务,旨在通过分布式配置管理系统来...

    Angular父子组件以及非父子组件之间的通讯.pdf

    例如,可以创建一个公共的服务: ```typescript import { Injectable } from '@angular/core'; @Injectable() export class CommonService { private data: string; setData(data: string) { this.data = data...

    基于Android平台的教师课堂智能助手系统.pdf

    一、系统架构 该系统主要由三个部分组成:发送端、接收端和蓝牙服务。发送端负责数据的采集和传输,接收端负责数据的接收和处理,蓝牙服务负责蓝牙连接和数据传输。 二、发送端 发送端主要由三个部分组成:...

    java毕设项目之基于java+springboot科研工作量管理系统的设计与实现.zip

    项目中还包含了一些通用的服务和控制器,比如`CommonService.java`和`GongzuoliangController.java`,这些类通常用于实现业务逻辑,处理来自前端的请求,并调用DAO层操作数据库。`CommonUtil.java`可能是包含了一些...

    common-service

    共同服务Clojure库旨在...好的,这取决于您。测验clj -M:test用法整我执照版权所有:copyright:2020 FIXME 该程序和随附的材料根据Eclipse Public License 2.0的条款提供,该条款可从。 当满足Eclipse Public License...

    商城.zip_Java_

    3. CommonService.java:这是一个通用服务类,通常会包含一些可复用的方法,比如日志记录、事务管理等,旨在提高代码的可维护性和复用性。 4. SysLogService.java:系统日志服务,用于记录用户的操作行为、系统的...

    FGTGRTGFGTRGTRGTR

    压缩包子文件的名称"CommonService"虽然可能是某个服务或者模块的名称,但是单独这个名称无法提供足够的上下文来生成一篇超过1000字的IT专业知识文章。 在正常的IT场景中,如果标题和描述包含如"数据库管理"、"编程...

Global site tag (gtag.js) - Google Analytics