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