<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Leiolay</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Leiolay"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Leiolay"/>
		<updated>2026-04-25T19:58:04Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:OWASP_Stinger_Version_2&amp;diff=18253</id>
		<title>Talk:OWASP Stinger Version 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:OWASP_Stinger_Version_2&amp;diff=18253"/>
				<updated>2007-04-27T22:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: Some suggestions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Hi Eric,&lt;br /&gt;
 &lt;br /&gt;
 The following classes seemed to be missing from both the jar and project download:&lt;br /&gt;
 &lt;br /&gt;
 org.owasp.stinger.actions.Sanitize&lt;br /&gt;
 org.owasp.stinger.actions.ClearCookies&lt;br /&gt;
 &lt;br /&gt;
 -[[User:Leiolay|Leiolay]] 17:50, 27 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Some suggestions ==&lt;br /&gt;
&lt;br /&gt;
 It would be nice to be able to load stinger.xml from /WEB-INF or classpath. Just like in SpringMVC. &lt;br /&gt;
 -[[User:Leiolay|Leiolay]] 18:13, 27 April 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:OWASP_Stinger_Version_2&amp;diff=18252</id>
		<title>Talk:OWASP Stinger Version 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:OWASP_Stinger_Version_2&amp;diff=18252"/>
				<updated>2007-04-27T21:50:36Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: ClassNotFoundException&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Hi Eric,&lt;br /&gt;
 &lt;br /&gt;
 The following classes seemed to be missing from both the jar and project download:&lt;br /&gt;
 &lt;br /&gt;
 org.owasp.stinger.actions.Sanitize&lt;br /&gt;
 org.owasp.stinger.actions.ClearCookies&lt;br /&gt;
 &lt;br /&gt;
 -[[User:Leiolay|Leiolay]] 17:50, 27 April 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18078</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18078"/>
				<updated>2007-04-26T17:52:20Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: /* Having hard time to get it working with Weblogic 8.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--leiolay&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 After reviewing your stacktrace, my initial response was the same as Jeff's: there is a clear() method that the MutableHttpResponse&lt;br /&gt;
 object does not override. Unfortunately, I am unable to locate this method in neither HttpServletResponse nor ServletResponse. I have,&lt;br /&gt;
 however, been working on an updated version of the OWASP CSRFGuard. This version does a much better job of overriding only&lt;br /&gt;
 the appropriate servlet methods. I would be interested if you run into the same problems with this newer version. You can grab the&lt;br /&gt;
 project here - https://www.owasp.org/index.php/Image:CSRFGuard2-RC1.tar. In the tar file, under dist, is a compiled version of the&lt;br /&gt;
 latest CSRFGuard. The following are the installation steps:&lt;br /&gt;
 &lt;br /&gt;
 1. Untar the download&lt;br /&gt;
 2. Copy ./dist/CSRFGuard-2.0.jar and ./lib/htmlparser.jar to the appropriate library location in WebLogic (./common/lib?)&lt;br /&gt;
 3. Copy ./config/CSRFGuard.xml and ./config/CSRFGuardSchema.xsd to the appropriate WEB-INF directory.&lt;br /&gt;
 4. Modify the entries in CSRFGuard.xml to contain only the pages that you wish to protect.&lt;br /&gt;
 &lt;br /&gt;
 Please keep me informed of any troubles you run into when using this version. I would find your input very valuable in deciding what&lt;br /&gt;
 needs to be addressed before releasing a final version of CSRFGuard 2.0. Hopefully your issue can be resolved with this release.&lt;br /&gt;
 &lt;br /&gt;
 -Eric Sheridan&lt;br /&gt;
&lt;br /&gt;
 Eric/Jeff,&lt;br /&gt;
 &lt;br /&gt;
 Thanks for you responses. I tried the 2.0 version of the Guard but I'm still getting the same error. In addition, another error showed&lt;br /&gt;
 up:&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
 java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream&lt;br /&gt;
 () after getWriter()&lt;br /&gt;
         at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet&lt;br /&gt;
 ResponseImpl.java:158)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doResponse(CSRFGuard.java:130)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:82)&lt;br /&gt;
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
 va:27)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
 n.run(WebAppServletContext.java:6458)&lt;br /&gt;
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
 dSubject.java:321)&lt;br /&gt;
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
 118)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
 rvletContext.java:3661)&lt;br /&gt;
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
 pl.java:2630)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
 A couple of other comments:&lt;br /&gt;
#I'm still using java 1.4, so I had to change a few things in the source to get it compile.&lt;br /&gt;
#In CSRFGuard.xml, I need to list all the pages that need to be protected. In our application, there are hundreds if not thousands of pages. It's impossible to   manually include them all. Also people will forget to do this if they add new pages.&lt;br /&gt;
 --[[User:Leiolay|Leiolay]] 14:55, 23 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
 Hi Eric, haven't heard from you, any luck on fixing the bug?&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 I've been very busy with work and other Aspect projects (see OWASP Spring of Code). After a discussion with Jeff,&lt;br /&gt;
 we've resolved the &amp;quot;IllegalStateException: response already committed&amp;quot; exception that you got with the old and&lt;br /&gt;
 new version of the CSRF Guard. I've also resolved the issue you mentioned about having to define hundreds or thousands&lt;br /&gt;
 of pages to project. Instead, you can define regular expressions instead of single pages. For example, to protect all&lt;br /&gt;
 JSP pages, you simply add something like &amp;lt;Page&amp;gt;.*.jsp&amp;lt;/Page&amp;gt;. The only remaining issue is the recent &lt;br /&gt;
&lt;br /&gt;
 '''java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream'''&lt;br /&gt;
&lt;br /&gt;
 issue that you got with the new version of CSRFGuard. Once I think I have this&lt;br /&gt;
 resolved (hopefully on Saturday), I'll upload a new version for testing.&lt;br /&gt;
 &lt;br /&gt;
 -Eric&lt;br /&gt;
&lt;br /&gt;
 Eric,&lt;br /&gt;
 &lt;br /&gt;
 Excellent! I'm excited about your fixes. Looking forward to trying them out. Thank you so much!&lt;br /&gt;
 &lt;br /&gt;
 -[[User:Leiolay|Leiolay]]&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18066</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18066"/>
				<updated>2007-04-26T14:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: /* Having hard time to get it working with Weblogic 8.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--leiolay&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 After reviewing your stacktrace, my initial response was the same as Jeff's: there is a clear() method that the MutableHttpResponse&lt;br /&gt;
 object does not override. Unfortunately, I am unable to locate this method in neither HttpServletResponse nor ServletResponse. I have,&lt;br /&gt;
 however, been working on an updated version of the OWASP CSRFGuard. This version does a much better job of overriding only&lt;br /&gt;
 the appropriate servlet methods. I would be interested if you run into the same problems with this newer version. You can grab the&lt;br /&gt;
 project here - https://www.owasp.org/index.php/Image:CSRFGuard2-RC1.tar. In the tar file, under dist, is a compiled version of the&lt;br /&gt;
 latest CSRFGuard. The following are the installation steps:&lt;br /&gt;
 &lt;br /&gt;
 1. Untar the download&lt;br /&gt;
 2. Copy ./dist/CSRFGuard-2.0.jar and ./lib/htmlparser.jar to the appropriate library location in WebLogic (./common/lib?)&lt;br /&gt;
 3. Copy ./config/CSRFGuard.xml and ./config/CSRFGuardSchema.xsd to the appropriate WEB-INF directory.&lt;br /&gt;
 4. Modify the entries in CSRFGuard.xml to contain only the pages that you wish to protect.&lt;br /&gt;
 &lt;br /&gt;
 Please keep me informed of any troubles you run into when using this version. I would find your input very valuable in deciding what&lt;br /&gt;
 needs to be addressed before releasing a final version of CSRFGuard 2.0. Hopefully your issue can be resolved with this release.&lt;br /&gt;
 &lt;br /&gt;
 -Eric Sheridan&lt;br /&gt;
&lt;br /&gt;
 Eric/Jeff,&lt;br /&gt;
 &lt;br /&gt;
 Thanks for you responses. I tried the 2.0 version of the Guard but I'm still getting the same error. In addition, another error showed&lt;br /&gt;
 up:&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
 java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream&lt;br /&gt;
 () after getWriter()&lt;br /&gt;
         at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet&lt;br /&gt;
 ResponseImpl.java:158)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doResponse(CSRFGuard.java:130)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:82)&lt;br /&gt;
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
 va:27)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
 n.run(WebAppServletContext.java:6458)&lt;br /&gt;
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
 dSubject.java:321)&lt;br /&gt;
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
 118)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
 rvletContext.java:3661)&lt;br /&gt;
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
 pl.java:2630)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
 A couple of other comments:&lt;br /&gt;
#I'm still using java 1.4, so I had to change a few things in the source to get it compile.&lt;br /&gt;
#In CSRFGuard.xml, I need to list all the pages that need to be protected. In our application, there are hundreds if not thousands of pages. It's impossible to   manually include them all. Also people will forget to do this if they add new pages.&lt;br /&gt;
 --[[User:Leiolay|Leiolay]] 14:55, 23 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
 Hi Eric, haven't heard from you, any luck on fixing the bug?&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18032</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18032"/>
				<updated>2007-04-23T18:55:25Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--leiolay&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 After reviewing your stacktrace, my initial response was the same as Jeff's: there is a clear() method that the MutableHttpResponse&lt;br /&gt;
 object does not override. Unfortunately, I am unable to locate this method in neither HttpServletResponse nor ServletResponse. I have,&lt;br /&gt;
 however, been working on an updated version of the OWASP CSRFGuard. This version does a much better job of overriding only&lt;br /&gt;
 the appropriate servlet methods. I would be interested if you run into the same problems with this newer version. You can grab the&lt;br /&gt;
 project here - https://www.owasp.org/index.php/Image:CSRFGuard2-RC1.tar. In the tar file, under dist, is a compiled version of the&lt;br /&gt;
 latest CSRFGuard. The following are the installation steps:&lt;br /&gt;
 &lt;br /&gt;
 1. Untar the download&lt;br /&gt;
 2. Copy ./dist/CSRFGuard-2.0.jar and ./lib/htmlparser.jar to the appropriate library location in WebLogic (./common/lib?)&lt;br /&gt;
 3. Copy ./config/CSRFGuard.xml and ./config/CSRFGuardSchema.xsd to the appropriate WEB-INF directory.&lt;br /&gt;
 4. Modify the entries in CSRFGuard.xml to contain only the pages that you wish to protect.&lt;br /&gt;
 &lt;br /&gt;
 Please keep me informed of any troubles you run into when using this version. I would find your input very valuable in deciding what&lt;br /&gt;
 needs to be addressed before releasing a final version of CSRFGuard 2.0. Hopefully your issue can be resolved with this release.&lt;br /&gt;
 &lt;br /&gt;
 -Eric Sheridan&lt;br /&gt;
&lt;br /&gt;
 Eric/Jeff,&lt;br /&gt;
 &lt;br /&gt;
 Thanks for you responses. I tried the 2.0 version of the Guard but I'm still getting the same error. In addition, another error showed&lt;br /&gt;
 up:&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
 java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream&lt;br /&gt;
 () after getWriter()&lt;br /&gt;
         at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet&lt;br /&gt;
 ResponseImpl.java:158)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doResponse(CSRFGuard.java:130)&lt;br /&gt;
         at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:82)&lt;br /&gt;
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
 va:27)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
 n.run(WebAppServletContext.java:6458)&lt;br /&gt;
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
 dSubject.java:321)&lt;br /&gt;
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
 118)&lt;br /&gt;
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
 rvletContext.java:3661)&lt;br /&gt;
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
 pl.java:2630)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
 A couple of other comments:&lt;br /&gt;
#I'm still using java 1.4, so I had to change a few things in the source to get it compile.&lt;br /&gt;
#In CSRFGuard.xml, I need to list all the pages that need to be protected. In our application, there are hundreds if not thousands of pages. It's impossible to   manually include them all. Also people will forget to do this if they add new pages.&lt;br /&gt;
 --[[User:Leiolay|Leiolay]] 14:55, 23 April 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18030</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18030"/>
				<updated>2007-04-23T18:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--leiolay&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 After reviewing your stacktrace, my initial response was the same as Jeff's: there is a clear() method that the MutableHttpResponse&lt;br /&gt;
 object does not override. Unfortunately, I am unable to locate this method in neither HttpServletResponse nor ServletResponse. I have,&lt;br /&gt;
 however, been working on an updated version of the OWASP CSRFGuard. This version does a much better job of overriding only&lt;br /&gt;
 the appropriate servlet methods. I would be interested if you run into the same problems with this newer version. You can grab the&lt;br /&gt;
 project here - https://www.owasp.org/index.php/Image:CSRFGuard2-RC1.tar. In the tar file, under dist, is a compiled version of the&lt;br /&gt;
 latest CSRFGuard. The following are the installation steps:&lt;br /&gt;
 &lt;br /&gt;
 1. Untar the download&lt;br /&gt;
 2. Copy ./dist/CSRFGuard-2.0.jar and ./lib/htmlparser.jar to the appropriate library location in WebLogic (./common/lib?)&lt;br /&gt;
 3. Copy ./config/CSRFGuard.xml and ./config/CSRFGuardSchema.xsd to the appropriate WEB-INF directory.&lt;br /&gt;
 4. Modify the entries in CSRFGuard.xml to contain only the pages that you wish to protect.&lt;br /&gt;
 &lt;br /&gt;
 Please keep me informed of any troubles you run into when using this version. I would find your input very valuable in deciding what&lt;br /&gt;
 needs to be addressed before releasing a final version of CSRFGuard 2.0. Hopefully your issue can be resolved with this release.&lt;br /&gt;
 &lt;br /&gt;
 -Eric Sheridan&lt;br /&gt;
&lt;br /&gt;
Eric/Jeff,&lt;br /&gt;
&lt;br /&gt;
Thanks for you responses. I tried the 2.0 version of the Guard but I'm still getting the same error. In addition, another error showed&lt;br /&gt;
up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream&lt;br /&gt;
() after getWriter()&lt;br /&gt;
        at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet&lt;br /&gt;
ResponseImpl.java:158)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doResponse(CSRFGuard.java:130)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:82)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A couple of other comments:&lt;br /&gt;
&lt;br /&gt;
#I'm still using java 1.4, so I had to change a few things in the source to get it compile.&lt;br /&gt;
#In CSRFGuard.xml, I need to list all the pages that need to be protected. In our application, there are hundreds if not thousands of pages. It's impossible to manually include them all. Also people will forget to do this if they add new pages.&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18011</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=18011"/>
				<updated>2007-04-23T16:58:43Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: /* Having hard time to get it working with Weblogic 8.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
--leiolay&lt;br /&gt;
&lt;br /&gt;
 Leiolay,&lt;br /&gt;
 &lt;br /&gt;
 After reviewing your stacktrace, my initial response was the same as Jeff's: there is a clear() method that the MutableHttpResponse&lt;br /&gt;
 object does not override. Unfortunately, I am unable to locate this method in neither HttpServletResponse nor ServletResponse. I have,&lt;br /&gt;
 however, been working on an updated version of the OWASP CSRFGuard. This version does a much better job of overriding only&lt;br /&gt;
 the appropriate servlet methods. I would be interested if you run into the same problems with this newer version. You can grab the&lt;br /&gt;
 project here - https://www.owasp.org/index.php/Image:CSRFGuard2-RC1.tar. In the tar file, under dist, is a compiled version of the&lt;br /&gt;
 latest CSRFGuard. The following are the installation steps:&lt;br /&gt;
 &lt;br /&gt;
 1. Untar the download&lt;br /&gt;
 2. Copy ./dist/CSRFGuard-2.0.jar and ./lib/htmlparser.jar to the appropriate library location in WebLogic (./common/lib?)&lt;br /&gt;
 3. Copy ./config/CSRFGuard.xml and ./config/CSRFGuardSchema.xsd to the appropriate WEB-INF directory.&lt;br /&gt;
 4. Modify the entries in CSRFGuard.xml to contain only the pages that you wish to protect.&lt;br /&gt;
 &lt;br /&gt;
 Please keep me informed of any troubles you run into when using this version. I would find your input very valuable in deciding what&lt;br /&gt;
 needs to be addressed before releasing a final version of CSRFGuard 2.0. Hopefully your issue can be resolved with this release.&lt;br /&gt;
 &lt;br /&gt;
 -Eric Sheridan&lt;br /&gt;
&lt;br /&gt;
Eric/Jeff,&lt;br /&gt;
&lt;br /&gt;
Thanks for you responses. I tried the 2.0 version of the Guard but I'm still getting the same error. In addition, another error showed&lt;br /&gt;
up:&lt;br /&gt;
&lt;br /&gt;
java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream&lt;br /&gt;
() after getWriter()&lt;br /&gt;
        at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet&lt;br /&gt;
ResponseImpl.java:158)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doResponse(CSRFGuard.java:130)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:82)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A couple of other comments:&lt;br /&gt;
&lt;br /&gt;
1. I'm still using java 1.4, so I had to change a few things in the source to get it compile.&lt;br /&gt;
2. In CSRFGuard.xml, I need to list all the pages that need to be protected. In our application, there are hundreds if not thousands of pages. It's impossible to manually include them all. Also people will forget to do this if they add new pages.&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17961</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17961"/>
				<updated>2007-04-20T22:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;br /&gt;
&lt;br /&gt;
In the decompiled JspWriterImpl.class:&lt;br /&gt;
&lt;br /&gt;
It shows:&lt;br /&gt;
&lt;br /&gt;
    public void clear()&lt;br /&gt;
        throws IOException&lt;br /&gt;
    {&lt;br /&gt;
        if(response.isCommitted())&lt;br /&gt;
            throw new IllegalStateException(&amp;quot;response already committed&amp;quot;);&lt;br /&gt;
        if(co != null)&lt;br /&gt;
            co.clearBuffer();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
--leiolay&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17960</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17960"/>
				<updated>2007-04-20T21:50:29Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 This exception occurs when your application tries to write to a response that&lt;br /&gt;
 has already been committed. In this case, we use a MutableHttpRequest, which&lt;br /&gt;
 should capture all these writes and allow us to change them later in the filter.&lt;br /&gt;
 However, there may be a few methods - like addHeader perhaps - that aren't handled&lt;br /&gt;
 in the MutableHttpRequest. This is just a guess.  Can you share what's happening&lt;br /&gt;
 in your JSP (welcome.jsp) that causes this error?&lt;br /&gt;
 --[[User:Jeff Williams|Jeff Williams]] 17:22, 20 April 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
In welcome.jsp:&lt;br /&gt;
&lt;br /&gt;
It does the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsp:forward page=&amp;quot;/foo.jsp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this line translates to the following java code by the weblogic jsp compiler:&lt;br /&gt;
&lt;br /&gt;
          if (true) { //forwarding request //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''            out.clear(); // clear current output buffer //[ /welcome.jsp; Line: 289]&lt;br /&gt;
'''&lt;br /&gt;
            String __thePage =  //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            //[ /foo.jsp; Line: 289]&lt;br /&gt;
            &amp;quot;/foo.jsp&amp;quot;; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            pageContext.forward(__thePage); //[ /welcome.jsp; Line: 289]&lt;br /&gt;
            return; //[ /welcome.jsp; Line: 289]&lt;br /&gt;
          } //[ /welcome.jsp; Line: 289]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the exception was thrown from the line highlighted above&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17956</id>
		<title>Talk:CSRF Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CSRF_Guard&amp;diff=17956"/>
				<updated>2007-04-20T19:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;Leiolay: Having hard time to get it working with Weblogic 8.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Should this be in the Countermeasure category and listed on https://www.owasp.org/index.php/Category:Countermeasure?&lt;br /&gt;
&lt;br /&gt;
 Absolutely - fixed&lt;br /&gt;
&lt;br /&gt;
== Having hard time to get it working with Weblogic 8.1 ==&lt;br /&gt;
&lt;br /&gt;
I tried it out. For some reason, I always get this following statck trace. Could you please help?&lt;br /&gt;
&lt;br /&gt;
java.lang.IllegalStateException: response already committed&lt;br /&gt;
        at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:85)&lt;br /&gt;
        at jsp_servlet.__welcome._jspService(__welcome.java:2310)&lt;br /&gt;
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run&lt;br /&gt;
(ServletStubImpl.java:996)&lt;br /&gt;
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm&lt;br /&gt;
pl.java:419)&lt;br /&gt;
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doChain(CSRFGuard.java:96)&lt;br /&gt;
        at org.owasp.csrf.CSRFGuard.doFilter(CSRFGuard.java:71)&lt;br /&gt;
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja&lt;br /&gt;
va:27)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio&lt;br /&gt;
n.run(WebAppServletContext.java:6458)&lt;br /&gt;
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate&lt;br /&gt;
dSubject.java:321)&lt;br /&gt;
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:&lt;br /&gt;
118)&lt;br /&gt;
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe&lt;br /&gt;
rvletContext.java:3661)&lt;br /&gt;
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm&lt;br /&gt;
pl.java:2630)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)&lt;br /&gt;
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)&lt;/div&gt;</summary>
		<author><name>Leiolay</name></author>	</entry>

	</feed>