From 30b093a715e61fd7773ebee3a49096cf9544421f Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 10 Jun 2013 06:42:04 -0500 Subject: [PATCH] make auth config a bit friendlier --- conf/cassandra.yaml | 4 ++-- .../cassandra/config/DatabaseDescriptor.java | 4 ++-- .../org/apache/cassandra/utils/FBUtilities.java | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 2d2b484295..75ef3310e9 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -66,7 +66,7 @@ max_hints_delivery_threads: 2 # - PasswordAuthenticator relies on username/password pairs to authenticate # users. It keeps usernames and hashed passwords in system_auth.credentials table. # Please increase system_auth keyspace replication factor if you use this authenticator. -authenticator: org.apache.cassandra.auth.AllowAllAuthenticator +authenticator: AllowAllAuthenticator # Authorization backend, implementing IAuthorizer; used to limit access/provide permissions # Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer, @@ -75,7 +75,7 @@ authenticator: org.apache.cassandra.auth.AllowAllAuthenticator # - AllowAllAuthorizer allows any action to any user - set it to disable authorization. # - CassandraAuthorizer stores permissions in system_auth.permissions table. Please # increase system_auth keyspace replication factor if you use this authorizer. -authorizer: org.apache.cassandra.auth.AllowAllAuthorizer +authorizer: AllowAllAuthorizer # Validity period for permissions cache (fetching permissions can be an # expensive operation depending on the authorizer, CassandraAuthorizer is diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index a5bfcf250a..941249f964 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -206,7 +206,7 @@ public class DatabaseDescriptor /* Authentication and authorization backend, implementing IAuthenticator and IAuthorizer */ if (conf.authenticator != null) - authenticator = FBUtilities.construct(conf.authenticator, "authenticator"); + authenticator = FBUtilities.newAuthenticator(conf.authenticator); if (conf.authority != null) { @@ -217,7 +217,7 @@ public class DatabaseDescriptor } if (conf.authorizer != null) - authorizer = FBUtilities.construct(conf.authorizer, "authorizer"); + authorizer = FBUtilities.newAuthorizer(conf.authorizer); if (conf.internode_authenticator != null) internodeAuthenticator = FBUtilities.construct(conf.internode_authenticator, "internode_authenticator"); diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java index 1f7807d601..679e3dfe5e 100644 --- a/src/java/org/apache/cassandra/utils/FBUtilities.java +++ b/src/java/org/apache/cassandra/utils/FBUtilities.java @@ -41,6 +41,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.cassandra.auth.IAuthenticator; +import org.apache.cassandra.auth.IAuthorizer; import org.apache.cassandra.cache.IRowCacheProvider; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.config.DatabaseDescriptor; @@ -394,6 +396,20 @@ public class FBUtilities return FBUtilities.construct(partitionerClassName, "partitioner"); } + public static IAuthorizer newAuthorizer(String className) throws ConfigurationException + { + if (!className.contains(".")) + className = "org.apache.cassandra.auth." + className; + return FBUtilities.construct(className, "authorizer"); + } + + public static IAuthenticator newAuthenticator(String className) throws ConfigurationException + { + if (!className.contains(".")) + className = "org.apache.cassandra.auth." + className; + return FBUtilities.construct(className, "authenticator"); + } + /** * @return The Class for the given name. * @param classname Fully qualified classname.