Merge pull request #1442 from menocar/password

Add a password user authentication when connecting to servers.
This commit is contained in:
LevelX2 2016-01-06 23:31:25 +01:00
commit aadc253afa
12 changed files with 258 additions and 24 deletions

View file

@ -56,7 +56,7 @@ import mage.view.UserView;
public interface MageServer {
// connection methods
boolean registerClient(String userName, String sessionId, MageVersion version) throws MageException;
boolean registerClient(String userName, String password, String sessionId, MageVersion version) throws MageException;
boolean registerAdmin(String password, String sessionId, MageVersion version) throws MageException;
// Not used

View file

@ -45,6 +45,7 @@ public class Connection {
private int port;
private String username;
private String password;
private String adminPassword;
private ProxyType proxyType;
private String proxyHost;
private int proxyPort;
@ -172,6 +173,14 @@ public class Connection {
this.password = password;
}
public String getAdminPassword() {
return adminPassword;
}
public void setAdminPassword(String adminPassword) {
this.adminPassword = adminPassword;
}
public String getProxyHost() {
return proxyHost;
}

View file

@ -278,14 +278,14 @@ public class SessionImpl implements Session {
this.sessionId = callbackClient.getSessionId();
boolean registerResult;
if (connection.getPassword() == null) {
if (connection.getAdminPassword() == null) {
// for backward compatibility. don't remove twice call - first one does nothing but for version checking
registerResult = server.registerClient(connection.getUsername(), sessionId, client.getVersion());
registerResult = server.registerClient(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion());
if (registerResult) {
server.setUserData(connection.getUsername(), sessionId, connection.getUserData());
}
} else {
registerResult = server.registerAdmin(connection.getPassword(), sessionId, client.getVersion());
registerResult = server.registerAdmin(connection.getAdminPassword(), sessionId, client.getVersion());
}
if (registerResult) {
sessionState = SessionState.CONNECTED;