Hi, by mentionning the servlet adapter, you mean the WAR configured using web.xml (server side) ? or the client servlet adapter ?<div><br></div><div>In our configuration we have a REST API prtoected using the WAR wildfly adapter (ensuring EJB auth propagation) and a JS client.<br><div><br></div><div>I tried using the configuration of cookie token store (<a id="stateless-token-store"><pre class="" style="display:inline!important">&quot;token-store&quot;: &quot;cookie&quot;</pre></a>) in the wildfly adapter (server side) but no cookie is set in my HTML5/JS client and it seem no cookie is catched by the wildfly adapter... </div><div>Did I missed something ?</div><div><br></div><div>Best regards, Jérôme.</div><div><br><div class="gmail_quote">Le Mon Dec 22 2014 at 16:24:58, Bill Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt; a écrit :</div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Servlet adapter already does this.<br>
<br>
* 1.0.x Keycloak attaches the token to the Http Session.<br>
* 1.1 Beta+ Keycloak adapter has an option to store the token in a<br>
cookie instead of the HttpSession.<br>
<br>
On 12/18/2014 12:07 PM, Jérôme Blanchard wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; Is it possible to configure the servlet adapter to check presence of a<br>
&gt; bearer token in a cookie instead of in a header ?<br>
&gt; This question is about the download file usecase. If the bearer token<br>
&gt; will be placed in a cookie by the javascript client at the same time<br>
&gt; settnig the header, his will ensure that this cookie will be sent by the<br>
&gt; navigator in the case of a download file or a &lt;img&gt; tag that would<br>
&gt; happen outside of a XHR.<br>
&gt;<br>
&gt; Thanks, Best Regards, Jérôme.<br>
&gt;<br>
&gt; Le Wed Dec 17 2014 at 18:12:35, Jérôme Blanchard &lt;<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a><br>
&gt; &lt;mailto:<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a>&gt;&gt; a écrit :<br>
&gt;<br>
&gt;     Hi Stian,<br>
&gt;<br>
&gt;     Thanks for your precisions, we have choose to implement the solution<br>
&gt;     of a time based password.<br>
&gt;     Using a ServletFilter and the Servlet 3.0 HttpRequest.login()<br>
&gt;     feature we&#39;re able to intercept token from query parameter and<br>
&gt;     propagate it to the JAAS stack. A dedicated LoginModule validate<br>
&gt;     this token to enforce principal in the EJB SecurityContext and,<br>
&gt;     according to this, our custom authorisation system is used ASIS<br>
&gt;     without the need to create a hook in the download operation.<br>
&gt;     This solution give the advantage to not interfer with the classic<br>
&gt;     OAuth authentication in case of using a XHR Header nor a RESTClient<br>
&gt;     that programmatically include the bearer token in the request header.<br>
&gt;<br>
&gt;     Thanks a lot for your support, Best Regards, Jérôme.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     Le Wed Dec 17 2014 at 09:05:22, Stian Thorgersen &lt;<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a><br>
&gt;     &lt;mailto:<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a>&gt;&gt; a écrit :<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;         ----- Original Message -----<br>
&gt;          &gt; From: &quot;Jérôme Blanchard&quot; &lt;<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a><br>
&gt;         &lt;mailto:<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a>&gt;&gt;<br>
&gt;          &gt; To: &quot;Stian Thorgersen&quot; &lt;<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a><br>
&gt;         &lt;mailto:<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a>&gt;&gt;<br>
&gt;          &gt; Cc: <a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
&gt;         &lt;mailto:<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.<u></u>j<u></u>boss.org</a>&gt;<br>
&gt;          &gt; Sent: Tuesday, 16 December, 2014 5:51:37 PM<br>
&gt;          &gt; Subject: Re: [keycloak-user] HTML5/JS and download URL.<br>
&gt;          &gt;<br>
&gt;          &gt; Hi,<br>
&gt;          &gt;<br>
&gt;          &gt; Thank you for your answer. Sorry for my lake of knowledge in<br>
&gt;         OAuth but<br>
&gt;          &gt; speaking about generating a temporary token to include in the<br>
&gt;         link, what<br>
&gt;          &gt; kind of token do you mean and what is the best way to do that<br>
&gt;         with Keycloak.<br>
&gt;<br>
&gt;         We don&#39;t have any support for this at the moment so you would<br>
&gt;         have to make it yourself. With regards to token all I mean is a<br>
&gt;         something temporary that allows the server to verify the user<br>
&gt;         has permissions to download the file.<br>
&gt;<br>
&gt;         For example the token could be the base64 encoded signature<br>
&gt;         (hmac, rsa or whatever you&#39;d like) of userid,<br>
&gt;         timestamp/expiration and file-url. That way the server can<br>
&gt;         simply verify the signature on the server-side when the user is<br>
&gt;         trying to download the file and check that it matches.<br>
&gt;<br>
&gt;          &gt;<br>
&gt;          &gt; Best regards, Jérôme.<br>
&gt;          &gt;<br>
&gt;          &gt; 2014-12-15 16:49 GMT+01:00 Stian Thorgersen &lt;<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a><br>
&gt;         &lt;mailto:<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a>&gt;&gt;:<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt; ----- Original Message -----<br>
&gt;          &gt; &gt; &gt; From: &quot;Jérôme Blanchard&quot; &lt;<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a><br>
&gt;         &lt;mailto:<a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a>&gt;&gt;<br>
&gt;          &gt; &gt; &gt; To: <a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
&gt;         &lt;mailto:<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.<u></u>j<u></u>boss.org</a>&gt;<br>
&gt;          &gt; &gt; &gt; Sent: Monday, 15 December, 2014 3:13:06 PM<br>
&gt;          &gt; &gt; &gt; Subject: [keycloak-user] HTML5/JS and download URL.<br>
&gt;          &gt; &gt; &gt;<br>
&gt;          &gt; &gt; &gt; Hi all,<br>
&gt;          &gt; &gt; &gt; We have a use case where an HTML5/Angular application is<br>
&gt;         calling a REST<br>
&gt;          &gt; &gt; &gt; interface using keycloak for authentication SSO.<br>
&gt;         Everything works fine<br>
&gt;          &gt; &gt; until<br>
&gt;          &gt; &gt; &gt; we need to download files or preview images (using &lt;img&gt;<br>
&gt;         tag). In both<br>
&gt;          &gt; &gt; case,<br>
&gt;          &gt; &gt; &gt; this is the browser which perform the request on the REST<br>
&gt;         url and,<br>
&gt;          &gt; &gt; because<br>
&gt;          &gt; &gt; &gt; of a specific XHR authentication putting the bearer token<br>
&gt;         in the<br>
&gt;          &gt; &gt; headers, a<br>
&gt;          &gt; &gt; &gt; &#39;classic&#39; browser request for downloading a file result in an<br>
&gt;          &gt; &gt; &gt; UNauthenticated request because of unexisting bearer token.<br>
&gt;          &gt; &gt; &gt;<br>
&gt;          &gt; &gt; &gt; We&#39;re minding if there is a best practice to handle this<br>
&gt;         case. We plan to<br>
&gt;          &gt; &gt; &gt; include a dedicated token as a download request parameter<br>
&gt;         and to check<br>
&gt;          &gt; &gt; this<br>
&gt;          &gt; &gt; &gt; particular query paramter programmatically in the<br>
&gt;         /download JAX-RS<br>
&gt;          &gt; &gt; &gt; operation. What kind of token should have to put in the<br>
&gt;         query and is<br>
&gt;          &gt; &gt; there<br>
&gt;          &gt; &gt; &gt; an already existing mechanism to catch such token in<br>
&gt;         jax-rs server-side<br>
&gt;          &gt; &gt; &gt; operations nor programmatically ?<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt; We actually had the same issue in our admin console as we<br>
&gt;         provide a<br>
&gt;          &gt; &gt; download option for the application config. AFAIK there&#39;s<br>
&gt;         two solutions:<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt; * Generate a temporary token - basically what you&#39;re<br>
&gt;         suggesting. There&#39;s<br>
&gt;          &gt; &gt; two ways you can do this, always generate one and add it to<br>
&gt;         the link,<br>
&gt;          &gt; &gt; second is to use a redirect that only generates the token<br>
&gt;         on demand<br>
&gt;          &gt; &gt; * Use XHR to get the file, which allows setting the<br>
&gt;         Authorization header,<br>
&gt;          &gt; &gt; then use JavaScript to download<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt; There&#39;s currently no direct support for this in Keycloak,<br>
&gt;         but it would be<br>
&gt;          &gt; &gt; interesting to add.<br>
&gt;          &gt; &gt;<br>
&gt;          &gt; &gt; &gt;<br>
&gt;          &gt; &gt; &gt; Thanks a lot for your support and so good work, Best<br>
&gt;         Regards, Jérôme.<br>
&gt;          &gt; &gt; &gt;<br>
&gt;          &gt; &gt; &gt; ______________________________<u></u><u></u>_____________________<br>
&gt;          &gt; &gt; &gt; keycloak-user mailing list<br>
&gt;          &gt; &gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
&gt;         &lt;mailto:<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.<u></u>j<u></u>boss.org</a>&gt;<br>
&gt;          &gt; &gt; &gt;<br>
&gt;         <a href="https://lists.jboss.org/__mailma__n/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/__<u></u>mai<u></u>lma__n/listinfo/keycloak-<u></u>user</a><br>
&gt;         &lt;<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/<u></u>mail<u></u>man/listinfo/keycloak-user</a><u></u>&gt;<br>
&gt;          &gt; &gt;<br>
&gt;          &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ______________________________<u></u><u></u>_________________<br>
&gt; keycloak-user mailing list<br>
&gt; <a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/<u></u>mailma<u></u>n/listinfo/keycloak-user</a><br>
&gt;<br>
<br>
--<br>
Bill Burke<br>
JBoss, a division of Red Hat<br>
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
______________________________<u></u><u></u>_________________<br>
keycloak-user mailing list<br>
<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/<u></u>mailma<u></u>n/listinfo/keycloak-user</a><br>
</blockquote></div></div></div>