package org.jeecg.modules.cas.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.conn.socket.LayeredConnectionSocketFactory; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class CASServiceUtil { public static void main(String[] args) { String serviceUrl = "https://cas.8f8.com.cn:8443/cas/p3/serviceValidate"; String service = "http://localhost:3003/user/login"; String ticket = "ST-5-1g-9cNES6KXNRwq-GuRET103sm0-DESKTOP-VKLS8B3"; String res = getSTValidate(serviceUrl,ticket, service); System.out.println("---------res-----"+res); } /** * 验证ST */ public static String getSTValidate(String url,String st, String service){ try { url = url+"?service="+service+"&ticket="+st; CloseableHttpClient httpclient = createHttpClientWithNoSsl(); HttpGet httpget = new HttpGet(url); HttpResponse response = httpclient.execute(httpget); String res = readResponse(response); return res == null ? null : (res == "" ? null : res); } catch (Exception e) { e.printStackTrace(); } return ""; } /** * 读取 response body 内容为字符串 * * @param response * @return * @throws IOException */ private static String readResponse(HttpResponse response) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String result = new String(); String line; while ((line = in.readLine()) != null) { result += line; } return result; } /** * 创建模拟客户端(针对 https 客户端禁用 SSL 验证) * * @param cookieStore 缓存的 Cookies 信息 * @return * @throws Exception */ private static CloseableHttpClient createHttpClientWithNoSsl() throws Exception { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] certs, String authType) { // don't check } @Override public void checkServerTrusted(X509Certificate[] certs, String authType) { // don't check } } }; SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, trustAllCerts, null); LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx); return HttpClients.custom() .setSSLSocketFactory(sslSocketFactory) .build(); } }