我正在使用JDBC Realms身份验证在Glassfish 3.1.2.2上运行JSF应用程序。
我想知道无论如何我都可以禁用每当有人试图访问受限页面而未登录时出现的登录弹出窗口,而是引发错误401(自动重定向到我页面的登录页面)以保持一致性用户体验。
答案 0 :(得分:1)
您必须将web.xml安全性约束login-config auth-method设置为FORM login:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>You can but you are not forced to supply a realm here</realm-name>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/access-forbidden.xhtml</form-error-page>
</form-login-config>
</login-config>
保护您的网页:
<security-constraint>
<web-resource-collection>
<url-pattern>/index.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Manager</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>Manager</role-name>
</security-role>