diff options
author | Martin Ritchie <ritchiem@apache.org> | 2007-04-27 12:48:51 +0000 |
---|---|---|
committer | Martin Ritchie <ritchiem@apache.org> | 2007-04-27 12:48:51 +0000 |
commit | 3fb59b5bfef97f2a46b5a47e5beaed547e1fc14c (patch) | |
tree | 4c3295700f2b9cd4a597f910b1cd05c75bd6f8c8 | |
parent | c266140028a3a4aa61b7ee1a557b768c9e0f21d8 (diff) | |
download | qpid-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/bdbbackup | 21 | ||||
-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.java | 22 | ||||
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java | 3 | ||||
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java | 3 | ||||
-rw-r--r-- | qpid/java/client/src/test/java/org/apache/qpid/client/MessageListenerTest.java | 53 | ||||
-rw-r--r-- | qpid/java/common/bin/qpid-run | 8 |
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 |