Ошибка при использовании SHA256 через пружину в конфиге xml - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь использовать java.security.MessageDigest с пружиной, вот так.

Определение бина ...

    <spring:bean id="messageDigest" name="messageDigest" class="java.security.MessageDigest" factory-method="getInstance">
        <spring:constructor-arg value="${hash.algorithm}"/>
    </spring:bean>

И это я использую бин ...

<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextOne]" methodArgumentTypes="byte[]" />

Это работает для меня.

Проблема в том, как только я пытаюсь использовать это где-то еще в моем приложении, как это ....

<invoke name="invokeMessageDigestDigest" object-ref="messageDigest" method="digest" methodArguments="#[flowVars.myCustomTextTwo]" methodArgumentTypes="byte[]" />

Я понял ...

Failed to instantiate [java.security.MessageDigest]: Factory method 'getInstance' threw exception; nested exception is java.security.NoSuchAlgorithmException: SHA256 MessageDigest not available

Я попытался добавить магию к определению bean-компонента, используя scope = prototype, потому что я думал, что это может быть что-то смешное в создании экземпляра bean-компонента, но это не решило проблему.

Кто-нибудь может пролить свет на это для меня?

заранее спасибо

1 Ответ

0 голосов
/ 21 сентября 2018

Правильное имя алгоритма SHA-256 согласно https://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#MessageDigest. SHA256 - это просто псевдоним, предоставленный библиотекой Bouncycastle

...