View Javadoc

1   package twcsckernel.serverKernel.impl;
2   
3   import java.rmi.RemoteException;
4   import java.rmi.server.ServerNotActiveException;
5   
6   import twcsckernel.projectbase.common.RemoteServer;
7   import twcsckernel.projectbase.common.User;
8   import twcsckernel.serverKernel.io.LogWriter;
9   import twcsckernel.serverKernel.utils.RmiManager;
10  import twcsckernel.serverKernel.utils.ServerGlobalState;
11  import twcsckernel.serverKernel.utils.UserData;
12  
13  /***
14   * Implementacja serwera logowania 
15   * {@link twcsckernel.projectbase.common.RemoteServer RemoteServer}.
16   * @author VMD Group
17   * 
18   */
19  public class RemoteServerImpl implements RemoteServer {
20  
21  	private ServerGlobalState globalState;
22  
23  	private RmiManager rmiManager;
24  
25  	public RemoteServerImpl(ServerGlobalState globalState, RmiManager rmiMan) {
26  		this.globalState = globalState;
27  		rmiManager = rmiMan;
28  	}
29  
30  	public User login(String login, String password) throws RemoteException {
31  		String userHost;
32  		;
33  		try {
34  			userHost = java.rmi.server.RemoteServer.getClientHost();
35  		} catch (ServerNotActiveException e1) {
36  			userHost = "unknown";
37  		}
38  		if (globalState.registeredUsers.checkPassword(login, password)) {
39  			UserData myself = globalState.registeredUsers.getUserData(login);
40  
41  			UserImpl newUser;
42  			try {
43  				newUser = new UserImpl(myself, globalState, rmiManager,
44  						userHost);
45  			} catch (RemoteException re) {
46  				throw re;
47  			} catch (Exception e) {
48  				throw new RemoteException("exception: "
49  						+ e.getClass().getName() + " message: "
50  						+ e.getMessage(),e.getCause());
51  			}
52  			rmiManager.exportObject(newUser);
53  			globalState.logWriter.writeUserLog("User: \"" + login + "\" ("
54  					+ userHost + ") successfully logged in.",
55  					LogWriter.USER_LOGIN);
56  			return newUser;
57  		} else {
58  			globalState.logWriter.writeErrorLog(
59  					"Incorrect login/password attempt for user: \"" + login
60  							+ "\" (" + userHost + ")",
61  					LogWriter.ERROR_LOGIN_PASSWORD);
62  			return null;
63  		}
64  	}
65  
66  }