2015-06-21 4 views
1

У меня есть проект Grails, в котором я хочу использовать Bouncycastle для вычисления хэша Sha512 строки.Класс BouncyCastleProvider не найден в Grails 2.5.0

Когда я называю Security.addProvider(new BouncyCastleProvider()) я получаю следующее сообщение об ошибке:

| Error 2015-06-21 15:34:53,242 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: org/bouncycastle/jce/provider/BouncyCastleProvider 
Message: org/bouncycastle/jce/provider/BouncyCastleProvider 
Line | Method 
->> 49 | doCall       in BootStrap$_closure1 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 327 | evaluateEnvironmentSpecificBlock in grails.util.Environment 
| 320 | executeForEnvironment . . . . . in  '' 
| 296 | executeForCurrentEnvironment  in  '' 
| 262 | run . . . . . . . . . . . . . . in java.util.concurrent.FutureTask 
| 1145 | runWorker      in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 745 | run        in java.lang.Thread 
Caused by ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider 
->> 366 | run        in java.net.URLClassLoader$1 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 355 | run        in  '' 
| 354 | findClass . . . . . . . . . . . in java.net.URLClassLoader 
| 425 | loadClass      in java.lang.ClassLoader 
|  49 | doCall . . . . . . . . . . . . . in BootStrap$_closure1 
| 327 | evaluateEnvironmentSpecificBlock in grails.util.Environment 
| 320 | executeForEnvironment . . . . . in  '' 
| 296 | executeForCurrentEnvironment  in  '' 
| 262 | run . . . . . . . . . . . . . . in java.util.concurrent.FutureTask 
| 1145 | runWorker      in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 745 | run        in java.lang.Thread 

В моем IDE (IntelliJ) импорт import org.bouncycastle.jce.provider.BouncyCastleProvider кажется решить, и я могу ориентироваться на местоположение класса.

Почему класс BouncyCastle не найден при выполнении приложения?

+0

ОК, я просто понял, что я могу вычислить хэш без добавления BouncyCastle, как SecurityProvider .... но тем не менее, я до сих пор не понимаю, почему я не могу загрузить класс, который включен в дистрибутив Grails ... – Tobson

ответ

0

Вы добавили запись для поставщика в файл политики безопасности JCE JRE, который используете?

JAVA_HOME\jre\lib\security\java.security 

п больше, чем одна последняя запись уже присутствует

security.provider.n=org.bouncycastle.jce.provider.BouncyCastleProvider 

http://bouncycastle.org/wiki/display/JA1/Provider+Installation

Смежные вопросы