Summary— All framework layers that reference the JAAS current context info need to be refactored to have a context that holds JAAS information (like the Map<String, ?> type deal CXF uses).
-Matt > On Jan 5, 2025, at 3:55 PM, Matthias Wegner <matthias.weg...@email.de> wrote: > > Hi All, > > CONTEXT > The integration test example not works, because an infinite loop "Logger: > java.lang.reflect.InvocationTargetException" occurs. It not works in test > example of karaf clone or an own written unit-test. > > TRIALS > - I tried security.manager with policy > - I tried add-opens > - I tried <useSystemClassLoader>false</useSystemClassLoader> > - I tried different logger settings with log4j. When I change > > <dependency> > <groupId>org.ops4j.pax.logging</groupId> > <artifactId>pax-logging-log4j2</artifactId> > <version>${pax-logging.version}</version> > <scope>provided</scope> > </dependency> > to > <dependency> > <groupId>org.ops4j.pax.logging</groupId> > <artifactId>pax-logging-service</artifactId> > <version>1.11.17</version> > </dependency> > > it seems that the security issue is occurring „later“, but also raises. Also > the infinity loop stays. > > DESCRIPTION > I am not able to suppress the security manager on karaf integration test. Hoe > to fix that? What is the reason for the Exception which not ends? I configured > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-surefire-plugin</artifactId> > <version>${maven-surefire-plugin.version}</version> > <configuration> > <forkCount>1</forkCount> > <reuseForks>false</reuseForks> > <!-- <useSystemClassLoader>false</useSystemClassLoader> --> > <systemPropertyVariables> > <property> > <!-- Set property to java.system.property, so it could be > loaded to build karaf-test-instance --> > <name>karaf.version</name> > <value>${karaf.version}</value> > </property> > <property> > <!-- Set property to java.system.property, so it could be > loaded to build karaf-test-instance --> > <name>project.version</name> > <value>${project.version}</value> > </property> > </systemPropertyVariables> > <argLine> > <!---Dtests.security.manager=false--> > <!-- -Djava.security.manager > -Djava.security.policy=${basedir}/src/test/resources/java.policy > --> > --add-opens java.base/java.security=ALL-UNNAMED > --add-opens java.base/java.net=ALL-UNNAMED > --add-opens java.base/java.lang=ALL-UNNAMED > --add-opens java.base/java.util=ALL-UNNAMED > --add-opens java.naming/javax.naming.spi=ALL-UNNAMED > --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED > </argLine> > </configuration> > </plugin> > But nothing seems to work. The error which is thrown looks like: > > Running org.rogatio.k3.test.ExampleTest > WARNING: package org.apache.karaf.specs.locator not in java.base > Logger: java.lang.reflect.InvocationTargetException > Exception in thread "CM Configuration Updater" > java.lang.UnsupportedOperationException: getSubject is supported only if a > security manager is allowed > at java.base/javax.security.auth.Subject.getSubject(Subject.java:347) > at > org.apache.felix.eventadmin.impl.handler.EventAdminImpl.prepareEvent(EventAdminImpl.java:146) > at > org.apache.felix.eventadmin.impl.handler.EventAdminImpl.postEvent(EventAdminImpl.java:180) > at > org.apache.felix.eventadmin.impl.security.EventAdminSecurityDecorator.postEvent(EventAdminSecurityDecorator.java:79) > at > org.ops4j.pax.logging.spi.support.EventAdminTracker.deliver(EventAdminTracker.java:103) > at > org.ops4j.pax.logging.spi.support.EventAdminTracker.postEvent(EventAdminTracker.java:65) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggingServiceImpl.handleEvents(PaxLoggingServiceImpl.java:415) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(PaxLoggerImpl.java:1134) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(PaxLoggerImpl.java:1099) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.error(PaxLoggerImpl.java:583) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggingServiceImpl.logImpl(PaxLoggingServiceImpl.java:368) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggingServiceImpl.access$000(PaxLoggingServiceImpl.java:70) > at > org.ops4j.pax.logging.log4j2.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.log(PaxLoggingServiceImpl.java:675) > at org.apache.felix.cm.impl.Log.log(Log.java:186) > at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88) > at java.base/java.lang.Thread.run(Thread.java:1575) > Logger: java.lang.reflect.InvocationTargetException > Logger: java.lang.reflect.InvocationTargetException > Logger: java.lang.reflect.InvocationTargetException > Logger: java.lang.reflect.InvocationTargetException > Logger: java.lang.reflect.InvocationTargetException > ...