From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001
From: sws <15810472099@163.com>
Date: 星期六, 26 十一月 2022 16:12:02 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/SignService.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/lf/server/service/all/SignService.java b/src/main/java/com/lf/server/service/all/SignService.java
new file mode 100644
index 0000000..bba4155
--- /dev/null
+++ b/src/main/java/com/lf/server/service/all/SignService.java
@@ -0,0 +1,69 @@
+package com.lf.server.service.all;
+
+import com.lf.server.config.PropertiesConfig;
+import com.lf.server.entity.all.StaticData;
+import com.lf.server.helper.WebHelper;
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 绛惧悕鏈嶅姟绫�
+ * @author WWW
+ */
+@Service
+public class SignService {
+    @Autowired
+    PropertiesConfig propertiesConfig;
+
+    private final static String SUCCESS = "success";
+
+    /**
+     * 鑷姩鐧诲綍Druid
+     */
+    public void loginDruid(HttpServletRequest req, HttpServletResponse res) throws Exception {
+        List<NameValuePair> list = new ArrayList<>();
+        list.add(new BasicNameValuePair("loginUsername", propertiesConfig.getDruidUser()));
+        list.add(new BasicNameValuePair("loginPassword", propertiesConfig.getDruidPwd()));
+
+        String url = req.getRequestURL().toString().replace("/sign/toDruid", "/druid/submitLogin");
+        CloseableHttpClient httpClient = HttpClients.custom().build();
+
+        UrlEncodedFormEntity postEntity = new UrlEncodedFormEntity(list, StaticData.TEXT_ENCODER);
+        HttpPost httpPost = new HttpPost(url);
+        httpPost.setEntity(postEntity);
+
+        CloseableHttpResponse closeResponse = httpClient.execute(httpPost);
+        HttpEntity entity = closeResponse.getEntity();
+
+        String rs = EntityUtils.toString(entity, StaticData.TEXT_ENCODER);
+        if (!SUCCESS.equals(rs)) {
+            return;
+        }
+
+        Header[] headers = closeResponse.getAllHeaders();
+        for (int i = 0; i < headers.length; i++) {
+            Header header = headers[i];
+            if ("Set-Cookie".equals(header.getName())) {
+                String val = header.getValue();
+                String sessionId = val.substring(val.indexOf("=") + 1, val.indexOf(";"));
+                WebHelper.saveCookie(StaticData.DRUID_COOKIE_KEY, sessionId, res);
+                break;
+            }
+        }
+    }
+}

--
Gitblit v1.9.3