Groovy не может скомпилировать код из решения, указанного в Stackru
Ответ 1 на этот пост Stackru содержит некоторый Groovy-код, но он не компилируется (для меня Grovy Console версии 2.1.3 или в моем приложении Grails 2.2.3).
Не могли бы вы помочь сообщить мне, что мне нужно изменить, чтобы этот код работал? Я получаю ошибку:
unexpected token: public at line 14, column: 52 (... which is the "public X509 Certificate[]")
Для быстрого ознакомления кодовое решение, приведенное в ответе 1:
import javax.net.ssl.X509TrustManager
import javax.net.ssl.SSLContext
import java.security.cert.X509Certificate
import javax.net.ssl.TrustManager
import java.security.SecureRandom
import org.apache.http.conn.ssl.SSLSocketFactory
import org.apache.http.conn.scheme.Scheme
import org.apache.http.conn.scheme.SchemeRegistry
def http = new HTTPBuilder( "https://your_unsecure_certificate_host" )
//=== SSL UNSECURE CERTIFICATE ===
def sslContext = SSLContext.getInstance("SSL")
sslContext.init(null, [ new X509TrustManager() {public X509Certificate[]
getAcceptedIssuers() {null }
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
} ] as TrustManager[], new SecureRandom())
def sf = new SSLSocketFactory(sslContext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)
def httpsScheme = new Scheme("https", sf, 443)
http.client.connectionManager.schemeRegistry.register( httpsScheme )
//================================
1 ответ
Решение
У вас, вероятно, есть новая строка между public X509Certificate[]
а также getAcceptedIssuers() {null}
в результате вставки кода в.
Попробуйте удалить символ новой строки (и отформатировать код до чего-то умеренно читаемого, пока вы в нем), и ошибка должна исчезнуть.