This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
envoy/server/src/main/java/envoy/server/processors/PasswordChangeRequestProces...

39 lines
1.3 KiB
Java

package envoy.server.processors;
import java.io.IOException;
import java.util.logging.Level;
import envoy.event.*;
import envoy.util.EnvoyLog;
import envoy.server.data.PersistenceManager;
import envoy.server.net.*;
import envoy.server.util.PasswordUtil;
/**
* @author Leon Hofmeister
* @since Envoy Server v0.2-beta
*/
public final class PasswordChangeRequestProcessor
implements ObjectProcessor<PasswordChangeRequest> {
@Override
public void process(PasswordChangeRequest event, long socketID, ObjectWriteProxy writeProxy)
throws IOException {
final var persistenceManager = PersistenceManager.getInstance();
final var user = persistenceManager
.getUserByID(ConnectionManager.getInstance().getUserIDBySocketID(socketID));
final var logger =
EnvoyLog.getLogger(PasswordChangeRequestProcessor.class);
final var correctAuthentication =
PasswordUtil.validate(event.getOldPassword(), user.getPasswordHash());
if (correctAuthentication) {
user.setPasswordHash(PasswordUtil.hash(event.get()));
logger.log(Level.INFO, user + " changed his password");
} else
logger.log(Level.INFO,
user + " tried changing his password but provided insufficient authentication");
writeProxy.write(socketID, new PasswordChangeResult(correctAuthentication));
}
}