Maybe trying setting struts.handle.exception to false.

2014-02-17 14:58 GMT+01:00 Christoph Nenning <christoph.nenn...@lex-com.net>:
> Instead of response.sendError() you can try to use a struts http header
> result:
>
>
> http://struts.apache.org/development/2.x/docs/httpheader-result.html
>
>
> hope that helps
>
>
> Regards,
> Christoph
>
>
>>
>> Hello,
>>
>> I try to use/configure my own error pages for my struts 2 Application
>> (struts version: 2.3.15.3, Apache Tomcat 6.0).
>> I configure the two error pages for the status codes 403 (not
>> authenticted) and 404 (page not avaiable) in the web.xml (see below) and
>
>> place the desired pages in the approprate directory of the
> web-application.
>>
>> The code 403 will be explicity set by the business logic (check for
>> authentication) using the sendError method of HttpServletResponse:
>>
>> protected void handleNotAuthorized(HttpServletRequest request,
>> HttpServletResponse response )
>>                 throws ServletException, IOException
>> {
>>      /* some Code to check authentication */
>>       if (testAuth){
>>              logger.info("Authorization failed. Show 403 page!");
>>              response.sendError(HttpServletResponse.SC_FORBIDDEN);
>>        }
>> }
>>
>> Here a the relevant experpt of my web.xml:
>> ----------------------------------------------------------------------
>>      <filter>
>>          <filter-name>struts-prepare</filter-name>
>> <filter-
>> class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</
>> filter-class>
>>
>>      </filter>
>>
>>      <filter>
>>          <filter-name>sitemesh</filter-name>
>> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</
>> filter-class>
>>
>>      </filter>
>>
>>      <filter>
>>          <filter-name>struts-execute</filter-name>
>> <filter-
>> class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</
>> filter-class>
>>
>>      </filter>
>>
>>     <filter-mapping>
>>          <filter-name>struts-prepare</filter-name>
>>          <url-pattern>/*</url-pattern>
>>          <dispatcher>REQUEST</dispatcher>
>>          <dispatcher>FORWARD</dispatcher>
>>          <dispatcher>INCLUDE</dispatcher>
>>          <dispatcher>ERROR</dispatcher>
>>      </filter-mapping>
>>
>>      <filter-mapping>
>>          <filter-name>sitemesh</filter-name>
>>          <url-pattern>*.html</url-pattern>
>>      </filter-mapping>
>>
>>      <filter-mapping>
>>          <filter-name>struts-execute</filter-name>
>>         <url-pattern>/*</url-pattern>
>>         <dispatcher>REQUEST</dispatcher>
>>         <dispatcher>FORWARD</dispatcher>
>>         <dispatcher>INCLUDE</dispatcher>
>>         <dispatcher>ERROR</dispatcher>
>>      </filter-mapping>
>>
>>      <error-page>
>>          <error-code>403</error-code>
>>          <location>/403.jsp</location>
>>      </error-page>
>>      <error-page>
>>          <error-code>404</error-code>
>>          <location>/404.jsp</location>
>>      </error-page>
>> ------------------------------------------------
>>
>> For 404 everything works fine: If I request a non-existing page, my
>> configured error page will be displayed.
>>
>> But when I try to request a non-authenticated page (status 403), the
>> HTTP-Response has the correct status code 403 but my configured error
>> page will not be displayed. Instead the browser shows a default page
>> (empty page in case of firefox).
>>
>> Has anyone an idea, how to solve the problem?
>>
>> Thanks,
>> Thomas
>>
>
> This Email was scanned by Sophos Anti Virus

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to