是否可以使用密码腌制的容器管理身份validation?

我知道如何设置使用表单身份validation并使用消化密码(例如,SHA-256)的vanilla容器管理安全性。 像这样的东西:

web.xml中

 FORM jdbc  /login.jsf /login-error.jsf   

login.xhtml

 

非常简单 – 但我真正希望能够做的是用全局盐和用户名加密密码。 是的,我知道这不是理想的,但现在,我只是在构建一个概念validation。

容器(GlassFish 3,在这种情况下)可以为我做这个,还是我必须编写自己的登录filter ? 我之前已经完成了(对于J2EE应用程序),但我的直觉告诉我,现在我必须采用更紧凑的方式来使用Java EE 6。

我觉得你正在寻找一种快速(可能是脏的)方式来修改内置身份validation提供程序。

正确的方法是为新的JASPIC API( JSR-196 )实现自己的Java身份validation服务提供程序。 它更费力,但是这种方法允许您以您喜欢的方式滚动实现,并且它应该与任何Java EE 6应用程序服务器兼容。

对于使用密码salting的基本身份validation方案,实现此类提供程序应该非常简单。 您将不得不考虑管理用户和密码,但一种解决方案可能是让您的提供商重新使用Glassfish身份validation领域中定义的用户,这样您只需自己管理自定义盐渍密码。

有一个很好的WebSphere教程,你应该能够在这里适应Glassfish。