java鸿皓商城源码_(十五) 企业级java springcloud b2bc商城系统开源源码二次开发 - commonservice-sso服务搭建(一)...

前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行commonservice-sso服务搭建,本节我们只是搭建commonservice-sso的基础平台,闲话少说,直接将步骤记录下来:

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

1. 创建maven项目commonservice-sso,其中pom.xml文件配置如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.ml.honghu

commonservice

0.0.1-SNAPSHOT

commonservice-sso

jar

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-config

org.springframework.boot

spring-boot-starter-actuator

org.springframework.boot

spring-boot-starter-data-rest

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-security

org.springframework.security.oauth

spring-security-oauth2

org.springframework.boot

spring-boot-starter-test

org.springframework.hateoas

spring-hateoas

org.springframework.boot

spring-boot-starter-data-rest

com.ml.honghu.common.framework

common-framework-dao

1.0.0-SNAPSHOT

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-freemarker

com.ml.honghu

component-base

org.springframework.boot

spring-boot-maven-plugin

1

repackage

2

build-info

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架构的搭建过程及如何运用于企业项目。

Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将共通工具类服务化的关键在于将其封装为一个可供调用的服务,并提供相应的接口和实现类。 以下是使用Java8进行服务化的一些步骤和示例代码: 1.定义接口 首先,需要定义一个接口,该接口将公共工具类中的方法进行抽象化,以便它们可以在不同的实现类中调用。 ```java public interface CommonService { public void method1(); public String method2(String input); //其他公共方法... } ``` 2.实现接口 接下来,需要编写一个实现类,该实现类实现了CommonService接口中定义的所有方法。 ```java public class CommonServiceImpl implements CommonService { @Override public void method1() { //具体实现 } @Override public String method2(String input) { //具体实现 return null; } //其他公共方法的具体实现... } ``` 3.发布服务 接下来,使用Java8中的Lambda表达式和函数式接口将CommonServiceImpl发布为服务。 ```java public class ServicePublisher { public static void main(String[] args) throws Exception { CommonService service = new CommonServiceImpl(); Endpoint.publish("http://localhost:8080/commonService", service); } } ``` 4.调用服务 最后,使用Java8中的Lambda表达式和函数式接口来调用发布的服务。 ```java public class ServiceConsumer { public static void main(String[] args) { QName serviceName = new QName("http://localhost:8080/", "CommonService"); QName portName = new QName("http://localhost:8080/", "CommonServicePort"); String endpointAddress = "http://localhost:8080/commonService"; Service service = Service.create(serviceName); service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress); Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE); SOAPMessage request = //构建SOAP请求消息 SOAPMessage response = dispatch.invoke(request); //处理SOAP响应消息 } } ``` 以上代码演示了如何使用Java8将共通工具类服务化。请注意,这只是一个简单的示例,实际的服务化过程可能会更加复杂和具体化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值