this.getClient().send(resetResponse);
return this;
} else if (message instanceof LoginRequestMessage) {
LoginRequestMessage loginRequestMessage = (LoginRequestMessage) message;
String serverVersion = Server.getVersion();
LoginResponseMessage loginResponseMessage = new LoginResponseMessage();
String clientVersion = loginRequestMessage.getVersion();
if (!serverVersion.equals(clientVersion)) {
anonymousStateLogger.info("client " + this.getClient()
+ " has wrong version: " + clientVersion);
loginResponseMessage
.setResponseType(IConstants.ResponseType.version);
this.sendMessage(loginResponseMessage);
return this;
}
EntityManager entityManager = PersistenceManager.getInstance().getEntityManager();
BlackList bl = null;
try {
bl = entityManager.find(BlackList.class, this.getClient().getIPAddress() );
if (bl == null) {
bl = entityManager.find(BlackList.class, loginRequestMessage.getMacaddress() );
}
}catch(PersistenceException e){
anonymousStateLogger.info("Connection lost ?");
}
if (bl != null) {
anonymousStateLogger.info("blocked user try to login: " + loginRequestMessage.getUsername() );
loginResponseMessage
.setResponseType(IConstants.ResponseType.failed);
this.sendMessage(loginResponseMessage);
return this;
}
Lobby lobby = this.getAuthenticationService().login(
loginRequestMessage.getUsername(),
loginRequestMessage.getPassword());
if (lobby == null) {
loginResponseMessage
.setResponseType(IConstants.ResponseType.failed);
this.sendMessage(loginResponseMessage);
anonymousStateLogger.error("login failed");
} else {
loginResponseMessage
.setResponseType(IConstants.ResponseType.ok);
this.getClient().setUserName(
loginRequestMessage.getUsername());
this.getClient().setMACAddress(
loginRequestMessage.getMacaddress());