summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2007-04-27 12:48:51 +0000
committerMartin Ritchie <ritchiem@apache.org>2007-04-27 12:48:51 +0000
commit3fb59b5bfef97f2a46b5a47e5beaed547e1fc14c (patch)
tree4c3295700f2b9cd4a597f910b1cd05c75bd6f8c8
parentc266140028a3a4aa61b7ee1a557b768c9e0f21d8 (diff)
downloadqpid-python-3fb59b5bfef97f2a46b5a47e5beaed547e1fc14c.tar.gz
Merged revisions 533075-533079 via svnmerge from
https://svn.apache.org/repos/asf/incubator/qpid/branches/M2 ........ r533075 | ritchiem | 2007-04-27 13:27:19 +0100 (Fri, 27 Apr 2007) | 2 lines QPID-473 Base64MD5PrincipalDatabase doesn't check password changes were applied to disk before storing in memory Reversed the effects of the requested change if the changes cannot be persisted to disk ........ r533077 | ritchiem | 2007-04-27 13:29:52 +0100 (Fri, 27 Apr 2007) | 3 lines Bin Updates: Qpid-Run removed new bash 3.x feature += replaced with option="${value1} ${value2}" constructs to support older bash 2.x renamed passwd qpid-passwd and fixed classpath loading errors. Moved bdbbackup script to live with the bdb module. ........ r533078 | ritchiem | 2007-04-27 13:30:07 +0100 (Fri, 27 Apr 2007) | 1 line Updated PrincipalDatabase implementations to return empty strings rather than null. As this causes NPE on MC. ........ r533079 | ritchiem | 2007-04-27 13:31:03 +0100 (Fri, 27 Apr 2007) | 1 line Updated MLT to have variables that define the BROKER and VHOST used and White space ........ git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@533083 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker/bin/bdbbackup21
-rw-r--r--qpid/java/broker/bin/qpid-passwd (renamed from qpid/java/broker/bin/passwd)9
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java22
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java3
-rw-r--r--qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java53
-rw-r--r--qpid/java/common/bin/qpid-run8
7 files changed, 52 insertions, 67 deletions
diff --git a/qpid/java/broker/bin/bdbbackup b/qpid/java/broker/bin/bdbbackup
deleted file mode 100644
index 34743cd873..0000000000
--- a/qpid/java/broker/bin/bdbbackup
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-. qpid-run org.apache.qpid.server.store.berkeleydb.BDBBackup "$@"
diff --git a/qpid/java/broker/bin/passwd b/qpid/java/broker/bin/qpid-passwd
index c1bb05c082..6e64af6e70 100644
--- a/qpid/java/broker/bin/passwd
+++ b/qpid/java/broker/bin/qpid-passwd
@@ -18,4 +18,13 @@
# under the License.
#
+# Set classpath to include Qpid jar with all required jars in manifest
+QPID_LIBS=$QPID_HOME/lib/qpid-incubating.jar
+
+# Set other variables used by the qpid-run script before calling
+export JAVA=java \
+ JAVA_VM=-server \
+ JAVA_MEM=-Xmx1024m \
+ QPID_CLASSPATH=$QPID_LIBS
+
. qpid-run org.apache.qpid.server.security.Passwd "$@"
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
index 8ade3cdd98..10adfdd9fc 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
@@ -182,6 +182,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase
try
{
_userUpdate.lock();
+ char[] orig = user.getPassword();
user.setPassword(password);
try
@@ -192,6 +193,8 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase
{
_logger.error("Unable to save password file, password change for user'"
+ principal + "' will revert at restart");
+ //revert the password change
+ user.setPassword(orig);
return false;
}
return true;
@@ -210,22 +213,6 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase
}
}
- private char[] convertPassword(String password) throws UnsupportedEncodingException
- {
- byte[] passwdBytes = password.getBytes(DEFAULT_ENCODING);
-
- char[] passwd = new char[passwdBytes.length];
-
- int index = 0;
-
- for (byte b : passwdBytes)
- {
- passwd[index++] = (char) b;
- }
-
- return passwd;
- }
-
public boolean createPrincipal(Principal principal, char[] password)
{
if (_users.get(principal.getName()) != null)
@@ -247,9 +234,10 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase
}
catch (IOException e)
{
+ //remove the use on failure.
+ _users.remove(user.getName());
return false;
}
-
}
finally
{
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
index 5170f6216c..c49f4e2a33 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
@@ -39,6 +39,7 @@ import java.util.regex.Pattern;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
+import java.util.LinkedList;
import java.security.Principal;
/**
@@ -157,7 +158,7 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase
public List<Principal> getUsers()
{
- return null; //todo
+ return new LinkedList<Principal>(); //todo
}
public Principal getUser(String username)
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
index 49cd71e978..73d58ca489 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
@@ -31,6 +31,7 @@ import java.util.Properties;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
+import java.util.LinkedList;
import java.security.Principal;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@@ -142,7 +143,7 @@ public class PropertiesPrincipalDatabase implements PrincipalDatabase
public List<Principal> getUsers()
{
- return null; //todo
+ return new LinkedList<Principal>(); //todo
}
public Principal getUser(String username)
diff --git a/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java b/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java
index 7b5957ac8c..b15742f3aa 100644
--- a/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java
+++ b/qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java
@@ -63,17 +63,21 @@ public class MessageListenerTest extends TestCase implements MessageListener
private MessageConsumer _consumer;
private Connection _clientConnection;
private CountDownLatch _awaitMessages = new CountDownLatch(MSG_COUNT);
+ private static final String BROKER = "vm://:1";
+ private static final String VHOST = "test";
protected void setUp() throws Exception
{
super.setUp();
- TransportConnection.createVMBroker(1);
-
+ if (BROKER.contains("vm://"))
+ {
+ TransportConnection.createVMBroker(1);
+ }
InitialContextFactory factory = new PropertiesFileInitialContextFactory();
Hashtable<String, String> env = new Hashtable<String, String>();
- env.put("connectionfactory.connection", "amqp://guest:guest@MLT_ID/test?brokerlist='vm://:1'");
+ env.put("connectionfactory.connection", "amqp://guest:guest@MLT_ID/" + VHOST + "?brokerlist='" + BROKER + "'");
env.put("queue.queue", "MessageListenerTest");
_context = factory.getInitialContext(env);
@@ -113,7 +117,10 @@ public class MessageListenerTest extends TestCase implements MessageListener
_clientConnection.close();
super.tearDown();
- TransportConnection.killAllVMBrokers();
+ if (BROKER.contains("vm://"))
+ {
+ TransportConnection.killAllVMBrokers();
+ }
}
@@ -145,34 +152,34 @@ public class MessageListenerTest extends TestCase implements MessageListener
}
public void testRecieveTheUseMessageListener() throws Exception
- {
+ {
- _logger.error("Test disabled as initial receive is not called first");
- // Perform initial receive to start connection
+ _logger.error("Test disabled as initial receive is not called first");
+ // Perform initial receive to start connection
// assertTrue(_consumer.receive(2000) != null);
// receivedCount++;
- // Sleep to ensure remaining 4 msgs end up on _synchronousQueue
+ // Sleep to ensure remaining 4 msgs end up on _synchronousQueue
// Thread.sleep(1000);
- // Set the message listener and wait for the messages to come in.
- _consumer.setMessageListener(this);
+ // Set the message listener and wait for the messages to come in.
+ _consumer.setMessageListener(this);
- _logger.info("Waiting 3 seconds for messages");
+ _logger.info("Waiting 3 seconds for messages");
+
+ try
+ {
+ _awaitMessages.await(3000, TimeUnit.MILLISECONDS);
+ }
+ catch (InterruptedException e)
+ {
+ //do nothing
+ }
+ //Should have recieved all async messages
+ assertEquals(MSG_COUNT, receivedCount);
- try
- {
- _awaitMessages.await(3000, TimeUnit.MILLISECONDS);
- }
- catch (InterruptedException e)
- {
- //do nothing
- }
- //Should have recieved all async messages
- assertEquals(MSG_COUNT, receivedCount);
+ }
- }
-
public void onMessage(Message message)
{
diff --git a/qpid/java/common/bin/qpid-run b/qpid/java/common/bin/qpid-run
index fe8fd0e9cc..fc607529ee 100644
--- a/qpid/java/common/bin/qpid-run
+++ b/qpid/java/common/bin/qpid-run
@@ -70,7 +70,7 @@ if [ -n "$QPID_LOG_PREFIX" ]; then
echo Using qpid logprefix property
LOG_PREFIX=" -Dlogprefix=$QPID_LOG_PREFIX"
fi
- SYSTEM_PROPS+=$LOG_PREFIX
+ SYSTEM_PROPS="${SYSTEM_PROPS} ${LOG_PREFIX}"
fi
if [ -n "$QPID_LOG_SUFFIX" ]; then
@@ -81,7 +81,7 @@ if [ -n "$QPID_LOG_SUFFIX" ]; then
echo Using qpig logsuffix property
LOG_SUFFIX=" -Dlogsuffix=$QPID_LOG_SUFFIX"
fi
- SYSTEM_PROPS+=$LOG_SUFFIX
+ SYSTEM_PROPS="${SYSTEM_PROPS} ${LOG_SUFFIX}"
fi
echo System Properties set to $SYSTEM_PROPS
@@ -146,7 +146,7 @@ exclusive() {
if [ -z "$PREVIOUS_ARGS" ]; then
PREVIOUS_ARGS=$1
else
- PREVIOUS_ARGS+=", $1"
+ PREVIOUS_ARGS="${PREVIOUS_ARGS}, $1"
DISPATCH() {
die -usage "you must choose one of: $PREVIOUS_ARGS"
}
@@ -168,7 +168,7 @@ for arg in "${RUN_ARGS[@]}"; do
if [ -z "$JPDA_OPTS" ]; then
JPDA_OPTS="-Xdebug -Xrunjdwp:transport=${JPDA_TRANSPORT:-dt_socket},address=${JPDA_ADDRESS:-8000},server=y,suspend=n"
fi
- QPID_OPTS+=" ${JPDA_OPTS}"
+ QPID_OPTS="${QPID_OPTS} ${JPDA_OPTS}"
;;
-run:external-classpath=*)
#USAGE: controls how the CLASSPATH environment variable is used by