我对最新的Glassfish服务器(3.1.2)上部署的多模块应用程序使用标准容器身份验证。Java EE身份验证,基本或表单AND证书身份验证
我曾经有形式认证为主体的网络模块和HTTP含REST Web服务模块基本身份验证。
现在,这两个模块,我需要能够执行证书认证,但只作为一个选项。某些客户端仍需要能够通过表单/基本身份验证进行登录。
我试图使用JSR-196以截取由反向代理转发证书认证数据。这里的问题是,在Glassfish中,似乎我需要重新实现容器提供的一些帮助,如果我使用JSR-196:在会话,SSO,甚至表单/基本身份验证中存储身份验证...这是Glassfish方式或我的,似乎,但我想要一个混合。所以,我的JSR-196模块现在需要处理证书,基本和表单身份验证以及持久性机制。看起来矫枉过正。
我试过一个比较幼稚的方法,即用形式的认证,并有我的反向代理发送身份验证数据j_security_check。它适用于第一个模块,但是太具体实现,看起来像一个黑客。
我还想象在另一模块做证书认证时,直接在应用服务器(没有反向代理)上,并重定向到一旦被认证原始模块,使用SSO胶水。但glassfish上的sso在具有不同auth类型的模块之间不起作用。
我宁愿使用标准的东西,如果可能的话优雅。另外,我希望我的应用程序使用Java EE安全性,而不是某些第三方库,无论是来自Spring还是其他任何库。
在Glassfish上实现这个选项有哪些选项?
任何人想分享为什么他们给-1? – ymajoros