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;
}
}