У нас есть три веб-приложения (стандартный Spring MVC-Hibernate), работающий на сервере Jboss 6.1. Все три приложения имеют общий метод проверки подлинности, который скомпилирован как JAR и включен в каждый файл WAR. Наш метод аутентификации использует org.springframework.security.crypto.bcrypt.BCrypt для пользовательских паролей хэша, см. Ниже:
hashedPassword.equals(BCrypt.hashpw(plainTextPassword, salt));
Параметры запуска JBOSS
set "JAVA_OPTS=-Xms2048m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -verbosegc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.txt -XX:+UseParallelOldGC
Проблема: Похоже, что когда сервер перезагружается, Bcrypt.hashpw занимает 100 мс для дешифрования пароля. Однако через некоторое время (нет рисунка) внезапно производительность Bcrypt.hashpw возрастает от 100 мс до 10 секунд. Для этого нет очевидной причины.
Дополнительная информация:
- Hibernate Version: 4.2.4.Final
- Spring Версия: 4.0.5.RELEASE Spring
- Версия безопасности: 3.2.4.RELEASE
Кто-нибудь еще видел эту проблему раньше?