You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2009/11/16 11:41:09 UTC

svn commit: r880703 - in /mina/sshd/trunk: sshd-core/src/main/java/org/apache/sshd/ sshd-core/src/main/java/org/apache/sshd/server/ sshd-core/src/main/java/org/apache/sshd/server/auth/ sshd-core/src/main/java/org/apache/sshd/server/jaas/ sshd-core/src/...

Author: gnodet
Date: Mon Nov 16 10:41:03 2009
New Revision: 880703

URL: http://svn.apache.org/viewvc?rev=880703&view=rev
Log:
SSHD-53: make sure PublickeyAuthenticator and PasswordAuthenticator interfaces are consistent

Modified:
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/SshServer.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PasswordAuthenticator.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PublickeyAuthenticator.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/UserAuth.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthNone.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPassword.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPublicKey.java
    mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticator.java
    mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticatorTest.java
    mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPasswordAuthenticator.java
    mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPublickeyAuthenticator.java
    mina/sshd/trunk/sshd-pam/src/main/java/org/apache/sshd/server/pam/PAMPasswordAuthenticator.java

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/SshServer.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/SshServer.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/SshServer.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/SshServer.java Mon Nov 16 10:41:03 2009
@@ -359,8 +359,8 @@
         sshd.setShellFactory(new ProcessShellFactory(new String[] { "/bin/sh", "-i", "-l" }));
         //sshd.setPasswordAuthenticator(new PAMPasswordAuthenticator());
         sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
-            public Object authenticate(String username, String password, ServerSession session) {
-                return (username != null && username.equals(password)) ? username : null;
+            public boolean authenticate(String username, String password, ServerSession session) {
+                return username != null && username.equals(password);
             }
         });
         sshd.start();

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PasswordAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PasswordAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PasswordAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -35,8 +35,8 @@
      * @param username the username
      * @param password the password
      * @param session the server session
-     * @return a non null identity object or <code>null</code if authentication fail
+     * @return a boolean indicating if authentication succeeded or not
      */
-    Object authenticate(String username, String password, ServerSession session);
+    boolean authenticate(String username, String password, ServerSession session);
 
 }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PublickeyAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PublickeyAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PublickeyAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/PublickeyAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -36,8 +36,8 @@
      * @param username the username
      * @param key the key
      * @param session the server session
-     * @return a non null identity object or <code>null</code if authentication fail
+     * @return a boolean indicating if authentication succeeded or not
      */
-    Object hasKey(String username, PublicKey key, ServerSession session);
+    boolean authenticate(String username, PublicKey key, ServerSession session);
 
 }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/UserAuth.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/UserAuth.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/UserAuth.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/UserAuth.java Mon Nov 16 10:41:03 2009
@@ -38,9 +38,10 @@
      * @param session the current ssh session
      * @param username the user trying to log in
      * @param buffer the request buffer containing parameters specific to this request
-     *
-     * @return the identity of the user or null if the authentication fails
+     * @return <code>true</code> if the authentication succeeded, <code>false</code> if the authentication
+     *          is not finished yet
+     * @throws Exception if the authentication fails
      */
-    Object auth(ServerSession session, String username, Buffer buffer) throws Exception;
+    boolean auth(ServerSession session, String username, Buffer buffer) throws Exception;
 
 }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthNone.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthNone.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthNone.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthNone.java Mon Nov 16 10:41:03 2009
@@ -39,8 +39,8 @@
         }
     }
 
-    public Object auth(ServerSession session, String username, Buffer buffer) {
-        return username;
+    public boolean auth(ServerSession session, String username, Buffer buffer) {
+        return true;
     }
 
 }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPassword.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPassword.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPassword.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPassword.java Mon Nov 16 10:41:03 2009
@@ -40,7 +40,7 @@
         }
     }
 
