# Introduction
Welcome to Spring Microservices in Action, Chapter 7. Chapter 7 demonstrates how to build security with your services using Spring Cloud Security. In this chapter we build an OAUth2 Authentication service using OAuth2. This chapter has two branches of code.
1. The master branch uses Spring Cloud Security to build a standard Spring Cloud OAuth2 service. With the master branch of the project our OAuth2 service will create an OAuth2 token for a user. Every protected service will need to take that service and callback into the OAuth2 service to validated.
2. The JWT_Example branch will build an OAuth2 service that uses the JavasScript Web Token (JWT) specification. JWT provides a standard, cryptographically signed token. With JWT services protected by OAuth2 do not need to call back into the OAuth2 services to validate the token. Instead, they can determine if the JWT token has been tampered with and if not use its contents to validate the user. To download this branch you need to first checkout the master branch of the project and the do a git checkout -b JWT_Example to pull down the branch.
By the time you are done reading this chapter you will have built and/or deployed:
1. A Spring Cloud based OAuth2 authentication service that can issue and validate OAuth2 tokens.
2. A Spring Cloud Config server that is deployed as Docker container and can manage a services configuration information using a file system or GitHub-based repository.
3. A Eureka server running as a Spring-Cloud based service. This service will allow multiple service instances to register with it. Clients that need to call a service will use Eureka to lookup the physical location of the target service.
4. A Zuul API Gateway. All of our microservices can be routed through the gateway and have pre, response and
post policies enforced on the calls.
5. A organization service that will manage organization data used within EagleEye.
6. A new version of the organization service. This service is used to demonstrate how to use the Zuul API gateway to route to different versions of a service.
7. A special routes services that the the API gateway will call to determine whether or not it should route a user's service call to a different service then the one they were originally calling. This service is used in conjunction with the orgservice-new service to determine whether a call to the organization service gets routed to an old version of the organization service vs. a new version of the service.
8. A licensing service that will manage licensing data used within EagleEye.
9. A Postgres SQL database used to hold the data for these two services.
# Software needed
1. [Apache Maven] (http://maven.apache.org). I used version 3.3.9 of the Maven. I chose Maven because, while other build tools like Gradle are extremely popular, Maven is still the pre-dominate build tool in use in the Java ecosystem. All of the code examples in this book have been compiled with Java version 1.8.
2. [Docker] (http://docker.com). I built the code examples in this book using Docker V1.12 and above. I am taking advantage of the embedded DNS server in Docker that came out in release V1.11. New Docker releases are constantly coming out so it's release version you are using may change on a regular basis.
3. [Git Client] (http://git-scm.com). All of the source code for this book is stored in a GitHub repository. For the book, I used version 2.8.4 of the git client.
# Building the Docker Images for Chapter 7
To build the code examples for Chapter 7 as a docker image, open a command-line window change to the directory where you have downloaded the chapter 7 source code.
Run the following maven command. This command will execute the [Spotify docker plugin](https://github.com/spotify/docker-maven-plugin) defined in the pom.xml file.
**mvn clean package docker:build**
Running the above command at the root of the project directory will build all of the projects. If everything builds successfully you should see a message indicating that the build was successful.
# Running the services in Chapter 7
Now we are going to use docker-compose to start the actual image. To start the docker image,
change to the docker-compose directory in your chapter 7 source code. Issue the following docker-compose command:
**docker-compose -f docker/common/docker-compose.yml up**
If everything starts correctly you should see a bunch of Spring Boot information fly by on standard out. At this point all of the services needed for the chapter code examples will be running.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论

















格式:pdf 资源大小:2.2MB 页数:333






格式:pptx 资源大小:8.2MB 页数:120

格式:pptx 资源大小:3.4MB 页数:112


格式:pptx 资源大小:32.3MB 页数:154



格式:pdf 资源大小:21.5MB 页数:41

格式:pptx 资源大小:15.3MB 页数:121

收起资源包目录





































































































共 806 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论


九转成圣

- 粉丝: 7609
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 目标检测数据集的增强手段及源码:含图像旋转、镜像、裁剪、亮度 / 对比度变换等
- 物联网与农业机电一体化技术的关联性分析.docx
- 通信工程发展趋势研究.docx
- PyTorch 实现 GraphSAGE 模型在 Cora、Citeseer 和 Pubmed 数据集上的复现
- IPMP认证历年考试C级模拟试题二.doc
- 试论电气工程及其自动化的智能化技术应用.docx
- 三菱PLC编程软件GXWork2安装图文教程.doc
- 太原理工大学软件工程教材简介.ppt
- 某集团公司信息化规划项目.doc
- 培训演示文稿:excel-2007——创建图表.ppt
- 系统集成项目管理部分英文词汇.doc
- 基于网络平台的大学英语四级听力自主学习分析.docx
- 企业办公自动化系统的设计.doc
- 基于单片机的光电开关的转速测量装置方案设计书.doc
- 面向对象的程序设计方案试题1.doc
- 实验书网络互联技术.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
