我有一个 JASPIC 身份验证模块,它在 GlassFish、WildFly 和 WebLogic 上运行得非常好。
现在我们有一个使用 WebSphere 8.5 的新客户,我无法让 auth 模块在那里正常运行。
问题是 WebSphere 不接受 auth 模块放入 CallerPrincipalCallback 中的用户名。我们其他支持的服务器只接受这一点,但 WebSphere 出于某种原因认为它需要执行一些额外的检查。
在调查这个问题后,我偶然发现了这个问题:https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014937852
这准确地描述了我的问题,但那里没有给出解决方案。
我如何才能让 WebSphere 只处理 CallerPrincipalHandler 并像所有其他服务器一样接受任何用户名?
归因于 WebSphere 8.5、WRT JASPIC CallerPrincipalCallback 处理的行为与 JASPIC 规范不兼容。
CallerPrincipalCallback(s) 必须能够支持用户注册表的情况
集成在 SAM 中,包括为了提供用户组成员资格。
对于基于密码的验证的特殊情况,SAM 可以调用容器提供的CallbackHandler 来处理PasswordValidationCallback;在这种情况下,如果与容器的 CallbackHandler 集成的用户注册表中不存在用户名和/或密码组合,CallbackHandler 将返回失败结果。在这种情况下,SAM 将返回失败(或继续)的身份验证结果,并且不会调用 CallbackHandler 来处理 CallerPrincipalCallback。
HTH,
罗恩·蒙齐洛
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)