Author: chirino Date: Thu Jan 6 17:58:02 2011 New Revision: 1055966 URL: http://svn.apache.org/viewvc?rev=1055966&view=rev Log: Some minor cleanups. Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileGroupLoginModule.scala activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileUserLoginModule.scala Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileGroupLoginModule.scala URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileGroupLoginModule.scala?rev=1055966&r1=1055965&r2=1055966&view=diff ============================================================================== --- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileGroupLoginModule.scala (original) +++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileGroupLoginModule.scala Thu Jan 6 17:58:02 2011 @@ -18,12 +18,9 @@ package org.apache.activemq.apollo.broke */ import java.io.File import java.io.FileInputStream -import java.io.IOException import java.security.Principal -import java.util.Properties import javax.security.auth.Subject import javax.security.auth.callback.CallbackHandler -import javax.security.auth.login.LoginException import javax.security.auth.spi.LoginModule import org.apache.activemq.jaas.GroupPrincipal @@ -32,6 +29,7 @@ import java.{util => ju} import org.apache.activemq.apollo.util.{FileSupport, Log} import FileSupport._ import java.util.regex.Pattern +import java.util.{LinkedList, Properties} object FileGroupLoginModule extends Log { val LOGIN_CONFIG = "java.security.auth.login.config" @@ -58,8 +56,7 @@ class FileGroupLoginModule extends Login private var subject: Subject = _ private var file: File = _ - private val groups = new Properties() - private val principals = new ju.HashSet[Principal]() + private val principals = new LinkedList[Principal]() def initialize(subject: Subject, callback_handler: CallbackHandler, shared_state: ju.Map[String, _], options: ju.Map[String, _]): Unit = { this.subject = subject @@ -82,18 +79,22 @@ class FileGroupLoginModule extends Login } def login: Boolean = { - try { - groups.clear + false + } + + def commit: Boolean = { + + val groups = try { using( new FileInputStream(file) ) { in=> + val groups = new Properties() groups.load(in) + groups } } catch { - case ioe: IOException => throw new LoginException("Unable to load group properties file " + file) + case e: Throwable => + warn(e, "Unable to load group properties file " + file) + return false; } - false - } - - def commit: Boolean = { import collection.JavaConversions._ val principles = subject.getPrincipals.filter(_.getClass.getName == match_kind).map(_.getName) @@ -110,7 +111,6 @@ class FileGroupLoginModule extends Login } subject.getPrincipals().addAll(principals) - debug("commit") return true } Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileUserLoginModule.scala URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileUserLoginModule.scala?rev=1055966&r1=1055965&r2=1055966&view=diff ============================================================================== --- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileUserLoginModule.scala (original) +++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/security/FileUserLoginModule.scala Thu Jan 6 17:58:02 2011 @@ -57,8 +57,6 @@ class FileUserLoginModule extends LoginM private var callback_handler: CallbackHandler = _ private var file: File = _ - private val users = new Properties() - private var user: String = _ private val principals = new ju.HashSet[Principal]() def initialize(subject: Subject, callback_handler: CallbackHandler, shared_state: ju.Map[String, _], options: ju.Map[String, _]): Unit = { @@ -78,14 +76,16 @@ class FileUserLoginModule extends LoginM } def login: Boolean = { + val users = new Properties() try { - users.clear() using( new FileInputStream(file) ) { in=> users.load(in) } EncryptionSupport.decrypt(users) } catch { - case ioe: IOException => throw new LoginException("Unable to load user properties file " + file) + case e: Throwable => + warn(e, "Unable to load user properties file: " + file) + return false } val callbacks = new Array[Callback](2) @@ -100,7 +100,7 @@ class FileUserLoginModule extends LoginM throw new LoginException(uce.getMessage() + " not available to obtain information from user") } - user = callbacks(0).asInstanceOf[NameCallback].getName() + val user = callbacks(0).asInstanceOf[NameCallback].getName() var tmpPassword = callbacks(1).asInstanceOf[PasswordCallback].getPassword() if (tmpPassword == null) { tmpPassword = new Array[Char](0) @@ -110,21 +110,20 @@ class FileUserLoginModule extends LoginM if (password == null || !password.equals(new String(tmpPassword))) { throw new FailedLoginException("Invalid user id or password") } + + principals.add(new UserPrincipal(user)) debug("login %s", user) true } def commit: Boolean = { - principals.add(new UserPrincipal(user)) subject.getPrincipals().addAll(principals) - - user = null debug("commit") return true } def abort: Boolean = { - user = null + principals.clear debug("abort") return true } @@ -132,7 +131,6 @@ class FileUserLoginModule extends LoginM def logout: Boolean = { subject.getPrincipals().removeAll(principals) principals.clear - user = null debug("logout") return true }