我目前正在将web应用程序中的密码处理从无盐MD5更改为bcrypt。它是一个标准的JSF应用程序,运行在Glassfish 3.0.1上。使用jBCrypt使得创建和存储哈希非常容易。但是现在我不知道如何在用户登录的实际认证中使用bcrypt。因为它是JSF,所以登录是使用HttpServletRequest#login方法触发的,其余的由Java EE堆栈和Glassfish处理。
简单地将安全领域摘要算法设置为"none",然后在传递登录方法之前对密码进行散列是行不通的,因为我没有创建散列时最初使用的生成盐jBCrypt。我也考虑过提供一个自定义的安全领域实现,但是对于这样一个小的更改来说,这似乎要做很多工作。
有更简单的解决方案吗?或者已经有人实现了类似的安全领域?
实现一个登录模块就足够了,并将身份验证委托给底层领域。