123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 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();
- }
- }
|