当前位置: 首页 > news >正文

无需Java代码通过JHipster生成有安全验证的微服务应用

让我们继续登录到我们的应用程序,并导航到Account>Login菜单项。我们将使用admin/admin作为凭据,缺省情况下,JHipster将自动创建。一切进展顺利。欢迎页面将显示确认登录成功的消息:您被登录为使用“admin”!

检查L过程:首先,网关将我们的凭证发送到UAA的OAuth2令牌端点,该端点验证它们,并生成包含访问和刷新JWT令牌的响应。网关然后将这些令牌作为cookie发送回浏览器。

本教程,从Baeldun,主要展示了如何通过JPHISTER自动生成安全的微服务应用程序,而无需编写Java代码行,包括角前端和微服务后端。以下是翻译的主要步骤,包括原文的更详细的截图:

在本教程中,我们将探讨JHipster的用户帐户和授权服务(简称UAA)以及如何使用它来保护完全成熟的基于JHispter的微服务应用程序。更好的是,所有这些都可以在不编写任何代码的情况下完成!

JHipster的UAA是一个微服务,独立于应用程序中的其他服务构建、部署和运行。它被用作:

  • OAuth2授权服务器,基于Spring Boot的实现
  • 身份管理服务器,公开用户帐户CRUD API

JHipster UAA还支持典型的登录功能,比如自注册和“记住我”。当然,它与其他JHipster服务完全集成。

在开始任何开发之前,我们需要一个正在运行的JHipster注册中心,它允许我们创建不同的服务来查找并彼此通信。

1.生成新的JHipster UAA服务

使用JHipster命令行实用程序生成我们的UAA服务:

这提示我们回答一些定制问题。第一个问题是我们想要生成什么样的应用程序。使用箭头键,我们将选择“JHipster UAA(用于微服务OAuth2身份验证)”选项。

接下来是应用程序名称、服务器端口和服务发现的输入。在大多数情况下,默认答案是好的。

应用程序的基本名称影响许多生成的工件,我们选择“uaa”(小写)。

回答这些问题之后,JHipster将创建所有项目文件并安装NPM包依赖项(在本例中没有真正使用)。我们现在可以使用本地Maven脚本来构建和运行UAA服务:

关键信息是:Connected to the JHipster Registry config server!,这表明UAA能够自行注册,并可供其他微服务和网关发现。

2. 测试UAA服务

由于生成的UAA服务本身没有UI,因此我们必须使用直接API调用来测试它是否如预期那样工作。

在将其用于其他部分或系统之前,我们必须确保有两个功能:OAuth2令牌生成和帐户检索。

首先,让我们使用一个简单的curl命令从UAA的OAuth端点获得一个新的令牌:

这里,我们使用密码授权过程,使用两对凭据。在这个过程中,我们使用基本的HTTP身份验证来发送客户机凭证,并将它们直接编码在URL中。最终用户凭证是使用标准用户名和密码参数作为主体的一部分发送的。我们还使用一个名为“user”的用户帐户,默认情况下该帐户在测试配置文件中是可用的。

假设我们正确地提供了所有的细节,我们将得到包含访问令牌和刷新令牌的答案:

 

我们现在可以使用返回的  access_token来访问帐户资源获取相关帐户的信息,该  帐户资源在UAA服务中可用:

 注意,我们必须在访问令牌到期之前发出此命令。默认情况下,UAA服务发出的令牌有效期为5分钟,这对于生产来说是一个明智的价值。

我们可以通过编辑与正在运行的应用程序的配置文件相对应的应用程序-<profile>YML文件,修改uaa来更改有效令牌的生命期。网络客户端配置。以秒为单位的访问令牌有效性。该文件位于UAA项目的src/main/resources/config目录中。

3. 生成启用UAA的网关

既然我们确信UAA服务和服务注册表正在运行,那么让我们创建一个与之交互的生态系统。最后,我们将添加:

  • 基于Angular的前端
  • 一个微服务后端
  • 一个支持这两者的API网关

