-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Поддержка Django с PostgreeSQL #610
base: dev
Are you sure you want to change the base?
Conversation
Верификация PBKDF2_SHA256
Добавил: 1. Способ верификации "django", для осуществления авторизации с помощью PBKDF2 с SHA256. 2. Исключение на отсутствующий алгоритм(NoSuchAlgorithmException) 3. Исключение на неверные ключи(InvalidKeySpecException)
А поддерживать их автору? Отличная мысль |
А что их поддерживать? Сидит себе код, жрать не просит |
Убрал исключения для совместимости
Измените ветку pull request на dev или добавьте эти изменения в этот модуль |
Лаунчер обновляется довольно часто. Никто не знает, что автору в голову взбредёт. Сегодня она поправляет баги, завтра меняет весь модуль auth. |
private static final String algorithm = "pbkdf2_sha256"; | ||
|
||
public String getEncodedHash(String password, String salt, int iterations) { | ||
PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator(new SHA256Digest()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если это возможно нужно добавить возможность указания конкретного типа хеша (sha256)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pbkdf2 - идет по умолчанию в джанго. Могу указать в readme к примеру. Или добавить в файл, где описание настроек было. Либо, как запросите, так и напишу. он отличается от просто sha256
return new String(hashBase64); | ||
} | ||
|
||
public String encode(String password, String salt, int iterations) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Стоит добавить переопределение метода encrypt для использования этого метода в FileAuthSystem
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не уверен, что правильно понял
|
||
public String encode(String password, String salt, int iterations) { | ||
String hash = getEncodedHash(password, salt, iterations); | ||
return String.format("%s$%d$%s$%s", algorithm, iterations, salt, hash); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Эта строка специфична для Django или является общей для всех подобных CMS?
Если специфична то этот код нужно вынести в модуль AddionalHash
Если нет то нужно поменять название класса на более общее
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это специфично только для этого способа кодировки. В этом я уверен только потому, что другие способы не пробовал. Могу проработать полную поддержку всех способов, которые работают на джанго, но это отвлечет меня от основных дел. Предлагаю ввести этот способ, но по любым запросам по джанго, буду править код и вносить изменения. Так же, через пул. Единственный нюанс, что не могу быть всегда онлайн, т.к. работа предполагает долгое отсутствие в зоне действия сети и, тем более, компьютера
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это специфично только для этого способа кодировки
Переименуйте тогда класс и метод на более общее название этого способа. ( pbkdf2 )
public boolean check(String encryptedPassword, String password) { | ||
String[] params = encryptedPassword.split("\\$"); | ||
if (params.length != 4) { | ||
logger.warn(" end 1 " + params.length); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Поправьте сообщение об ошибке
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Упс. Недосмотр. Для себя делал
ААааай! Научиться бы еще пользоваться этим сайтом! И, gravit0, я самоучка, которому 40 лет. Жаргон кодеров не понимаю. Если можно, могу доработать все. И то что не планировал. Но объясняться - проблема ((( |
Перенесите этот метод в модуль AddionalHash и тогда я смогу его принять |
Прошу добавить, так как не удобно каждый раз вписывать при обновлении.