Я знаю, как настроить управляемую контейнером безопасность, которая использует аутентификацию на основе форм и использует переваренные пароли (скажем, SHA-256). Примерно так:
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>
login.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.