<div dir="ltr"><div><div><div><div><div><div><div><div>Hi,<br><br></div>I did a bit more investigation and I believe the following code change should be made to Keycloak to handle this scenario:<br><br></div>In FilterSessionStore.java<br><br></div>we need to change the getDateHeader() method to (after cleanup of comments of course):<br><br><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Courier New&quot;;font-size:9pt"><span style="color:rgb(128,128,0)">@Override<br></span><span style="color:rgb(0,0,128);font-weight:bold">public long </span>getDateHeader(String name) {<br>   <span style="color:rgb(0,0,128);font-weight:bold">if </span>(!<span style="color:rgb(102,14,122);font-weight:bold">needRequestRestore</span>) <span style="color:rgb(0,0,128);font-weight:bold">return super</span>.getDateHeader(name);<br>   <span style="color:rgb(128,128,128);font-style:italic">/*throw new RuntimeException(&quot;This method is not supported in a restored authenticated request&quot;);*/<br></span><span style="color:rgb(128,128,128);font-style:italic">    </span><span style="color:rgb(0,0,128);font-weight:bold">return </span>-<span style="color:rgb(0,0,255)">1</span>; <span style="color:rgb(128,128,128);font-style:italic">//<a href="http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html">http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html</a> specifies that if it isn&#39;t present, return -1.<br></span>}</pre><br></div>This is because of the JEE spec that says that if an implementation cannot get the Date Header, it should return -1<br><br><a href="http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html#getDateHeader-java.lang.String-">http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html#getDateHeader-java.lang.String-</a> <br><br></div>Could someone look into this please?<br><br></div>Thanks,<br></div>Regards,<br></div>Akshay <br><div><div><div><div><div><div><div><br><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 7, 2016 at 9:08 AM, Akshay Kini <span dir="ltr">&lt;<a href="mailto:kga.official@gmail.com" target="_blank">kga.official@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi Folks,<br><br></div>We have configured Keycloak as an SP via filter.<br></div>Keycloak Version 1.7.0<br><br></div>We get this exception:<br>ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/].[AppName]] Servlet.service() for servlet NasDefault threw exception: java.lang.RuntimeException: This method is not supported in a restored authenticated request<br>    at org.keycloak.adapters.servlet.FilterSessionStore$1.getDateHeader(FilterSessionStore.java:178) [:1.7.0.CR1]<br>    at org.apache.catalina.servlets.DefaultServlet.checkIfModifiedSince(DefaultServlet.java:1731) [:]<br>    at org.apache.catalina.servlets.DefaultServlet.checkIfHeaders(DefaultServlet.java:608) [:]<br>    at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:714) [:]<br>    at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:368) [:]<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [:1.0.0.Final]<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]<br>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:]<br>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:]<br></div>... (trimmed)<br><div>...<br>    at org.keycloak.adapters.saml.servlet.SamlFilter.doFilter(SamlFilter.java:125) [:1.7.0.CR1]<br>...(trimmed)<br>...<br><div>etc.<br></div><div><div><div><br></div>Any ideas on what this error means?<br><br></div><div></div><div>Thanks,<br></div><div>Regards,<br></div><div>Akshay<br></div><div><div><br></div></div></div></div></div>
</blockquote></div><br></div></div></div></div></div></div></div></div></div></div></div>