任何尝试访问我的 webapp A 上的某些安全资源的用户都需要通过 webapp B 进行身份验证。B 可以访问用户凭据密码等,我想知道解决此问题的正确方法。
一种替代方法是使用过滤器保护我的安全页面。如果未经身份验证的用户从 A 访问 A 安全资源,则过滤器捕获请求并将浏览器重定向到 B 的登录页面。
B 将用户登录并将浏览器重定向到 A 服务器上的安全页面,以及一些 B 的会话 id 和一些指示用户已登录的令牌。
过滤器捕获从 B 到 A 的重定向,从 B 的请求头中提取身份验证令牌信息,并将用户记录到 A 的会话中。
来自浏览器的所有后续请求都将传递 B 设置的令牌。过滤器看到此令牌并认为用户已登录。
这听起来很理智还是我错过了大事?
另外- servletfilter 是完成此流程的最佳方式吗?web.xml 中的声明性安全性如何?如何使用声明性安全性完成相同的流程?