Я пытаюсь переопределить валидатор пароля и хэшер пароля плагина securesocial для игры 2 в java, потому что мой процесс аутентификации не будет работать.. (на самом деле все кажется правильным, я не могу войти в систему с помощью хранилище хэшей паролей в моей базе данных)
Я уже расширяю passwordValidator, как это объясняется в документации (http://securesocial.ws/guide/password-plugins.html)
открытый класс BCryptPasswordHasher расширяет BasePasswordHasher {
public PasswordInfo doHash(String plainPassword){
PasswordInfo pI = new PasswordInfo();
pI.password = BCrypt.hashpw(plainPassword, BCrypt.gensalt());
return pI;
}
public boolean doMatch(PasswordInfo passwordInfo, String suppliedPassword){
return BCrypt.checkpw(suppliedPassword, passwordInfo.password);
}
}
Я получаю эту ошибку:
tools.BCryptPasswordHasher не является абстрактным и не переопределяет абстрактный метод doMatch(securesocial.core.java.PasswordInfo,java.lang.String) в securesocial.core.java.BasePasswordHasher
Знаете, как мне это удается?
Заранее спасибо за вашу помощь
PS: BasePasswordHasher
общедоступный абстрактный класс BasePasswordHasher реализует PasswordHasher { защищенное приложение Application;
public BasePasswordHasher(Application application) {
this.application = application;
}
@Override
public securesocial.core.PasswordInfo hash(String plainPassword) {
return doHash(plainPassword).toScala();
}
@Override
public boolean matches(securesocial.core.PasswordInfo passwordInfo, String suppliedPassword) {
return doMatch(PasswordInfo.fromScala(passwordInfo), suppliedPassword);
}
/**
* Hashes a password
*
* @param plainPassword the password to hash
* @return a PasswordInfo containting the hashed password and optional salt
*/
abstract PasswordInfo doHash(String plainPassword);
/**
* Checks whether a supplied password matches the hashed one
*
* @param passwordInfo the password retrieved from the backing store (by means of UserService)
* @param suppliedPassword the password supplied by the user trying to log in
* @return true if the password matches, false otherwise.
*/
abstract boolean doMatch(PasswordInfo passwordInfo, String suppliedPassword);
}