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 <sancho-...@gmx.de> Date: Mon, Oct 14, 2019 at 5:14 AM Subject: CDI Principal injection: object is not an instance of declaring class To: <us...@tomee.apache.org> 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 Monson-Haefel https://twitter.com/rmonson https://www.linkedin.com/in/monsonhaefel/