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

云主机_托管服务器价格_便宜的

小七 141 0

概述:创建SAPUI5独立应用程序以在SAP云平台Cloud Foundry上部署时,可以使用Approuter组件提供无缝身份验证和授权。这个效果相当好。不过,在这样一个应用程序中,仍可以添加一些微调来改善整体用户体验。

我们最近构建了一个独立的基于SAPUI5的应用程序,供我们内部使用。应用程序架构如下所示。该应用程序部署在SAP云平台Cloud Foundry中。它由几个微服务组成,我们使用XSA Approuter的一个实例将整个过程联系在一起。SAPUI5静态内容存储在Approuter中,并由Approuter本身提供—稍后将详细介绍。

Approuter提供了一些很好的功能,将应用程序安全性集成到您的企业标识中作为其中的一部分,Approuter提供了内置的会话管理,并将用户重定向到UAA服务,以便在需要时进行身份验证。它还将代表您的用户管理OAuth2安全令牌,您只需进行最少的额外编程。简言之,使用Approuter将为您节省大量时间,将集成应用程序安全性构建到Cloud Foundry应用程序中。

我们在2019年初构建并部署了应用程序的第一个版本。我们已经用了六个多月了。我们的实际经验是,在大多数情况下,批准者都能像我们预期的那样工作。不过,淘客机器人,有一个恼人的问题:如果用户在长时间不活动后返回到应用程序的浏览器选项卡,我们确实会看到一些不太完美的用户体验,即开即用的UI5。用户将遇到不友好的、面向开发人员的错误弹出窗口。如果用户很精明,按一下浏览器的刷新按钮就可以把事情弄清楚,但我们可以做得更好。解决这一问题是我想在本文中重点关注的问题。

SAPUI5中的不活动注销

我们在这里要解决的核心问题是解决当批准者会话到期时应该发生什么。

我们基本上有三种方法可以处理这一问题:

我们添加的内容背后的核心思想是在会话结束之前进行干预并注销Approuter会话过期。

配置Approuter以支持注销

让我回顾一些配置基础知识。Approuter的行为是通过两个文件中的设置控制的:xs-应用程序.json以及部署清单.yml.

让我们穿过xs-应用程序.json文件。有到批准者应用程序"后面"所有位置的路线。在该部分中,您需要插入表示应用程序中所有适当URL的模式。

应用程序的xs-应用程序.json如你所料/odata.svc公司URL指向处理ODataAPI的微服务由批准人按需提供。需要这样一个令牌的路由被标记为"authenticationType":"xsuaa"配置指令。原来"xsuaa"是默认值,但为了清晰起见,我喜欢包含它。

事实证明,出于历史原因,云服务器租用,这个应用程序还支持RESTful API。接下来的四个路由定义了与restapi及其相关的Swagger接口相关联的url。

最后两个路由指令指定了访问静态SAPUI5内容的详细信息。我们选择将静态内容放在Approuter应用程序本身中—在组件级别,什么叫大数据云计算,这样做将UI与web服务分开,而不需要添加专门用于UI的组件应用程序。

我还为此配置文件添加了一个注销部分。logoutPage指令允许您指定当用户从应用程序显式注销时显示的静态页面logoutEndpoint指令指定要与触发注销关联的路径-简而言之,调用该URL,用户的会话将被完全中断,浏览器将被重定向到注销页面。

应用程序的Cloud Foundry部署清单.yml像这样:

批准人的清单.ymlfile

SESSION\u TIMEOUT为应用程序设置用户会话的非活动超时(以分钟为单位)具体来说,这是用户浏览器和Approuter应用程序本身之间的HTTP会话,Approuter和后端服务之间的会话通常包括提供特定于会话的JWT/OAuth2授权令牌。由Approuter自动管理。

在Approuter的当前版本中,默认会话超时为15分钟。

目的地映射xs中指定的目的地-应用程序.json

侧边栏:在清单文件中使用符号参数

这里有一个小转移:您可能注意到清单文件中有几个用双括号括起来的指令。我们正在利用此功能提取此文件中的元素,这些元素对于部署到生产、QA、,这些设置在单独的YAML文件中定义,并通过命令行替换:

我们的qa-变量yml文件看起来是这样的:

SAPUI5-定义不活动

有一个微妙的问题值得讨论:我们应该如何定义不活动?在我们的应用程序中,淘客助手下载,有许多浏览器事件可以连接到我们的应用程序中,以检测用户何时处于活动状态:web调用,甚至鼠标移动事件都是候选事件。

由于SAPUI5是一个jQuery/AJAX web应用程序,任何用户活动都会生成jQuery web服务调用。在这里,我选择挂接到jQuery调用中,作为跟踪用户的方法活动。我们就这么做吧。