我正在使用JDBC Realms身份验证在Glassfish 3.1.2.2上运行JSF应用程序。
我想知道是否有无论如何,我可以禁用登录弹出窗口,每当有人试图访问一个受限制的页面,而不是登录,而是引发错误401(自动重定向到我的页面的登录页面)的UX的一致性。
你必须将你的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>