云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_东方网站建设_代金券

小七 141 0

大带宽_6.2京东购物如何云闪付_免费1年

最近我们开始了我们的第一个capnodejs项目。最初我们使用的是sapwebide,但遇到了一个问题,即我们无法通过身份验证快速测试我们的服务。我们总是要先部署服务,大数据行业前景,这需要很多时间。

所以我们决定将我们的开发移到本地,并开始使用visualstudio代码进行CAP开发。为了测试我们的服务,我们想使用我们的数据,我们的Cloud foundry服务的目的地和授权。

在这篇博文中,大数据产品,我将介绍如何在Cloud foundry上使用XSUAA服务,以便能够在本地环境中使用身份验证。

为了能够测试我将在此处介绍的内容,您必须安装一些工具…

Cloud foundry cli

此命令行工具是能够从您的cloud foundry帐户获取信息。请在此处查找下载和安装信息:

https://docs.cloudfoundry.org/cf-cli/install-go-cli.html

SAP Cloud MTA构建工具

此命令行工具从MTA项目的工件构建多目标应用程序存档文件。

因为此工具使用makefile,数据呈现,Windows用户应首先安装Chocooley和GNU Make.

https://chocolatey.org/install

https://chocolatey.org/packages/make

安装make后,您可以安装MTA构建工具:

此处的详细信息:

https://sap.github.io/cloud-mta-build-tool/

通过本文,您可以使用我在github上的示例项目。您只需在试用帐户上部署此示例并进行测试即可。

https://github.com/jowavp/SAP-CAPM-Nodejs-authorization-example

将项目克隆到您的PC并尝试将其部署到您的cloud foundry帐户。

在您的命令中,企业信息管理软件,您必须登录到您的cloud foundry帐户。只需在shell中输入"cf login"并提供正确的信息

就可以部署项目了!只需运行

这个命令就可以建立MTA存档并在CloudFoundry上开始部署。喝杯咖啡的时间,这可能需要一些时间

如果部署了项目,您可以通过打开我们项目中approuter模块的url来测试它。要获取此url,只需运行"cf apps"

您将看到一个在您的cloud foundry环境中运行的所有应用程序的表。最后一列是url,如果您在浏览器中打开此url,审批者会将您路由到服务。

这应该是响应:

让我们在本地环境中运行此程序。要知道哪个用户登录了,我们需要在服务中注入身份验证令牌(在cloudfoundry中,这是JWT令牌)。注入此令牌由批准者完成。批准者将从uaa服务获取令牌,并将其添加到服务请求的授权头中。

以最小的努力实现这一点的秘诀是使用默认值-服务.json违约-环境.json文件夹。这些文件包含在.gitignore文件中,因为它们包含您不想与世界共享的秘密。

服务

服务的源文件位于srv文件夹中。当你打开门的时候服务.cds您可以看到:

这里的重要代码是@(需要:'authenticated-user'),这将只允许经过身份验证的用户访问服务

在项目的根目录中打开shell并安装所有npm包

在安装nod模块之后,我们使用以下命令启动服务:

这将在本地启动服务https://localhost:4004

如果我们遵循此链接,我们将得到403响应"禁止:

这是因为我们已使用@(要求:'authenticated-user')

对CDS服务进行了批注。请保持此服务运行,不要关闭shell。

打开一个用于以下步骤的新shell窗口,您将在其中向服务中注入JWT令牌。如前所述,这是由approuter完成的。

approuter

approuter配置在项目的"approuter"文件夹中。xs型-应用程序.json

我们已将authenticationMethod设置为"route",因此我们决定在每个路由中使用哪种身份验证类型。只有一个路由将所有请求代理到srvèu api目的地,并使用xsuaa进行身份验证mta.yaml公司此模块的文件位于项目的根文件夹中。

在Cloud Foundry中,此Approver模块需要2个服务:

CapmaAuthorization uaa服务(即uaa服务)srv\u api目的地(由我们的capmaAuthorization srv模块提供)

在srv\u api目的地中,我们将forwardAuthToken设置为true。这将把JWT令牌从approuter转发到目的地。

如果我们想在本地运行这个approuter模块,我们必须为这个模块安装节点模块。进入approuter目录

安装节点模块

运行approuter

这将失败,因为approuter无法找到目标srv\U api。当您将此应用程序部署到cloud foundry时,审批者将找到srv\u api目标,因为它是在中定义的mta.yaml公司文件。

我们必须为本地环境定义此目的地。创建默认值-环境.json文件在approuter文件夹中。

这将创建目标,就像我们在mta.yaml公司文件,但这将指向:4004. 这是我们的服务正在运行的地址。

让我们尝试再次启动approuter…

这将再次失败,因为您需要一个uaa服务来验证您自己。

我们可以重用CF帐户的验证服务。让我们首先搜索此服务所需的凭据。

获取Approver应用程序的环境变量

我们将只关注系统中提供的参数。在这里我们看到一个服务xsuaa。复制凭证中的值。

创建默认值-服务.json文件在approuter文件夹中,我们将在其中设置UAA服务的凭据。

这是默认的内容-服务.json.