Ошибки с проверкой SSL в Grails - PullRequest
2 голосов
/ 22 июня 2011

Я хочу сделать сообщение на URL с проверкой SSL в Grails. Я импортировал сертификаты и сгенерировал файлы jks. Но кажется, что Grails не нашел эти файлы JKS. Ниже приведен код, который я выполняю (это класс обслуживания Grails):

def certificate = "mycert.jks"

def http = new HTTPBuilder(url)

def keyStore = KeyStore.getInstance(KeyStore.defaultType)
getClass().getResource(certificate).withInputStream {
    keyStore.load(it, "test1234".toCharArray())
}

http.client.connectionManager.schemeRegistry.register(new Scheme("https", new SSLSocketFactory(keyStore), 443))

Ошибка «Невозможно вызвать метод withInputStream () для нулевого объекта» так метод getResource () не работает и возвращает ноль.

Я видел, что этот код в функциональном тестовом классе работает нормально.

Кто-нибудь знает, как я могу решить эту проблему?

Спасибо !!!!!!!

1 Ответ

2 голосов
/ 22 июня 2011

Проблема в том, что не исходные файлы из grails-app/services не копируются в путь к классам. Это касается src/java, но не src/groovy. Это также относится и к grails-app/conf, но это единственная папка grails-app, для которой это происходит, поскольку это папка с файлом конфигурации.

Поэтому лучше всего переместить файл на grails-app/conf и использовать

Thread.currentThread().contextClassLoader.getResource(certificate).withInputStream {
    keyStore.load(it, "test1234".toCharArray())
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...