-    public Object auth(ServerSession session, String username, Buffer buffer) throws Exception {
+    public boolean auth(ServerSession session, String username, Buffer buffer) throws Exception {
         boolean newPassword = buffer.getBoolean();
         if (newPassword) {
             throw new IllegalStateException("Password changes are not supported");
@@ -49,12 +49,11 @@
         return checkPassword(session, username, password);
     }
 
-    private Object checkPassword(ServerSession session, String username, String password) throws Exception {
+    private boolean checkPassword(ServerSession session, String username, String password) throws Exception {
         PasswordAuthenticator auth = session.getServerFactoryManager().getPasswordAuthenticator();
         if (auth != null) {
-            Object identity = auth.authenticate(username, password, session);
-            if (identity != null) {
-                return identity;
+            if (auth.authenticate(username, password, session)) {
+                return true;
             } else {
                 throw new Exception("Authentication failed: bad username or password supplied");
             }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPublicKey.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPublicKey.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPublicKey.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/auth/UserAuthPublicKey.java Mon Nov 16 10:41:03 2009
@@ -46,7 +46,7 @@
         }
     }
 
-    public Object auth(ServerSession session, String username, Buffer buffer) throws Exception {
+    public boolean auth(ServerSession session, String username, Buffer buffer) throws Exception {
         boolean hasSig = buffer.getBoolean();
         String alg = buffer.getString();
 
@@ -68,8 +68,7 @@
             throw new Exception("No PublickeyAuthenticator configured");
         }
 
-        Object ident = authenticator.hasKey(username, key, session);
-        if (ident == null) {
+        if (!authenticator.authenticate(username, key, session)) {
             throw new Exception("Unsupported key for user");
         }
         if (!hasSig) {
@@ -77,7 +76,7 @@
             buf.putString(alg);
             buf.putRawBytes(buffer.array(), oldPos, 4 + len);
             session.writePacket(buf);
-            return null;
+            return false;
         } else {
             Buffer buf = new Buffer();
             buf.putString(session.getKex().getH());
@@ -94,7 +93,7 @@
             if (!verif.verify(sig)) {
                 throw new Exception("Key verification failed");
             }
-            return ident;
+            return true;
         }
     }
 }

Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -48,11 +48,11 @@
         this.domain = domain;
     }
 
-    public Object authenticate(final String username, final String password, final ServerSession session) {
+    public boolean authenticate(final String username, final String password, final ServerSession session) {
     	return authenticate(username, password);
     }
     
-    public Object authenticate(final String username, final String password) {
+    public boolean authenticate(final String username, final String password) {
         try {
             Subject subject = new Subject();
             LoginContext loginContext = new LoginContext(domain, subject, new CallbackHandler() {
@@ -70,9 +70,9 @@
             });
             loginContext.login();
             loginContext.logout();
-            return subject;
+            return true;
         } catch (Exception e) {
-            return null;
+            return false;
         }
     }
 

Modified: mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticatorTest.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticatorTest.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticatorTest.java (original)
+++ mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/server/jaas/JaasPasswordAuthenticatorTest.java Mon Nov 16 10:41:03 2009
@@ -73,8 +73,8 @@
         assertNull(auth.getDomain());
         auth.setDomain("domain");
         assertEquals("domain", auth.getDomain());
-        assertNotNull(auth.authenticate("sshd", "sshd"));
-        assertNull(auth.authenticate("sshd", "dummy"));
+        assertTrue(auth.authenticate("sshd", "sshd"));
+        assertFalse(auth.authenticate("sshd", "dummy"));
     }
 
 

Modified: mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPasswordAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPasswordAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPasswordAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -28,7 +28,7 @@
  */
 public class BogusPasswordAuthenticator implements PasswordAuthenticator {
 
-    public Object authenticate(String username, String password, ServerSession session) {
-        return (username != null && username.equals(password)) ? username : null;
+    public boolean authenticate(String username, String password, ServerSession session) {
+        return username != null && username.equals(password);
     }
 }

Modified: mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPublickeyAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPublickeyAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPublickeyAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/util/BogusPublickeyAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -30,7 +30,7 @@
  */
 public class BogusPublickeyAuthenticator implements PublickeyAuthenticator {
 
-    public Object hasKey(String username, PublicKey key, ServerSession session) {
-        return username;
+    public boolean authenticate(String username, PublicKey key, ServerSession session) {
+        return true;
     }
 }

Modified: mina/sshd/trunk/sshd-pam/src/main/java/org/apache/sshd/server/pam/PAMPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-pam/src/main/java/org/apache/sshd/server/pam/PAMPasswordAuthenticator.java?rev=880703&r1=880702&r2=880703&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-pam/src/main/java/org/apache/sshd/server/pam/PAMPasswordAuthenticator.java (original)
+++ mina/sshd/trunk/sshd-pam/src/main/java/org/apache/sshd/server/pam/PAMPasswordAuthenticator.java Mon Nov 16 10:41:03 2009
@@ -46,13 +46,13 @@
         this.service = service;
     }
 
-    public Object authenticate(String username, String password, ServerSession session) {
+    public boolean authenticate(String username, String password, ServerSession session) {
         LOG.info("Authenticating user {} using PAM", username);
         PamReturnValue val = new Pam(service).authenticate(username, password);
         LOG.info("Result: {}", val);
         if (PamReturnValue.PAM_SUCCESS.equals(val)) {
-            return username;
+            return true;
         }
-        return null;
+        return false;
     }
 }