我想我对 WebLogic 的AuthenticationProviders
.
在阅读 JAAS 时,我想我已经掌握了如何使用 aLoginContext
来执行登录。在LoginContext
上拿起LoginModule
从JAAS配置文件和JAAS选项。通过定义 some 的实例CallbackHandler
,您可以传递用户凭据。调用后LoginContext.login()
,使用关联的LoginModule
.
在浏览了 Oracle 上的文档后AuthorizationProviders
,大部分内容看起来非常简单。AnAuthenticationProvider
利用 JAAS 执行登录。看起来像AuthenticationProvider
一个LoginContext
内部管理一个。
我很难掌握/发现的是 WebLogic 如何管理LoginContext
以及CallbackHandler
最终传递给LoginModule.initialize
方法的 。
该应用程序:
在 WebLogic 11g (10.3.6) 上运行的 Java Web 应用程序。
尝试使用用户名和密码进行身份验证,而无需表单登录。
目前,该应用程序使用表单登录并使用“j_security_check”操作提交。有一个自定义AuthenticationProvider
,LoginModule
它处理登录并处理表单中提交的用户名和密码。
我假设 WebLogic 可以在内部处理“j_security_check”操作,并且知道如何将表单输入字段映射到CallbackHandler
传递给自定义LoginModule
.
我正在尝试创建第二个登录过程,该过程涉及从 HTTP 请求标头中提取凭据(用户名/密码)。当前使用 servlet 过滤器提取凭据。以一种或另一种方式,我想将这些凭据传递给LoginModule
表单登录已经存在的凭据。
我想执行以下操作之一:
直接从标题中获取凭据并将它们传递给AuthenticationProvider
(通过一些自定义AuthenticationProvider
实现和/或配置)
使用 servlet 过滤器提取标头凭据并手动将它们传递到AuthenticationProvider
.
我该怎么做才能将标头凭据传递给LoginModule
?
是否有AuthenticationProvider
可以从标题中提取用户名和密码的预定义?你能描述一下从请求到登录的流程吗?
有什么方法可以访问CallbackHandler
或LoginContext
使用的AuthenticationProvider
?这样我就可以将凭据传递给AuthenticationProvider
自己。
WebLogic 如何知道从何处获取用户凭据以及如何将它们绑定到特定的凭据AuthenticationProvider
?
我很可能在此过程中遗漏了一些关键概念,因此请随时将我提到的任何内容放在正确的轨道上。
谢谢!
慕斯王
相关分类