В моем веб-приложении пароли входа хэшируются и сохраняются с помощью JasyptStringDigester с SHA256. Во время входа в систему пароль вводится пользователем с помощью одного и того же варочного котла для сравнения.JasyptStringDigester с SHA2 внезапно становится очень медленным
Однако после того, как приложение работает около 2 дней, вход в систему становится очень медленным. Как только это произойдет, я должен перезагрузить сервер для восстановления.
С дампом нити я узнал, что замедление вызвано работой варочного котла и оно использует ресурсы ЦП. Я попытался изменить поставщика JCE от дефолтного до bouncycastle, но это не помогло.
Я также проверил использование momery в JVM, когда эта проблема возникает, но их много.
Окружающая среда:
JDK 7u60
JBoss 7.1.1 Окончательный
конфигурации Метантенк (используется в качестве одноэлементного):
<bean id="jasyptStringDigester" class="org.jasypt.digest.StandardStringDigester">
\t \t <property name="provider" ref="bouncyCastleProvider" />
<property name="algorithm" value="SHA-256" />
<property name="iterations" value="100000" />
<property name="saltGenerator">
<bean id="zeroSaltGenerator" class="org.jasypt.salt.ZeroSaltGenerator"/>
</property>
<property name="saltSizeBytes" value="10"/>
</bean>
<bean id="bouncyCastleProvider" class="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
Тема:
\t "ajp--10.88.90.34-8009-22" daemon prio=10 tid=0x00007ff2100ad800 nid=0xc7e runnable [0x00007ff1a9ae4000]
java.lang.Thread.State: RUNNABLE
at org.bouncycastle.crypto.digests.SHA256Digest.Sum0(Unknown Source)
at org.bouncycastle.crypto.digests.SHA256Digest.processBlock(Unknown Source)
at org.bouncycastle.crypto.digests.GeneralDigest.finish(Unknown Source)
at org.bouncycastle.crypto.digests.SHA256Digest.doFinal(Unknown Source)
at org.bouncycastle.jcajce.provider.digest.BCMessageDigest.engineDigest(Unknown Source)
at java.security.MessageDigest.digest(MessageDigest.java:353)
at java.security.MessageDigest.digest(MessageDigest.java:399)
at org.jasypt.digest.StandardByteDigester.digest(StandardByteDigester.java:979)
- locked <0x0000000748e4a9c0> (a org.bouncycastle.jcajce.provider.digest.SHA256$Digest)
at org.jasypt.digest.StandardByteDigester.digest(StandardByteDigester.java:933)
Будет ли кто-нибудь помочь, пожалуйста? Я давно застрял в этой проблеме. Аналогичная проблема была обнаружена в https://bugs.openjdk.java.net/browse/JDK-8023983, но я не нашел никакого решения.
Спасибо.