diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 93bba5fe1e..16d9e25746 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 4d6abaeb11..a01577418c 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -188,10 +188,10 @@ 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.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 027f74ad91..8a5572e944 100644 --- a/src/java/org/apache/cassandra/utils/FBUtilities.java +++ b/src/java/org/apache/cassandra/utils/FBUtilities.java @@ -41,12 +41,14 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.auth.IAuthenticator; +import org.apache.cassandra.auth.IAuthorizer; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.IVersionedSerializer; import org.apache.cassandra.io.util.DataOutputBuffer; import org.apache.cassandra.io.util.FileUtils; @@ -413,6 +415,20 @@ public class FBUtilities return FBUtilities.construct(offheap_allocator, "off-heap allocator"); } + 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.