Hi guys,
I'm trying to configure Druid to work with Apache Ranger by following this guide:
https://druid.apache.org/docs/latest/development/extensions-core/druid-ranger-security.html
Coming to the "Configuring the connection to Apache Range"r section, the guide says (bold is mine):
The Apache Ranger authorization extension will read several configuration files. Discussing the contents of those files is beyond the scope of this document. Depending on your needs you will need to create them. The minimum you will need to have is a ranger-druid-security.xml file that you will need to put in the classpath (e.g. _common). For auditing, the configuration is in ranger-druid-audit.xml.
And gives no other information on what is the format of ranger-druid-security.xml and how to configure it.
I wasn't able to find any other documentation on this config file, both on the official Druid documentation, that by simply searching on the Internet.
Am I missing something?
Thank you
Gabriele
Problem parsing object at prefix[druid.auth.authorizer.ranger]: Cannot construct instance of `org.apache.druid.security.ranger.authorizer.RangerAuthorizer`, problem: `java.lang.NullPointerException`
at [Source: UNKNOWN; line: -1, column: -1].
at org.apache.druid.server.initialization.AuthorizerMapperModule.configure(AuthorizerMapperModule.java:57) (via modules: com.google.inject.util.Modules$OverrideModule -> com.google.inject.util.Modules$OverrideModule -> org.apache.druid.server.initialization.AuthorizerMapperModule)
at org.apache.druid.server.initialization.AuthorizerMapperModule.configure(AuthorizerMapperModule.java:57) (via modules: com.google.inject.util.Modules$OverrideModule -> com.google.inject.util.Modules$OverrideModule -> org.apache.druid.server.initialization.AuthorizerMapperModule)
while locating org.apache.druid.server.security.AuthorizerMapper
for the 1st parameter of org.apache.druid.security.basic.authorization.db.updater.CoordinatorBasicAuthorizerMetadataStorageUpdater.<init>(CoordinatorBasicAuthorizerMetadataStorageUpdater.java:116)
at org.apache.druid.security.basic.authorization.db.updater.CoordinatorBasicAuthorizerMetadataStorageUpdater.class(CoordinatorBasicAuthorizerMetadataStorageUpdater.java:77)
while locating org.apache.druid.security.basic.authorization.db.updater.CoordinatorBasicAuthorizerMetadataStorageUpdater
at org.apache.druid.security.basic.BasicSecurityDruidModule.createAuthorizerStorageUpdater(BasicSecurityDruidModule.java:158) (via modules: com.google.inject.util.Modules$OverrideModule -> org.apache.druid.security.basic.BasicSecurityDruidModule)
at org.apache.druid.security.basic.BasicSecurityDruidModule.createAuthorizerStorageUpdater(BasicSecurityDruidModule.java:158) (via modules: com.google.inject.util.Modules$OverrideModule -> org.apache.druid.security.basic.BasicSecurityDruidModule)
while locating org.apache.druid.security.basic.authorization.db.updater.BasicAuthorizerMetadataStorageUpdater
This is my current configuration (via an environment file, I'm working on a Docker compose basis):Just checking. Did you customize the values in the config file for your environment?
the two settings in there that stand out at me as needing change are
The name of your ranger service:
<property> <name>ranger.plugin.druid.service.name</name>and maybe also this one:
<property> <name>ranger.plugin.druid.policy.cache.dir</name>