已认证Webfocus用户调用同服务器Spring Boot REST API的身份验证方案咨询
可用验证方案
利用WebSphere共享会话验证WF-JSESSIONID
由于Spring Boot与Webfocus部署在同一WebSphere服务器,Webfocus的会话(对应WF-JSESSIONIDCookie)存储在WebSphere的会话管理器中。Spring Boot可配置集成WebSphere分布式会话,通过HttpServletRequest获取该Cookie,调用WebSphere API查询会话有效性,并提取会话中存储的已认证用户标识(如用户名、用户ID)。需确保Webfocus在会话中存入了可识别的认证信息,且Spring Boot应用具备访问WebSphere会话存储的权限。通过Webfocus内部API做代理验证
Spring Boot调用Webfocus提供的内部认证验证接口,将收到的WF-JSESSIONID传递给Webfocus,由Webfocus判断该会话是否属于已认证用户并返回用户信息。这种方式无需直接操作WebSphere会话,依赖Webfocus的原生验证能力,更符合系统解耦原则。改造前端传递认证令牌
修改Webfocus页面的JavaScript代码,在调用Spring Boot API时,从Webfocus上下文(如页面隐藏域、全局变量)获取IDP颁发的访问令牌或Webfocus内部认证令牌,通过请求头(如Authorization: Bearer <token>)传递给Spring Boot。该方案符合现代API认证规范,但需改动前端代码,且要保障令牌传输安全(如HTTPS、过期机制)。WebSphere信任域配置
配置WebSphere的应用安全信任域,让同一服务器下的Webfocus与Spring Boot应用共享认证上下文。当携带WF-JSESSIONID的请求到达Spring Boot时,WebSphere会自动验证会话有效性,并将认证用户信息注入Spring Boot的SecurityContext。这是服务器级的便捷方案,无需大量代码改动,但需熟悉WebSphere安全配置,确保两个应用处于同一安全域。
WF-JSESSIONID的可行性说明
完全可以借助WF-JSESSIONID验证与Webfocus的认证会话,核心逻辑是利用同一WebSphere服务器的会话共享能力。只要Spring Boot能够访问Webfocus的会话数据,就能通过该Cookie判断请求是否来自已认证用户。上述方案中的1、2、4均基于此Cookie的验证思路,具体选型可根据系统配置复杂度和权限限制决定。
内容的提问来源于stack exchange,提问作者Yuriy

