【发布时间】:2019-04-18 14:09:20
【问题描述】:
我正在尝试在 weblogic 版本是 12.2.1.3 中与 SSO 搏斗。我们已将它与 OAM/OID 集成在一个由 Oracle Forms & Reports 组成的更大应用程序中。除了 Forms,我们还有各种需要从 Forms 调用的基于 servlet 的自定义应用程序。
这很好。
由于身份验证发生在 Oracle 世界中,通过 OAM 登录屏幕,到目前为止,除了从 HTTP 标头获取用户名之外,我不必在我的 Java 自定义代码中搞乱访问管理。
不好的是,有时我们需要 servlet 充当表单和报表之间的中间人。例如。我需要用报告(在服务器上)调用各种东西,转换它们并将它们发送回客户端。我知道这在设计上听起来不正确。但它仍然是遗留代码,我们需要完成这项工作 - 至少需要尝试..
以前,我们过去常常在请求之间传递 cookie。但在 11/12g OAM 中,我从 here 收集到成功会话验证所需的 cookie (OAMAuthnCookie) 在到达我的 servlet 之前已从请求中删除。这似乎确实发生了,基于我正在做的标头转储,并使用浏览器上的 F12 开发人员工具跟踪调用。
所以.. 我已经收集到我需要生成一个新的 OAMAuthnCookie,或者可以创建它并将其附加到新的 http 调用的东西.. 我只是希望专家或处理过这个问题的人来验证以下假设是正确的 - 唯一的方法是使用 OAM SDK(有点不直观,恕我直言)。
另一件事 - 我发现的许多关于 OAM SDK 的示例都处理登录表单。我不需要做用户认证,也不需要我自己和 OAM 交谈来验证资源是否受到保护。我正在处理一个已经过身份验证的请求 - 需要以某种方式从 HttpServletRequest 获取 UserSession 和用户令牌,以便生成新的 OAMAuthnCookie 以便我的下一个请求(使用例如 apache 客户端)成功。我曾经假设这不会很难做到,但现在有点难过。
感谢您的关注。
【问题讨论】:
标签: java oracle weblogic single-sign-on oam