Skip to content

Commit

Permalink
handle login error message
Browse files Browse the repository at this point in the history
  • Loading branch information
bill23-kim committed May 13, 2016
1 parent adb7e55 commit 6e88811
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

import scouter.Version;
import scouter.client.net.LoginMgr;
import scouter.client.net.LoginResult;
import scouter.client.popup.LoginDialog;
import scouter.client.popup.LoginDialog.ILoginDialog;
import scouter.client.preferences.PreferenceConstants;
Expand Down Expand Up @@ -119,8 +120,8 @@ public void preWindowOpen() {
if (index > -1) {
String id = accountInfo.substring(0, index);
String pwd = accountInfo.substring(index + 1, accountInfo.length());
boolean result = LoginMgr.silentLogin(server, id, pwd);
if (result) {
LoginResult result = LoginMgr.silentLogin(server, id, pwd);
if (result.success) {
autoLogined = true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,12 @@
import org.eclipse.jface.action.Action;
import org.eclipse.swt.widgets.Display;

import scouter.client.Images;
import scouter.client.net.LoginMgr;
import scouter.client.net.LoginResult;
import scouter.client.popup.LoginDialog;
import scouter.client.server.Server;
import scouter.client.server.ServerManager;
import scouter.client.util.ConsoleProxy;
import scouter.client.util.ImageUtil;
import scouter.util.StringUtil;


Expand All @@ -44,9 +43,9 @@ public OpenServerAction(int serverId) {
public void run() {
Server server = ServerManager.getInstance().getServer(serverId);
if (StringUtil.isNotEmpty(server.getUserId()) && StringUtil.isNotEmpty(server.getPassword())) {
boolean result = LoginMgr.silentLogin(server, server.getUserId(), server.getPassword());
if (result == false) {
ConsoleProxy.errorSafe("Failed opening server");
LoginResult result = LoginMgr.silentLogin(server, server.getUserId(), server.getPassword());
if (result.success == false) {
ConsoleProxy.errorSafe(result.getErrorMessage());
}
} else {
LoginDialog dialog = new LoginDialog(Display.getDefault(), null, LoginDialog.TYPE_OPEN_SERVER, server.getIp() + ":" + server.getPort());
Expand Down
21 changes: 14 additions & 7 deletions scouter.client/src/scouter/client/net/LoginMgr.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@
import scouter.util.SysJMX;

public class LoginMgr{
public static boolean login(int serverId, String user, String password){
public static LoginResult login(int serverId, String user, String password){
Server server = ServerManager.getInstance().getServer(serverId);
String encrypted = CipherUtil.sha256(password);
return silentLogin(server, user, encrypted);
}

public static boolean silentLogin(Server server, String user, String encryptedPwd){
public static LoginResult silentLogin(Server server, String user, String encryptedPwd){
LoginResult result = new LoginResult();
try {
MapPack param = new MapPack();
param.put("id", user);
Expand All @@ -46,12 +47,16 @@ public static boolean silentLogin(Server server, String user, String encryptedPw
param.put("hostname", SysJMX.getHostName());

MapPack out = TcpProxy.loginProxy(server.getId(), param);

if (out != null) {
if (out == null) {
result.success = false;
result.errorMessage = "Network connection failed";
} else {
long session = out.getLong("session");
String error = out.getText("error");
if(error != null && session == 0L){
return false;
result.success = false;
result.errorMessage = "Authentication failed";
return result;
}
server.setOpen(true);
long time = out.getLong("time");
Expand Down Expand Up @@ -93,12 +98,14 @@ public static boolean silentLogin(Server server, String user, String encryptedPw
counterEngine.parse(((BlobValue)v1).value);
}
}
return true;
result.success = true;
}
} catch(Exception e){
e.printStackTrace();
result.success = false;
result.errorMessage = "Network connection failed : " + e.getMessage();
}
return false;
return result;
}

public static MapPack getCounterXmlServer(int serverId) {
Expand Down
17 changes: 17 additions & 0 deletions scouter.client/src/scouter/client/net/LoginResult.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package scouter.client.net;

import scouter.util.StringUtil;

public class LoginResult {

public boolean success;
public String errorMessage;

public String getErrorMessage() {
if (!success && StringUtil.isEmpty(errorMessage)) {
return "Failure to unknown causes";
}
return errorMessage;
}

}
9 changes: 5 additions & 4 deletions scouter.client/src/scouter/client/popup/LoginDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import scouter.Version;
import scouter.client.Activator;
import scouter.client.net.LoginMgr;
import scouter.client.net.LoginResult;
import scouter.client.preferences.ServerPrefUtil;
import scouter.client.server.Server;
import scouter.client.server.ServerManager;
Expand Down Expand Up @@ -319,7 +320,7 @@ public boolean loginInToServer(String address) {
String addr[] = address.split(":");
ip = addr[0];
port = addr[1];
msg("Logging in..." + address);
msg("Log in..." + address);

ServerManager srvMgr = ServerManager.getInstance();
if (this.openType != TYPE_EDIT_SERVER && srvMgr.isRunningServer(ip, port)) {
Expand All @@ -335,8 +336,8 @@ public boolean loginInToServer(String address) {
existServer = true;
}

boolean success = LoginMgr.login(server.getId(), id.getText(), pass.getText());
if (success) {
LoginResult result = LoginMgr.login(server.getId(), id.getText(), pass.getText());
if (result.success) {
msg("Successfully log in to " + address);
ServerPrefUtil.addServerAddr(address);
if (autoLogin) {
Expand All @@ -359,7 +360,7 @@ public boolean loginInToServer(String address) {
if (existServer == false) {
ServerManager.getInstance().removeServer(server.getId());
}
errMsg("Please check your ID/Password or network.");
errMsg(result.getErrorMessage());
msg("");
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.util.Set;

import scouter.client.net.LoginMgr;
import scouter.client.net.LoginResult;
import scouter.client.server.Server;
import scouter.client.server.ServerManager;
import scouter.client.util.ConsoleProxy;
Expand Down Expand Up @@ -53,11 +54,11 @@ public void run() {
server.setSession(0); // reset session
}
if (/*server.isConnected() &&*/ server.getSession() == 0) {
boolean success = LoginMgr.silentLogin(server, server.getUserId(), server.getPassword());
if (success) {
LoginResult result = LoginMgr.silentLogin(server, server.getUserId(), server.getPassword());
if (result.success) {
ConsoleProxy.infoSafe("Success re-login to " + server.getName());
} else {
ConsoleProxy.errorSafe("Failed re-login to " + server.getName());
ConsoleProxy.errorSafe("Failed re-login to " + server.getName() + " : " + result.getErrorMessage());
}
}
}
Expand Down

0 comments on commit 6e88811

Please sign in to comment.