Added logging and fixed some security concerns
This commit is contained in:
@ -71,7 +71,9 @@ public class Startup {
|
||||
new UserSearchProcessor(),
|
||||
new ContactOperationProcessor(),
|
||||
new IsTypingProcessor(),
|
||||
new NameChangeProcessor())));
|
||||
new NameChangeProcessor(),
|
||||
new ProfilePicChangeProcessor(),
|
||||
new PasswordChangeRequestProcessor())));
|
||||
|
||||
// Initialize the current message ID
|
||||
final PersistenceManager persistenceManager = PersistenceManager.getInstance();
|
||||
|
@ -18,7 +18,7 @@ import javax.persistence.*;
|
||||
*/
|
||||
|
||||
@Entity
|
||||
@Table(name = "contacts")
|
||||
@Table(name = "contacts", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }) })
|
||||
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
|
||||
public abstract class Contact {
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
package envoy.server.processors;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import envoy.event.PasswordChangeRequest;
|
||||
import envoy.event.PasswordChangeResult;
|
||||
import envoy.server.data.PersistenceManager;
|
||||
import envoy.server.net.ObjectWriteProxy;
|
||||
import envoy.server.util.PasswordUtil;
|
||||
import envoy.util.EnvoyLog;
|
||||
|
||||
/**
|
||||
* Project: <strong>envoy-server-standalone</strong><br>
|
||||
@ -22,8 +24,12 @@ public class PasswordChangeRequestProcessor implements ObjectProcessor<PasswordC
|
||||
public void process(PasswordChangeRequest event, long socketID, ObjectWriteProxy writeProxy) throws IOException {
|
||||
final var persistenceManager = PersistenceManager.getInstance();
|
||||
final var user = persistenceManager.getUserByID(event.getID());
|
||||
final var logger = EnvoyLog.getLogger(PasswordChangeRequestProcessor.class);
|
||||
final var correctAuthentication = PasswordUtil.validate(event.getOldPassword(), user.getPasswordHash());
|
||||
if (correctAuthentication) user.setPasswordHash(PasswordUtil.hash(event.get()));
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user