0

我们在 SAP Netweaver 7.3 上使用自定义持久层设置了 Orbeon 4.0 beta 3。

考虑到这一点,这一层是在 Netweaver 上创建的:http : //wiki.orbeon.com/forms/doc/developer-guide/form-runner/persistence-api存储表单和数据。通过 SAP HTTPDestination 连接到后端。

只要在 web.xml 等中关闭身份验证,此设置就可以工作。

下一步是在考虑 SSO 的情况下启用此功能。以便使用相同的 SSO 票证调用持久层,以启用将用户上下文传递到 SAP 后端。

脚步:

  1. 使用适当的 SAP 角色和登录堆栈(票证)在 orbeon web.xml 和 web-j2ee-engine 中启用安全性
  2. 在持久层上启用安全性
  3. 设置 orbeon 以传递 MYSAPSSO2 cookie(属性 as="xs:string" name="oxf.http.forward-cookies" value="MYSAPSSO2"/>)

查看浏览器窗口,我看到了 JSESSIONID 和 MYSAPSSO2 cookie。这是由我在 Orbeon 前面制作的用于读取 cookie 的 java 过滤器支持的。Orbeon 前面的这个过滤器循环遍历 Servlet 请求的 Cookie[] 数组。

我有 3 条日志记录,引起我注意的是第一个日志记录的 JSESSION 看起来像这样

Cookie: JSESSIONID   0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAPox1Z6aY-RvYBtiK-2U5GLmAh

以下记录确实看起来像这样:

Cookie: JSESSIONID   0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAP

所以第一个问题是为什么要修剪 JSESSIONID?

查看 percistancy 层的日志,此类显示错误:

com.sap.engine.services.security.authentication.loginmodule.ticket
Base64 Encoded Ticket String: 0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAP

在我看来,SAP 可以处理这个较短的 JSESSIONID。

通过浏览器测试:

  1. 打开 Orbeon 表单网址
  2. 通过显示的登录页面登录 SAP
  3. 打开/rest/test(持久层的url)看看是否要重新登录

打开时无需登录,登录时/rest/test没有错误 com.sap.engine.services.security.authentication.loginmodule.ticket

4

0 回答 0