我知道如何设置使用表单身份验证和使用摘要密码(例如 SHA-256)的 vanilla 容器管理的安全性。像这样的东西:
web.xml
<login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbc</realm-name>
<form-login-config>
<form-login-page>/login.jsf</form-login-page>
<form-error-page>/login-error.jsf</form-error-page>
</form-login-config>
</login-config>
登录.xhtml
<form action="j_security_check">
<p><label>
Username:<br/>
<input type="text" name="j_username" />
</label></p>
<p><label>
Password:<br/>
<input type="password" name="j_password" />
</label></p>
<p>
<button type="submit">Submit</button>
</p>
</form>
非常简单——但我真正想做的是用全局盐和用户名对密码进行加盐。是的,我知道这并不理想,但现在,我只是在构建一个概念验证。
容器(在这种情况下是 GlassFish 3)可以为我执行此操作,还是我必须编写自己的登录过滤器?我以前做过(针对 J2EE 应用程序),但我的直觉告诉我,既然我使用的是 Java EE 6,就必须有一种更严格的方法来做这件事。