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
> ...

Reply via email to