未经许可登录的JAAS用户

时间:2017-09-21 12:25:13

标签: jsf java-ee jboss jaas

我已为我的Web应用程序配置了JAAS登录。登录在web.xml中配置,如下所示。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>application</web-resource-name>
        <url-pattern>/application/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>ROLE</role-name>
    </auth-constraint>
</security-constraint>

<security-role>
    <role-name>ROLE</role-name>
</security-role>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/WEB-INF/login.xhtml</form-login-page>
        <form-error-page>/WEB-INF/login.xhtml?failed=true</form-error-page>
    </form-login-config>
</login-config>

对于ROLE中的用户,一切都按预期工作。但是当我尝试使用不在必要ROLE内的用户访问受限资源时,仍会执行登录,显示代码为403的错误,并且用户无法执行注销(除了删除cookie或重新启动浏览器。)

当然我可以配置在web.xml中使用不同的错误页面,允许注销。

<error-page>
    <error-code>403</error-code>
    <location>/WEB-INF/error.xhtml</location>
</error-page>

但我希望的行为是,未分配ROLE的用户根本无法登录,并被重定向到具有相应错误消息的登录页面。我怎样才能做到这一点?

我不知道这些信息是否必要,但我使用的前端框架是JSF 2.1。

0 个答案:

没有答案