自定义错误页面(401)导致“必须在调用activate()之前调用associate()”

时间:2018-11-08 16:46:29

标签: java security web.xml weblogic12c custom-error-pages

我正在使用JSF / Primefaces开发Javaee应用程序。

我需要保护我的申请。我这样做的是:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>APP</web-resource-name>
            <url-pattern>*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>MYROLE desc</description>
            <role-name>MYROLEAccess</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
<login-config>
   <auth-method>BASIC</auth-method>
</login-config>

但是,当我为错误401定义自定义错误页面时

<error-page>
   <error-code>401</error-code>
   <location>/error/401.xhtml</location>
</error-page>

我知道了

   Problem occurred while serving the error page.
    java.lang.IllegalStateException: Must call associate() before calling activate()
        at org.jboss.weld.context.AbstractConversationContext.activate(AbstractConversationContext.java:196)
        at org.jboss.weld.jsf.WeldPhaseListener.activateConversations(WeldPhaseListener.java:108)
        at org.jboss.weld.jsf.WeldPhaseListener.beforePhase(WeldPhaseListener.java:85)
        at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
        Truncated. see log file for complete stacktrace

`

,浏览器显示HTTP ERROR 500。

我正在使用weblogic 12.1.3和Java 7。

我尝试使用weblogic 12.2.x和Java 8并成功运行。 怎么了 你能帮助我吗?如果我没有映射错误,它将要求提供凭据,否则它将立即进入Error-500。

0 个答案:

没有答案