基本的なJavaコードを使用してJersey経由でRESTfulリクエストを送信していますが、何らかの理由でJerseyがすべてのURLの最後に:443ポートを追加しているため、CASが失敗します(プロキシチケットは特定のURLに対して別の場所で生成されます;ポートを追加するとこれが壊れます)。
URL の一部として 443 ポートを送信しないように Jersey に指示する方法はありますか?
編集:参考までに、問題が本当にジャージーの内部にあることに気付く前に、以前のチケットを削除しました。
Edit2: 以下のコードを追加しました。いくつかのアイテムを取り除く必要がありましたが、これは基本的に私が使用しているものです. 使用している特定の API を操作するための一般的なメソッドです。URLをテストするためにdoNotSendモードのものを追加しました。URLは:443なしで返されますが、Jerseyを介して実行すると:443が追加され、CAS認証がオフになります。
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
public X509Certificate[] getAcceptedIssuers(){return null;}
public void checkClientTrusted(X509Certificate[] certs, String authType){}
public void checkServerTrusted(X509Certificate[] certs, String authType){}
}};
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
;
}
Client client = Client.create();
String url = Configuration.getOption(CONFIG_REST_URL) + actionPath;
if (dontSendMode) {
GGResponse r = new GGResponse();
r.setUrl(url);
return r;
}
if (StringUtils.isNotEmpty(proxy_ticket)) {
if (url.contains("?")) {
url += "&";
} else {
url += "?";
}
url += String.format("ticket=%s", proxy_ticket);
}
WebResource.Builder resourceBuilder = client
.resource(url)
.accept("application/json");
ClientResponse response = null;
if (method.equalsIgnoreCase("GET")) {
response = resourceBuilder.get(ClientResponse.class);
}
if (method.equalsIgnoreCase("POST")) {
response = resourceBuilder.post(ClientResponse.class, json);
}
if (method.equalsIgnoreCase("DELETE")) {
response = resourceBuilder.delete(ClientResponse.class);
}
if (method.equalsIgnoreCase("PUT")) {
response = resourceBuilder.put(ClientResponse.class, json);
}
String output = null;
String etagResponse = null;
String error = null;
if (response != null && response.getStatus() == 200) {
output = response.getEntity(String.class);
} else {
System.out.println(error);
}