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

云数据库_便宜的服务器_怎么样

小七 141 0

在本文中,我们将看到如何在sapcloudfoundry环境中为Spring启动应用程序配置OAuth2授权。但是在这样做之前,让我们先熟悉一下这个实现中涉及的几个重要概念。

简介

OAuth2–是一个授权框架。它不是一个身份验证协议(Ref–身份验证vs授权)。身份验证实际上是由IdP执行的。在我们的例子(SAP CF)中,它是SAP ID服务(默认)。

JWT–JWT代表JSON Web Tokens,这是安全地表示双方索赔的标准。OAuth2使用JWT令牌作为传递授权信息的手段。

XSUAA–XSUAA是SCP-CF上可用的服务,用于向用户提供角色、组和角色集合。它将与SAP ID服务一起使用,大数据专业怎么样,以授权用户访问我们的api。

Approuter–Approuter是SAP提供的NodeJS应用程序。它形成了所有应用程序(后端和UI)的单一入口点。此服务简化了身份验证和授权流程。在内部,该服务负责调用IdP和XSUAA服务来验证用户请求。作为最终用户,您只需调用部署的approuter应用程序的URL,然后该URL将依次导航到身份验证端点或直接导航到资源(如果已通过身份验证)。

在SAP CF中发生的身份验证流程如下–

让我们现在设置应用程序。

开发

此应用程序中使用的代码示例blog可以在这里找到–GitHub

为了演示XSUAA服务的用法,我们将创建一个示例应用程序,目标如下

我们将创建一个电影预订服务,类似于BookMyShow这样的应用程序。在我们的应用程序中,我们将有两个角色-经理和员工。经理将负责创建、更新和删除电影列表,物联网工程是什么,而员工将负责为现有电影预订电影票。员工不得创建、更新或删除电影。他们只能读取已经存在的电影信息。不过,经理就像一个超级管理员,可以访问员工的角色。

现在在这个范围内,让我们开始创建应用程序。

1。在SCP上创建XSUAA实例

在SCP上创建一个名为spring XSUAA cf uaa的XSUAA服务。在"指定参数"部分指定以下代码。下面的代码描述了我们定义的两个作用域-雇员和经理。我们将创建同名的角色模板。

xs-安全.json–

控制器–控制器逻辑可在此处找到。MovieControllerEmployee和MovieControllerManager分别是员工和经理的两个控制器。Repository–可以在这里找到存储库逻辑。模型–可以在此处找到电影文档的模型定义。它描述了一个文档,该文档具有诸如–name、description、airing date和total seats available之类的属性。Config–设置OAuth功能所需的配置可以在这里找到。此文件用于设置如何访问我们的应用程序URL。AntMatcher用于指定我们提供给API的访问类型。antMatchers("/manager/*").hasAuthority("manager")=这限制了所有以manager开头的API只能由拥有manager角色的人访问。antMatchers("/employee/*").hasAuthority("employee")=这限制了所有以employee开头的API只能由拥有employee角色的人访问。antMatchers("/local/*").permitAll()=用于提供对本地令牌生成端点的访问。稍后再谈。注意:我们使用云安全xsuaa集成库来处理OAuth。LocalEnvironment–由于我们已经用相关的作用域保护了配置文件中的端点,因此在本地开发时如果不提供适当的令牌,就不可能访问它们。为了解决这个问题,云安全xsuaa集成库提供了实用函数来本地生成这个令牌。代码可以在这里找到。这两个类是–MockEnvironmentProcessor–这在本地开发时提供了类似XSUAA服务器的功能。它将为本地开发生成和验证访问令牌。这决不能用于生产。为了防止它在云中被意外激活,自助建站服务,我们使用了一个名为–uaamock的配置文件来保护它。每当应用程序在本地使用此配置文件运行时,它都会被激活。但是当我们把最后一个项目推到云端时,应该停用这个概要文件。LocalTokenGenerator–这是我创建的一个helper控制器类,人工智能本科,用于在开发中获取访问令牌。代码是不言自明的。我为经理和员工提供了在开发过程中不受限制的访问权限。此控制器也仅在使用profile–uaamock运行时可用。

有关可用端点以及如何访问它们的详细信息,请参阅自述文件。

3。AppRouter

在本节中,超级淘客,我们将设置应用程序路由器来处理所有传入的请求。

创建一个包.json包含以下内容的文件–

在文件夹中运行npm i以安装所有依赖项。

创建另一个名为xs的文件-应用程序.json–

这定义了我们在c

loud.xsuaa前缀需要使用。示例–