Author: pidster
Date: Sun May 29 16:46:02 2011
New Revision: 1128902

URL: http://svn.apache.org/viewvc?rev=1128902&view=rev
Log:
add authentication as per KITTY-1

Modified:
    incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy
    incubator/kitty/trunk/src/main/java/org/apache/kitty/client/Client.groovy

Modified: incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy
URL: 
http://svn.apache.org/viewvc/incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy?rev=1128902&r1=1128901&r2=1128902&view=diff
==============================================================================
--- incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy 
(original)
+++ incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy Sun 
May 29 16:46:02 2011
@@ -136,11 +136,18 @@ class CmdShell {
                                        cmdHelp()
                                        break;
                                case 1:
-                                       if (params.length > 3) {
+                                       if (params.length > 5) {
                                                println "You have entered an 
invalid number of parameters, you may enter host and port as parameters only"
+                                               break;
                                        }
-                                       if (params.length == 3) {
-                                               cmdConnect(params[1],params[2])
+                                       if (params.length == 5) {
+                                               cmdConnect(params[1], 
params[2], params[3], params[4])
+                                       }
+                                       else if (params.length == 4) {
+                                               println "Please supply a 
password"
+                                       }
+                                       else if (params.length == 3) {
+                                               cmdConnect(params[1], params[2])
                                        }
                                        else {
                                                if (params.length == 2) {
@@ -270,6 +277,18 @@ class CmdShell {
                }
        }
 
+       static cmdConnect(_host, _port, _username, _password) {
+               println "connecting with $_username to $_host at port 
$_port...."
+               getClient().connect(_host, _port, _username, _password)
+               if (getClient().getRemote()) {
+                       println "Successfully connected to host"
+                       remote = getClient().getRemote()
+               }
+               else {
+                       println "Connection attempt was unsuccessful"
+               }
+       }
+
        static cmdDisconnect() {
                println "disconnecting..."
                if (client.getRemote()) {

Modified: 
incubator/kitty/trunk/src/main/java/org/apache/kitty/client/Client.groovy
URL: 
http://svn.apache.org/viewvc/incubator/kitty/trunk/src/main/java/org/apache/kitty/client/Client.groovy?rev=1128902&r1=1128901&r2=1128902&view=diff
==============================================================================
--- incubator/kitty/trunk/src/main/java/org/apache/kitty/client/Client.groovy 
(original)
+++ incubator/kitty/trunk/src/main/java/org/apache/kitty/client/Client.groovy 
Sun May 29 16:46:02 2011
@@ -22,6 +22,7 @@ import java.io.IOException
 
 import javax.management.Attribute
 import javax.management.ObjectName
+import javax.management.remote.JMXConnector
 import javax.management.remote.JMXConnectorFactory
 import javax.management.remote.JMXServiceURL
 
@@ -54,26 +55,34 @@ class Client {
        def mbean
 
        public connect(def _host, def _port) {
-               // TODO
+               connect(_host, _port, null, null)
+       }
+               
+       public connect(def _host, def _port, def _username, def _password) {
+
                def serviceURL
                def properties = new HashMap()
-               if (remote != null)
-               {
+               
+               if (remote != null) {
                        disconnect()
                }
+               
+               if ((_username != null) && (_password != null)) {
+                       properties.put JMXConnector.CREDENTIALS, [_username, 
_password] as String[]
+               }
 
                try {
                        serviceURL = 
"service:jmx:rmi:///jndi/rmi://$_host:$_port/jmxrmi"
                        this.url = new JMXServiceURL(serviceURL)
-                       println "the url is $url"
+                       
                        // TODO add auth & credentials to properties
                        this.connector = JMXConnectorFactory.connect(this.url, 
properties)
                        this.remote = this.connector.getMBeanServerConnection()
                }
-               catch(IOException e) {
+               catch(Exception e) {
                        connector = null
                        remote = null
-                       println e.getMessage()
+                       println "ERROR! " + e.getMessage()
                }
                finally {
                        if (this.remote != null) {
@@ -147,9 +156,21 @@ class Client {
         * @return
         */
        public ls() {
+               
+               if (!this.remote) {
+                       println "No remote is set!"
+                       return
+               }
+
+               if (!this.domain) {
+                       println "No domain is set!"
+                       return
+               }
+
                if (this.remote) {
                        if (this.domain) {
                                def objectName = this.domain + ":"
+                               
                                def objectName2
                                if (objectName.length() > 0) {
                                        objectName += 
",".concat(this.mBeansPath.join())  // make sure mBeansPath is a list, 
otherwise remove the .join() command
@@ -158,6 +179,10 @@ class Client {
                                else {
                                        objectName2 = objectName
                                }
+
+                               println "objectName: " + objectName
+                               println "objectName2: " + objectName2
+                               
                                def pool = new ObjectName(objectName2 + "*")
                                def paths = {}
                                println objectName


Reply via email to