Author: eevans
Date: Sat Apr 3 21:54:16 2010
New Revision: 930584
URL: http://svn.apache.org/viewvc?rev=930584&view=rev
Log:
better error handling for authenticators
Patch by Roger Schildmeijer; reviewed by eevans for CASSANDRA-935
Modified:
cassandra/trunk/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
cassandra/trunk/src/java/org/apache/cassandra/auth/IAuthenticator.java
cassandra/trunk/src/java/org/apache/cassandra/auth/SimpleAuthenticator.java
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Modified:
cassandra/trunk/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java?rev=930584&r1=930583&r2=930584&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
Sat Apr 3 21:54:16 2010
@@ -21,6 +21,7 @@ package org.apache.cassandra.auth;
*/
+import org.apache.cassandra.config.DatabaseDescriptor.ConfigurationException;
import org.apache.cassandra.thrift.AccessLevel;
import org.apache.cassandra.thrift.AuthenticationException;
import org.apache.cassandra.thrift.AuthenticationRequest;
@@ -34,4 +35,9 @@ public class AllowAllAuthenticator imple
// do nothing, allow anything
return AccessLevel.FULL;
}
+
+ @Override
+ public void validateConfiguration() throws ConfigurationException {
+ // do nothing, no configuration to validate
+ }
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/auth/IAuthenticator.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/auth/IAuthenticator.java?rev=930584&r1=930583&r2=930584&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/auth/IAuthenticator.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/auth/IAuthenticator.java Sat
Apr 3 21:54:16 2010
@@ -21,6 +21,7 @@ package org.apache.cassandra.auth;
*/
+import org.apache.cassandra.config.DatabaseDescriptor.ConfigurationException;
import org.apache.cassandra.thrift.AccessLevel;
import org.apache.cassandra.thrift.AuthenticationException;
import org.apache.cassandra.thrift.AuthenticationRequest;
@@ -29,4 +30,6 @@ import org.apache.cassandra.thrift.Autho
public interface IAuthenticator
{
public AccessLevel login(String keyspace, AuthenticationRequest
auth_request) throws AuthenticationException, AuthorizationException;
+
+ public void validateConfiguration() throws ConfigurationException;
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/auth/SimpleAuthenticator.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/auth/SimpleAuthenticator.java?rev=930584&r1=930583&r2=930584&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/auth/SimpleAuthenticator.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/auth/SimpleAuthenticator.java
Sat Apr 3 21:54:16 2010
@@ -26,6 +26,7 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Properties;
+import org.apache.cassandra.config.DatabaseDescriptor.ConfigurationException;
import org.apache.cassandra.thrift.AccessLevel;
import org.apache.cassandra.thrift.AuthenticationException;
import org.apache.cassandra.thrift.AuthenticationRequest;
@@ -155,6 +156,19 @@ public class SimpleAuthenticator impleme
return authorized;
}
+ @Override
+ public void validateConfiguration() throws ConfigurationException
+ {
+ String aFileName =
System.getProperty(SimpleAuthenticator.ACCESS_FILENAME_PROPERTY);
+ String pfilename =
System.getProperty(SimpleAuthenticator.PASSWD_FILENAME_PROPERTY);
+ if (aFileName == null || pfilename == null)
+ {
+ throw new ConfigurationException("When using " +
this.getClass().getCanonicalName() + " " +
+ SimpleAuthenticator.ACCESS_FILENAME_PROPERTY + " and " +
+ SimpleAuthenticator.PASSWD_FILENAME_PROPERTY + "
properties must be defined.");
+ }
+ }
+
static String authorizationErrorMessage(String keyspace, String username)
{
return String.format("User %s could not be authorized to use keyspace
%s", username, keyspace);
Modified:
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=930584&r1=930583&r2=930584&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Sat Apr 3 21:54:16 2010
@@ -249,6 +249,8 @@ public class DatabaseDescriptor
throw new ConfigurationException("Invalid authenticator
class " + authenticatorClassName);
}
}
+
+ authenticator.validateConfiguration();
/* Hashing strategy */
String partitionerClassName =
xmlUtils.getNodeValue("/Storage/Partitioner");