<div dir="ltr">Hi,<div><br></div><div>Thanks for the feedback. I&#39;m sure this static configuration can be improved.</div><div><br></div><div>Being integrated into the core project or not is really a matter of the Undertow community: on one hand, pac4j is an official module for Shiro, CAS and Ratpack, on the other hand, it&#39;s a separate project for Vertx, J2E, Spring Security and Play. It&#39;s up to you.</div><div><br></div><div>Once again, I&#39;d like to publicly thank Michaël for his great work on Undertow and on SAML as well.</div><div><br></div><div>Thanks.</div><div>Best regards,</div><div><br></div><div><br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Jérôme LELEU<div>Founder of CAS in the cloud: <a href="http://www.casinthecloud.com" target="_blank">www.casinthecloud.com</a> | Twitter: @leleuj</div><div>Chairman of CAS: <a href="http://www.jasig.org/cas" target="_blank">www.jasig.org/cas</a> | Creator of pac4j: <a href="http://www.pac4j.org" target="_blank">www.pac4j.org</a></div></div></div></div>
<br><div class="gmail_quote">2014-10-30 1:04 GMT+01:00 Stuart Douglas <span dir="ltr">&lt;<a href="mailto:sdouglas@redhat.com" target="_blank">sdouglas@redhat.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Michaël REMOND&quot; &lt;<a href="mailto:michaelremond@gmail.com">michaelremond@gmail.com</a>&gt;<br>
&gt; To: &quot;Stuart Douglas&quot; &lt;<a href="mailto:sdouglas@redhat.com">sdouglas@redhat.com</a>&gt;<br>
&gt; Cc: <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a>, &quot;Jérôme LELEU&quot; &lt;<a href="mailto:leleuj@gmail.com">leleuj@gmail.com</a>&gt;<br>
&gt; Sent: Wednesday, 29 October, 2014 8:28:53 PM<br>
&gt; Subject: Re: [undertow-dev] CAS / OAuth / OpenID / HTTP / SAML client protocol support?<br>
&gt;<br>
&gt; Hello,<br>
&gt;<br>
&gt; I make a follow-up on this thread as I received no feedback on my pac4j<br>
&gt; binding proposal.<br>
<br>
Sorry, I mean&#39;t to look at this but it slipped through the cracks.<br>
<br>
&gt;<br>
&gt; Are you interested in this authentication library? Can we improve its<br>
&gt; design?<br>
<br>
I had a quick look through the code and for the most part it looks good. One thing that I would suggest changing is removing the static configuration, as it does not generally work very well in an application server environment where multiple deployments would be using it.<br>
<br>
I don&#39;t think something like this really belongs in Undertow core though. Maybe I should add a related projects section to the <a href="http://undertow.io" target="_blank">undertow.io</a> site and link it there?<br>
<br>
Stuart<br>
<br>
&gt;<br>
&gt; Thank you for your help<br>
&gt;<br>
&gt; Regards,<br>
&gt; Michaël<br>
&gt;<br>
&gt; 2014-05-27 20:02 GMT+02:00 Michaël REMOND &lt;<a href="mailto:michaelremond@gmail.com">michaelremond@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; &gt; Hello dear Community,<br>
&gt; &gt;<br>
&gt; &gt; I made a first draft of what could be a pac4j binding for Undertow. You<br>
&gt; &gt; can find our standard demo application here<br>
&gt; &gt; <a href="https://github.com/pac4j/undertow-pac4j-demo" target="_blank">https://github.com/pac4j/undertow-pac4j-demo</a>. You can test several<br>
&gt; &gt; different authentication providers (facebook, twitter, form, CAS, SAML...).<br>
&gt; &gt;<br>
&gt; &gt; I&#39;d like to share some implementation details with you:<br>
&gt; &gt;  - I implemented a new AuthenticationMechanism delegating the<br>
&gt; &gt; authentication to a pac4j client; so this mechanism is rather &quot;generic&quot; in<br>
&gt; &gt; regards to what you got in undertow (one for basic auth, one for form...)<br>
&gt; &gt;  - pac4j needs a session mechanism so I used the Undertow SessionManager<br>
&gt; &gt; to store some attributes but also the User Profile once the user is<br>
&gt; &gt; successfully authenticated<br>
&gt; &gt;  - pac4j also needs a callback url to finish the authentication process so<br>
&gt; &gt; I developped a dedicated handler<br>
&gt; &gt;  - finally I used the EagerFormParsingHandler to grab the required POSTed<br>
&gt; &gt; data<br>
&gt; &gt;<br>
&gt; &gt; To conclude I have to say I really appreciated the maturity of the<br>
&gt; &gt; framework because it was pretty straightforward to play with all the<br>
&gt; &gt; concepts and the ability to change from the IO thread to the dispatcher is<br>
&gt; &gt; really powerfull.<br>
&gt; &gt;<br>
&gt; &gt; Jérôme and I are really interrested to get your feedback on this work.<br>
&gt; &gt; Does this binding makes sense to you? How can we improve this work to fit<br>
&gt; &gt; perfectly in Undertow and how can we extract a viable library from the<br>
&gt; &gt; demo?<br>
&gt; &gt;<br>
&gt; &gt; Thank you for your help,<br>
&gt; &gt;<br>
&gt; &gt; Regards,<br>
&gt; &gt; Michaël<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; 2014-05-13 15:01 GMT+02:00 Stuart Douglas &lt;<a href="mailto:sdouglas@redhat.com">sdouglas@redhat.com</a>&gt;:<br>
&gt; &gt;<br>
&gt; &gt;&gt; This does sound pretty cool. I would start by looking at the existing<br>
&gt; &gt;&gt; authenticator implementations and the security docs at<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; <a href="http://undertow.io/documentation/core/security.html" target="_blank">http://undertow.io/documentation/core/security.html</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Stuart<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Michaël REMOND wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; Hi,<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; I currently contribute to a Java library from Jerome Leleu, able to<br>
&gt; &gt;&gt;&gt; protect applications and delegate authentications to various identity<br>
&gt; &gt;&gt;&gt; providers. It currently supports 5 different protocols: CAS, OAuth,<br>
&gt; &gt;&gt;&gt; OpenID, HTTP and SAML and 18 identity providers (Facebook, Twitter,<br>
&gt; &gt;&gt;&gt; Google, Yahoo...) through a very simple and unified API accross<br>
&gt; &gt;&gt;&gt; protocols/JVM frameworks: <a href="https://github.com/leleuj/pac4j" target="_blank">https://github.com/leleuj/pac4j</a>.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; The pac4j librairies are used in various JVM frameworks with the<br>
&gt; &gt;&gt;&gt; appropriate implementations: Spring Security, Shiro, CAS, J2E and Play.<br>
&gt; &gt;&gt;&gt; Although the core pac4j librairies gathers &quot;a lot of&quot; code (300 classes,<br>
&gt; &gt;&gt;&gt; 26000 lines of source code), the implementations to specific JVM<br>
&gt; &gt;&gt;&gt; frameworks are pretty straigtforward: from 4 classes for Spring Security<br>
&gt; &gt;&gt;&gt; to 11 classes for Play Framework 2.x.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; We are currently targeting new plateforms and especially async one; we<br>
&gt; &gt;&gt;&gt; got an implementation from ratpack (<a href="http://www.ratpack.io/" target="_blank">http://www.ratpack.io/</a>) and we<br>
&gt; &gt;&gt;&gt; discussed also with the guys from vert.x. They gave us some ideas in<br>
&gt; &gt;&gt;&gt; order to improve our library by becoming more &quot;reactive&quot;.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; I think that pac4j could be helpful for the Undertow community too by<br>
&gt; &gt;&gt;&gt; bringing client multi-protocols support.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; I looked at the security model from Undertow and I start to think about<br>
&gt; &gt;&gt;&gt; a possible integration by developing a &quot;Pac4jAuthenticationMechanism&quot;.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; What do you think about such development? Are you interested in a demo<br>
&gt; &gt;&gt;&gt; app showing how this could work? Do you have suggestions?<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Thanks.<br>
&gt; &gt;&gt;&gt; Best regards,<br>
&gt; &gt;&gt;&gt; Michael Remond<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt; &gt;&gt;&gt; undertow-dev mailing list<br>
&gt; &gt;&gt;&gt; <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
&gt; &gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/undertow-dev</a><br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt;<br>
</blockquote></div><br></div></div>