Was going to have another look at those tests over the next couple of days.
Jon On Wed, 21 Nov 2018, 17:53 Roberto Cortez <radcor...@yahoo.com.invalid wrote: > Hi Jon, > > What it the status of this? > > For the remaining failing tests, the issues are related with this: > https://github.com/eclipse/microprofile-jwt-auth/issues/118 < > https://github.com/eclipse/microprofile-jwt-auth/issues/118> > > I don’t think there is a way to fix it on our side, so se could just > ignore those specific methods and build a specific test for this with 2 > apps deployment so we can reach out then public key endpoint from the test. > Then we should be good to go with this! > > Cheers, > Roberto > > > On 20 Nov 2018, at 15:28, Jean-Louis Monteiro <jlmonte...@tomitribe.com> > wrote: > > > > Ok, yes I see it. > > -- > > Jean-Louis Monteiro > > http://twitter.com/jlouismonteiro > > http://www.tomitribe.com > > > > > > On Tue, Nov 20, 2018 at 4:11 PM Jonathan Gallimore < > > jonathan.gallim...@gmail.com> wrote: > > > >> The commits are showing for me (at the bottom). Here's the latest one: > >> > >> > https://github.com/apache/tomee/commit/7ce1f8033e239331cfa7843e4e5565ed0aa83345 > >> > >> On Tue, Nov 20, 2018 at 2:44 PM Jean-Louis Monteiro < > >> jlmonte...@tomitribe.com> wrote: > >> > >>> Hey Jon, > >>> > >>> I clicked on the link and the diff tab does not show any difference. > >>> Did you push? > >>> -- > >>> Jean-Louis Monteiro > >>> http://twitter.com/jlouismonteiro > >>> http://www.tomitribe.com > >>> > >>> > >>> On Mon, Nov 19, 2018 at 12:36 PM Jonathan Gallimore < > >>> jonathan.gallim...@gmail.com> wrote: > >>> > >>>> I now have the principal injection part of this working - thanks > Romain > >>> for > >>>> your help and explanations. Progress is in my fork here: > >>>> https://github.com/jgallimore/tomee/tree/jwt-1.1 (changes here: > >>>> > >>>> > >>> > >> > https://github.com/apache/tomee/compare/master...jgallimore:jwt-1.1?expand=1 > >>>> ). > >>>> There are still a couple of TODOs to clean up, and 3 tests to get > >>> passing. > >>>> Any feedback is appreciated. > >>>> > >>>> Jon > >>>> > >>>> On Sat, Nov 3, 2018 at 9:10 AM Jonathan Gallimore < > >>>> jonathan.gallim...@gmail.com> wrote: > >>>> > >>>>> Yep, got it. Thanks for the feedback - makes sense now. > >>>>> > >>>>> Cheers > >>>>> > >>>>> Jon > >>>>> > >>>>> On Fri, 2 Nov 2018, 16:46 Romain Manni-Bucau <rmannibu...@gmail.com > >>>> wrote: > >>>>> > >>>>>> Answered hopefully "long enough" on dev@geronimo so will just do a > >>>> short > >>>>>> one here and shout if not enough: ManagedSecurityService in cdi > >>> package > >>>> of > >>>>>> openejb-core must make the getCurrentPrincipal contextual so hidden > >>>> behind > >>>>>> a proxy. The proxied API must be Principal and JsonWebToken when > >>>> available > >>>>>> (try { add if can load } catch { ignore } works as pattern). The > >> proxy > >>>>>> instance can be created once for all app using the container loader > >> or > >>>> per > >>>>>> app using the app loader and avoiding to leak between apps since the > >>> API > >>>>>> can use different loaders. > >>>>>> > >>>>>> Le ven. 2 nov. 2018 14:44, Jonathan Gallimore < > >>>>>> jonathan.gallim...@gmail.com> > >>>>>> a écrit : > >>>>>> > >>>>>>> Thanks for the reply, but I am confused by your response. The PR I > >>>>>>> referenced adds a single test to the geronimo-jwt-auth project ( > >>>>>>> https://github.com/apache/geronimo-jwt-auth/pull/3), based on > >>>>>>> > >>>> > org.eclipse.microprofile.jwt.tck.container.jaxrs.PrincipalInjectionTest > >>>>>>> from the TCK. It fails at present (hopefully we agree on that - my > >>>>>> results > >>>>>>> attached). The geronimo-jwt-auth project doesn't touch TomEE at > >> all > >>> - > >>>> it > >>>>>>> uses OWB/Meecrowave to run the MicroProfile JWT TCK. I have not > >>>> modified > >>>>>>> the project config at all, so it is using the SecurityService code > >>> you > >>>>>>> previously posted. If this additional test were part of the > >>>> MicroProfile > >>>>>>> JWT TCK (and I'm going to propose it), the Geronimo JWT Auth > >>>>>> implementation > >>>>>>> would *not* pass the TCK. > >>>>>>> > >>>>>>> I posted this here as I originally found the issue when continuing > >>>>>>> Roberto's efforts, but this has probably contributed to some > >>>> confusion. > >>>>>> I > >>>>>>> would suggest we continue this over on the Geronimo and OWB lists > >> to > >>>>>> avoid > >>>>>>> further confusion. > >>>>>>> > >>>>>>> Jon > >>>>>>> > >>>>>>> On Fri, Nov 2, 2018 at 12:46 PM Romain Manni-Bucau < > >>>>>> rmannibu...@gmail.com> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> Hi > >>>>>>>> > >>>>>>>> Yes this is an owb misconfiguration/integration > >>>>>>>> > >>>>>>>> Geronimo is fine here so likely tomee owb spi to update as in > >>>> geronimo > >>>>>> tck > >>>>>>>> > >>>>>>>> Le ven. 2 nov. 2018 10:42, Jonathan Gallimore < > >>>>>>>> jonathan.gallim...@gmail.com> > >>>>>>>> a écrit : > >>>>>>>> > >>>>>>>>> Thanks for the reply. I am still sure there is some sort of > >>> issue. > >>>>>>>> Putting > >>>>>>>>> TomEE to one side for the moment, I am able to reproduce this > >> in > >>>> the > >>>>>>>>> Geronimo JWT auth library as well. This PR includes a test to > >>> show > >>>>>> what > >>>>>>>> I > >>>>>>>>> mean: https://github.com/apache/geronimo-jwt-auth/pull/3. > >>>>>>>>> > >>>>>>>>> I can confirm that this change: > >>>>>>>>> https://github.com/apache/openwebbeans/pull/12 enables that > >> new > >>>>>> test to > >>>>>>>>> pass. > >>>>>>>>> > >>>>>>>>> In short, if you @Inject JsonWebToken, or individual claims, or > >>>>>>>>> use @RolesAllowed, I think you're ok, but if you @Inject > >>> Principal, > >>>>>> you > >>>>>>>>> will most likely get the wrong principal because the instance > >> is > >>>>>> cache > >>>>>>>> in a > >>>>>>>>> field in the org.apache.webbeans.portable.ProviderBasedProducer > >>>>>> class, > >>>>>>>> and > >>>>>>>>> that looks like a security issue. > >>>>>>>>> > >>>>>>>>> Jon > >>>>>>>>> > >>>>>>>>> On Tue, Oct 30, 2018 at 5:56 AM Romain Manni-Bucau < > >>>>>>>> rmannibu...@gmail.com> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> Hi Jon, > >>>>>>>>>> > >>>>>>>>>> yes and no, idea is to be fast and for all producers it works > >>>>>> except > >>>>>>>> the > >>>>>>>>>> principal which is broken anyway in CDI 1.x so guess this was > >>> not > >>>>>>>> fixed > >>>>>>>>>> > >>>>>>>>>> in CDI 2 (tomee 8) we can impl it this way: > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://github.com/apache/geronimo-jwt-auth/blob/master/src/test/java/org/apache/geronimo/microprofile/impl/jwtauth/tck/TckSecurityService.java > >>>>>>>>>> > >>>>>>>>>> Romain Manni-Bucau > >>>>>>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog > >>>>>>>>>> <https://rmannibucau.metawerx.net/> | Old Blog > >>>>>>>>>> <http://rmannibucau.wordpress.com> | Github < > >>>>>>>>>> https://github.com/rmannibucau> | > >>>>>>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > >>>>>>>>>> < > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://www.packtpub.com/application-development/java-ee-8-high-performance > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Le mar. 30 oct. 2018 à 00:58, Jonathan Gallimore < > >>>>>>>>>> jonathan.gallim...@gmail.com> a écrit : > >>>>>>>>>> > >>>>>>>>>>> Here's a question, probably for Mark or Romain. If I turn > >> the > >>>>>> proxy > >>>>>>>>> *off* > >>>>>>>>>>> in org.apache.webbeans.component.PrincipalBean, I'm finding > >>>> that > >>>>>> I > >>>>>>>> get > >>>>>>>>>> the > >>>>>>>>>>> wrong principal injected sometimes. Specifically, I get the > >>>>>>>> whatever is > >>>>>>>>>> on > >>>>>>>>>>> the proxyInstance field here: > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://github.com/apache/openwebbeans/blob/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProviderBasedProducer.java#L51 > >>>>>>>>>>> > >>>>>>>>>>> Should this line (line 66) > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://github.com/apache/openwebbeans/blob/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProviderBasedProducer.java#L66 > >>>>>>>>>>> , > >>>>>>>>>>> not simply be: > >>>>>>>>>>> > >>>>>>>>>>> return provider.get(); > >>>>>>>>>>> > >>>>>>>>>>> as opposed to > >>>>>>>>>>> > >>>>>>>>>>> proxyInstance = provider.get(); ? > >>>>>>>>>>> > >>>>>>>>>>> That way, the proxyInstance field would never get set if > >>> proxy > >>>>>> mode > >>>>>>>> is > >>>>>>>>>> set > >>>>>>>>>>> to false. When proxy is true, this seems to work correctly > >>>>>>>> (although I > >>>>>>>>>> have > >>>>>>>>>>> other unrelated issues in TomEE). > >>>>>>>>>>> > >>>>>>>>>>> I can probably work around this some other way, but it > >> seems > >>> to > >>>>>> me > >>>>>>>> like > >>>>>>>>>>> that behaviour isn't quite right. > >>>>>>>>>>> > >>>>>>>>>>> Trying to think of a way to test it - I can probably come > >> up > >>>> with > >>>>>>>>>>> something, but I'd appreciate some pointers. Happy to shift > >>>> this > >>>>>> to > >>>>>>>>>>> openwebbeans-dev, and submit a PR. Replying here initially > >>> as I > >>>>>> ran > >>>>>>>>> into > >>>>>>>>>>> this while hacking on the JWT code. > >>>>>>>>>>> > >>>>>>>>>>> Jon > >>>>>>>>>>> > >>>>>>>>>>> On Wed, Oct 17, 2018 at 12:41 AM Roberto Cortez > >>>>>>>>>>> <radcor...@yahoo.com.invalid> > >>>>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>>> Please, go ahead. Let me know if need anything. Thanks! > >>>>>>>>>>>> > >>>>>>>>>>>>> On 16 Oct 2018, at 21:53, Jonathan Gallimore < > >>>>>>>>>>>> jonathan.gallim...@gmail.com> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>> Any objection if I pick this up and have a go at the > >> last > >>>>>>>> tests, or > >>>>>>>>>> is > >>>>>>>>>>>>> someone already working on this? > >>>>>>>>>>>>> > >>>>>>>>>>>>> On Thu, Sep 27, 2018 at 5:44 PM Romain Manni-Bucau < > >>>>>>>>>>>> rmannibu...@gmail.com> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>>> Yep this feature. Then it must works since we support > >>> user > >>>>>>>>> principal > >>>>>>>>>>> if > >>>>>>>>>>>> the > >>>>>>>>>>>>>> jwt filter is corretly placed in the filter chain and > >> we > >>>>>> must > >>>>>>>>>> inherit > >>>>>>>>>>>> from > >>>>>>>>>>>>>> the request principal. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Le jeu. 27 sept. 2018 18:37, Roberto Cortez > >>>>>>>>>>> <radcor...@yahoo.com.invalid > >>>>>>>>>>>>> > >>>>>>>>>>>>>> a > >>>>>>>>>>>>>> écrit : > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I guess you are referring to this, to remove the > >> proxy? > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://github.com/apache/openwebbeans/commit/a21a949fb19247dcc39ee89292a1554b2cf1388e > >>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > https://github.com/apache/openwebbeans/commit/a21a949fb19247dcc39ee89292a1554b2cf1388e > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Yes, this one step. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> By default, we do inject the generic Principal of > >>> Tomcat. > >>>>>> We > >>>>>>>>>> probably > >>>>>>>>>>>>>> need > >>>>>>>>>>>>>>> to check first about the existence of a JWT Principal > >>> and > >>>>>> then > >>>>>>>>>>> fallback > >>>>>>>>>>>>>> to > >>>>>>>>>>>>>>> the Tomcat one. I think I know how to do it, I was > >> just > >>>>>>>> trying to > >>>>>>>>>>>> broaden > >>>>>>>>>>>>>>> up the conversation about general integration with EE > >>>>>>>> security. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>>>> Roberto > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On 26 Sep 2018, at 07:21, Romain Manni-Bucau < > >>>>>>>>>> rmannibu...@gmail.com > >>>>>>>>>>>> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> OWB enable to do it - we did it in geronimo impl to > >>> pass > >>>>>> tck > >>>>>>>> of > >>>>>>>>>> jwt > >>>>>>>>>>>>>> auth > >>>>>>>>>>>>>>>> spec. > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Le mer. 26 sept. 2018 03:28, Roberto Cortez > >>>>>>>>>>>>>> <radcor...@yahoo.com.invalid> > >>>>>>>>>>>>>>> a > >>>>>>>>>>>>>>>> écrit : > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Hi, > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> I’ve done some work to push our MP JWT > >> implementation > >>>>>> from > >>>>>>>> 1.0 > >>>>>>>>> to > >>>>>>>>>>>> 1.1. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> You can check it here: > >>>>>>>>>>>>>>>>> https://github.com/apache/tomee/pull/173 < > >>>>>>>>>>>>>>>>> https://github.com/apache/tomee/pull/173> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> There are still a couple of tests in the TCK that I > >>>> have > >>>>>> to > >>>>>>>> fix > >>>>>>>>>>> and a > >>>>>>>>>>>>>>> few > >>>>>>>>>>>>>>>>> things that I would like to improve, but I think > >> the > >>>>>>>> majority > >>>>>>>>> of > >>>>>>>>>>> the > >>>>>>>>>>>>>>> work > >>>>>>>>>>>>>>>>> is done. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Some time ago, there was a discussion in the list > >>> about > >>>>>> how > >>>>>>>> to > >>>>>>>>>>>>>> integrate > >>>>>>>>>>>>>>>>> MP JWT with EE security: > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > http://tomee-openejb.979440.n4.nabble.com/Implementing-Microprofile-JWT-td4683212i40.html > >>>>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > http://tomee-openejb.979440.n4.nabble.com/Implementing-Microprofile-JWT-td4683212i40.html > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> I believe we need to revisit that conversation and > >>>> figure > >>>>>>>> out > >>>>>>>>> how > >>>>>>>>>>> to > >>>>>>>>>>>>>>> move > >>>>>>>>>>>>>>>>> forward. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Right now for instance, we don’t support injecting > >> a > >>>> JWT > >>>>>>>>>> Principal > >>>>>>>>>>>>>> since > >>>>>>>>>>>>>>>>> it clashes with the predefined by CDI. Most likely, > >>> we > >>>>>> would > >>>>>>>>> need > >>>>>>>>>>> to > >>>>>>>>>>>>>>> plugin > >>>>>>>>>>>>>>>>> the JWT Principal lookup in TomcatSecurityService. > >>> I’m > >>>>>> not > >>>>>>>> sure > >>>>>>>>>> if > >>>>>>>>>>> we > >>>>>>>>>>>>>>> want > >>>>>>>>>>>>>>>>> to do it in that way, or if we want to think in > >>>> something > >>>>>>>> else. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>>>>>> Roberto > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > >