Thanks for looking into this, Richard!  (great name btw).

Would you be interested in subscribing to the users mailing list and
talking to him directly?  Here is where you subscribe if interested:

http://tomee.apache.org/mailing-lists.html

You can always unsubscribe after if you want.

On Mon, Oct 14, 2019 at 6:44 AM Zowalla, Richard <
[email protected]> wrote:

> Hi,
>
> I tested the attached WAR with M2,M3 and RELEASE, results below:
>
> - M2: works as stated by the user
> - M3: Exception as stated below by the user
> - Release: same as M3 (exception as stated below).
>
> Source-code would be beneficial for debug purpose :)
>
> Best,
> Richard
>
>
>
> Am Montag, den 14.10.2019, 06:11 -0500 schrieb Richard Monson-Haefel:
>
> It would be great if someone in the community could take a quick look at
>
> this and report back.  It seems to be a bug, but I'm not sure.
>
>
> Anyone?
>
>
> ---------- Forwarded message ---------
>
> From: makkus <[email protected]>
>
> Date: Mon, Oct 14, 2019 at 5:14 AM
>
> Subject: CDI Principal injection: object is not an instance of declaring
>
> class
>
> To: <[email protected]>
>
>
>
> Hi Folks,
>
>
> in TomEE 8.0.0 there seems to be something wrong with the Principal
>
> injection: The follwoing code works fine in M2:
>
>
> package leaktest;
>
>
> import java.security.Principal;
>
> import javax.enterprise.context.RequestScoped;
>
> import javax.inject.Inject;
>
> import javax.inject.Named;
>
>
> @Named
>
> @RequestScoped
>
> public class PrincipalTest {
>
>
>     @Inject
>
>     private Principal principal;
>
>
>     public String userName(){
>
>         return principal.getName();
>
>     }
>
> }
>
>
> Inside a  JSF page I can use "User Name: #{principalTest.userName()}" to
>
> display the user name. (See attached  leak2.war
>
> <http://tomee-openejb.979440.n4.nabble.com/file/t376354/leak2.war>   or
>
> https://1drv.ms/u/s!AlHB9FAlFWW_iLJlTcyBEqApE_UAvQ?e=HODheK for example. )
>
>
>
> In 8.0.0. this is code will produce an IllegalArgumentException:
>
>
> java.lang.IllegalArgumentException: object is not an instance of declaring
>
> class
>
>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>
> Method)
>
>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
>
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
>         java.base/java.lang.reflect.Method.invoke(Method.java:566)
>
>
> org.apache.openejb.cdi.ManagedSecurityService$PrincipalInvocationHandler.invoke(ManagedSecurityService.java:183)
>
>         com.sun.proxy.$Proxy72.getName(Unknown Source)
>
>         leaktest.PrincipalTest.userName(PrincipalTest.java:25)
>
>
> leaktest.PrincipalTest$$OwbNormalScopeProxy0.userName(leaktest/PrincipalTest.java)
>
>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>
> Method)
>
>
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
>
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
>         java.base/java.lang.reflect.Method.invoke(Method.java:566)
>
>         javax.el.BeanELResolver.invoke(BeanELResolver.java:158)
>
> ...
>
>
>
> Doese someone kow if this code is unsupported in 8.0.0 ? How can I get a
>
> reference to the principal name in 8.0.0.
>
>
> Best Regards,
>
> Marcus
>
>
>
>
>
> --
>
> Sent from:
>
> http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html
>
>
>
>
> --
>
> Richard Zowalla, M.Sc.
> Research Associate, PhD Student | Medical Informatics
>
>
>
> Hochschule Heilbronn – University of Applied Sciences
> Max-Planck-Str. 39
> D-74081 Heilbronn
> phone: +49 7131 504 6791
> mail: [email protected]
> web: http://www.mi.hs-heilbronn.de/
>


-- 
Richard Monson-Haefel
https://twitter.com/rmonson
https://www.linkedin.com/in/monsonhaefel/

Reply via email to