kumaab opened a new pull request, #790: URL: https://github.com/apache/ranger/pull/790
## What changes were proposed in this pull request? Ranger Ozone plugin installation encountered errors in the ozone-om container when instantiating audit destination for Log4J. Below is a short snippet of logs captured from ozone-om container: ``` 2025-07-13 20:05:16,873 [main] INFO destination.AuditDestination: AuditDestination() enter 2025-07-13 20:05:16,873 [main] INFO destination.Log4JAuditDestination: Log4JAuditDestination() called. 2025-07-13 20:05:16,874 [main] ERROR provider.AuditProviderFactory: Failed to instantiate audit destination org.apache.ranger.audit.destination.Log4JAuditDestination java.lang.ClassCastException: class org.apache.ranger.audit.destination.Log4JAuditDestination cannot be cast to class org.apache.ranger.audit.destination.AuditDestination (org.apache.ranger.audit.destination.Log4JAuditDestination is in unnamed module of loader 'app'; org.apache.ranger.audit.destination.AuditDestination is in unnamed module of loader org.apache.ranger.plugin.classloader.RangerPluginClassLoader @56f730b2) at org.apache.ranger.audit.provider.AuditProviderFactory.createDestination(AuditProviderFactory.java:392) at org.apache.ranger.audit.provider.AuditProviderFactory.getProviderFromConfig(AuditProviderFactory.java:441) at org.apache.ranger.audit.provider.AuditProviderFactory.init(AuditProviderFactory.java:186) at org.apache.ranger.plugin.service.RangerBasePlugin.init(RangerBasePlugin.java:393) at org.apache.ranger.authorization.ozone.authorizer.RangerOzoneAuthorizer.<init>(RangerOzoneAuthorizer.java:70) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at java.base/java.lang.Class.newInstance(Class.java:584) at org.apache.ranger.authorization.ozone.authorizer.RangerOzoneAuthorizer.init(RangerOzoneAuthorizer.java:73) at org.apache.ranger.authorization.ozone.authorizer.RangerOzoneAuthorizer.<init>(RangerOzoneAuthorizer.java:42) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136) at org.apache.hadoop.ozone.security.acl.OzoneAuthorizerFactory.create(OzoneAuthorizerFactory.java:81) at org.apache.hadoop.ozone.security.acl.OzoneAuthorizerFactory.forOM(OzoneAuthorizerFactory.java:43) at org.apache.hadoop.ozone.om.OzoneManager.instantiateServices(OzoneManager.java:849) at org.apache.hadoop.ozone.om.OzoneManager.<init>(OzoneManager.java:684) at org.apache.hadoop.ozone.om.OzoneManager.createOm(OzoneManager.java:771) at org.apache.hadoop.ozone.om.OzoneManagerStarter$OMStarterHelper.start(OzoneManagerStarter.java:189) at org.apache.hadoop.ozone.om.OzoneManagerStarter.startOm(OzoneManagerStarter.java:86) at org.apache.hadoop.ozone.om.OzoneManagerStarter.call(OzoneManagerStarter.java:74) at org.apache.hadoop.hdds.cli.GenericCli.call(GenericCli.java:38) at picocli.CommandLine.executeUserObject(CommandLine.java:2041) at picocli.CommandLine.access$1500(CommandLine.java:148) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417) at picocli.CommandLine.execute(CommandLine.java:2170) at org.apache.hadoop.hdds.cli.GenericCli.execute(GenericCli.java:100) at org.apache.hadoop.hdds.cli.GenericCli.run(GenericCli.java:91) at org.apache.hadoop.ozone.om.OzoneManagerStarter.main(OzoneManagerStarter.java:58) 2025-07-13 20:05:16,878 [main] ERROR authorizer.RangerOzoneAuthorizer: Error Enabling RangerOzonePlugin ``` The patch adds support as it was a breaking change introduced in Ranger 2.7 and master. ## How was this patch tested? Tested with `ozone-om` container in docker. ``` 2026-01-06 03:41:21,885 [main] INFO provider.AuditProviderFactory: Audit destination xasecure.audit.destination.log4j is set to true 2026-01-06 03:41:22,142 [main] INFO destination.AuditDestination: AuditDestination() enter 2026-01-06 03:41:22,143 [main] INFO destination.Log4JAuditDestination: Log4JAuditDestination() called. 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: BaseAuditProvider.init() 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: propPrefix=xasecure.audit.destination.log4j 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: Using providerName from property prefix. providerName=log4j 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: providerName=log4j 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: xasecure.audit.log.status.log.enabled=false 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: xasecure.audit.log.status.log.interval.sec=300 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: xasecure.audit.destination.log4j.status.log.enabled=false 2026-01-06 03:41:22,143 [main] INFO provider.BaseAuditHandler: xasecure.audit.destination.log4j.status.log.interval.sec=300 2026-01-06 03:41:22,143 [main] INFO destination.Log4JAuditDestination: Logger name for log4j is xaaudit 2026-01-06 03:41:22,143 [main] INFO destination.Log4JAuditDestination: Done initializing logger for audit. name=log4j, loggerName=xaaudit 2026-01-06 03:41:22,143 [main] INFO provider.AuditProviderFactory: xasecure.audit.destination.log4j.queue is not set. Setting queue to batch for log4j ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
