/** * Send the user's startup plugin * * @param source the user */ private void getStartupPlugin(ObjectConnection oc, String source) { try { UserConcept user = store.getUserStore().getUser(source); oc.write(user.getStartupPlugin()); } catch (Exception e) { } }
/** * Authenticate users * * @param oc the streams * @param ci the ConnectInfo */ private void authentification(ObjectConnection oc, Message message, String data) { String passwd = null; String name = null; String authenticationServer = null; String hostname = null; int port = 0; StringTokenizer stk = new StringTokenizer(data, " "); try { passwd = stk.nextToken(); hostname = stk.nextToken(); port = Integer.parseInt(stk.nextToken()); } catch (Exception ex) { Logging.getLogger().warning("#Err > Incorrect authentication message."); try { oc.write("BAD_MESSAGE"); } catch (Exception e) { } return; } name = message.getSender().getName(); authenticationServer = message.getSender().getAuthenticationServer(); UserConcept user = null; try { user = store.getUserStore().getUser(message.getSender().getName()); } catch (Exception e) { e.printStackTrace(); } // password ok if (user != null && store.getUserStore().checkUserPassword(user, passwd)) { // disconnect already connected user if (isAlreadyKnown(message.getSender())) { ConnectInfo oldUser = getCompleteConnectInfo(message.getSender()); try { ObjectConnection myoc = this.sendMessageTo(oldUser, "Client", "DISCONNECT"); myoc.close(); } catch (Exception e) { // we can't do much here, the client might have crashed } this.removeConnectInfo(oldUser); } connections.add( new ConnectInfo( name, authenticationServer, hostname, port, user.getPublicKey(), "Client")); try { oc.write("AUTH_ACCEPTED " + user.getPrivateKey()); } catch (Exception e) { e.printStackTrace(); } this.sendUserList(); } else { try { oc.write("NOT_VALID_USER"); } catch (Exception e) { } } }