让我们从网关开始,因为它是一个与UAA协商身份验证的服务。它托管我们的前端应用程序,并将API请求路由到其他微服务。我们将在新创建的目录中使用JHipster命令行工具:

 

和以前一样,我们必须回答几个问题才能生成项目。重要的是以下内容:

  • 应用类型:  必须是“Microservices gateway/微服务网关”
  • 申请名称:这次我们将使用“gateway/网关”
  • 服务发现:选择“JHipster registry /JHipster注册表”
  • 身份验证类型: 我们必须在此处选择“Authentication with JHipster UAA server/使用JHipster UAA服务器进行身份验证”选项
  • UI框架:  让我们选择“Angular 6”

一旦JHipster生成了所有工件,我们就可以使用提供的Maven包装器脚本构建和运行网关:

将浏览器指向http://localhost:8080来访问我们的应用程序,它应显示默认生成的主页。

让我们继续登录到我们的应用程序,并导航到Account>Login菜单项。我们将使用admin/admin作为凭据,缺省情况下,JHipster将自动创建。一切进展顺利。欢迎页面将显示确认登录成功的消息:您被登录为使用“admin”!

检查L过程:首先,网关将我们的凭证发送到UAA的OAuth2令牌端点,该端点验证它们,并生成包含访问和刷新JWT令牌的响应。网关然后将这些令牌作为cookie发送回浏览器。

接下来,访问/UAA/API/account API的前端,网关再次转发到UAA。在此过程中,网关获取包含访问令牌的cookie,并使用它的值将授权头添加到请求。

如果必要,我们可以检查UAA和Gateway的日志,以详细查看所有这些过程。我们还可以通过设置org.阿帕奇。http.电线记录器级别为DEBUG。

转载于:https://www.cnblogs.com/aishangJava/p/10174330.html

相关文章:

  • BZOJ5341[Ctsc2018]暴力写挂——边分治+虚树+树形DP
  • JS变量作用域
  • android环境搭建
  • Windows10 VS2017 C++多线程传参和等待线程结束
  • ZooKeeper的安装与部署
  • Vue.js常用指令:v-on
  • 如何设计一个比特币钱包服务
  • JS 编译器都做了啥?
  • 如何判断/获取屏幕的状态(亮屏已解锁,亮屏未解锁,黑屏)
  • CSS3 animation 练习
  • 腾讯从百度挖来的AI Lab负责人张潼离职,要去阿里?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • TOP 13大最热开源微服务Java框架
  • Zk集群部署
  • 驰骋工作流引擎设计系列04 流程引擎表结构的设计
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Docker 笔记(2):Dockerfile
  • download使用浅析
  • input的行数自动增减
  • miaov-React 最佳入门
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PHP的类修饰符与访问修饰符
  • rabbitmq延迟消息示例
  • React-redux的原理以及使用
  • Redux系列x:源码分析
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • SwizzleMethod 黑魔法
  • Webpack 4 学习01(基础配置)
  • 从零搭建Koa2 Server
  • 订阅Forge Viewer所有的事件
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 解析带emoji和链接的聊天系统消息
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端之React实战:创建跨平台的项目架构
  • 入手阿里云新服务器的部署NODE
  • # 飞书APP集成平台-数字化落地
  • (007)XHTML文档之标题——h1~h6
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (poj1.3.2)1791(构造法模拟)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二)正点原子I.MX6ULL u-boot移植
  • (二十三)Flask之高频面试点
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十一)c52学习之旅-动态数码管
  • (四)JPA - JQPL 实现增删改查
  • (四)模仿学习-完成后台管理页面查询
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)http协议
  • (转)Sql Server 保留几位小数的两种做法
  • (转)大型网站的系统架构
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .bat批处理(五):遍历指定目录下资源文件并更新