From 08564c80bc3909d6378cfb797dfe88a2c7776753 Mon Sep 17 00:00:00 2001 From: "LAPTOP-SB56SG4Q\\86185" Date: Mon, 14 Mar 2022 15:57:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=BC=80=E6=BA=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9D=90=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 10 + JSD-8036-需求确认书.docx | Bin 0 -> 69444 bytes README.md | 5 +- plugin.xml | 19 ++ .../bean/simple/DemoInitializeMonitor.java | 22 ++ .../simple/PluginInitializeFilterBridge.java | 25 ++ .../bean/simple/PluginLocaleFinderBridge.java | 10 + .../simple/account/PluginSimpleConfig.java | 63 +++++ .../handler/ExtendAttrHandlerProvider.java | 13 + .../fr/plugin/http/handler/LiveHandler.java | 74 ++++++ .../fr/plugin/http/handler/LoginHandler.java | 89 +++++++ .../plugin/http/handler/PlayViewHandler.java | 81 ++++++ .../plugin/http/handler/URLAliasProvide.java | 15 ++ .../com/fr/plugin/http/utils/FRUtils.java | 158 ++++++++++++ .../com/fr/plugin/http/utils/HttpUtils.java | 237 ++++++++++++++++++ .../fr/plugin/http/utils/ResponseUtils.java | 39 +++ .../java/com/fr/plugin/http/utils/Utils.java | 94 +++++++ 使用手册.docx | Bin 0 -> 87706 bytes 18 files changed, 953 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 JSD-8036-需求确认书.docx create mode 100644 plugin.xml create mode 100644 src/main/java/com/fr/plugin/http/bean/simple/DemoInitializeMonitor.java create mode 100644 src/main/java/com/fr/plugin/http/bean/simple/PluginInitializeFilterBridge.java create mode 100644 src/main/java/com/fr/plugin/http/bean/simple/PluginLocaleFinderBridge.java create mode 100644 src/main/java/com/fr/plugin/http/bean/simple/account/PluginSimpleConfig.java create mode 100644 src/main/java/com/fr/plugin/http/handler/ExtendAttrHandlerProvider.java create mode 100644 src/main/java/com/fr/plugin/http/handler/LiveHandler.java create mode 100644 src/main/java/com/fr/plugin/http/handler/LoginHandler.java create mode 100644 src/main/java/com/fr/plugin/http/handler/PlayViewHandler.java create mode 100644 src/main/java/com/fr/plugin/http/handler/URLAliasProvide.java create mode 100644 src/main/java/com/fr/plugin/http/utils/FRUtils.java create mode 100644 src/main/java/com/fr/plugin/http/utils/HttpUtils.java create mode 100644 src/main/java/com/fr/plugin/http/utils/ResponseUtils.java create mode 100644 src/main/java/com/fr/plugin/http/utils/Utils.java create mode 100644 使用手册.docx diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29c9cac --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.iml +.idea/ +lib/report/*.jar +target/ +.DS_Store +.gradle +build +local.properties +classes/ +transform-classes/ \ No newline at end of file diff --git a/JSD-8036-需求确认书.docx b/JSD-8036-需求确认书.docx new file mode 100644 index 0000000000000000000000000000000000000000..a83d17e33d13643bcb1b789f741154990ac6c5b6 GIT binary patch literal 69444 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 !yKdSH6A^@;zgJIt{fw?%Cx>NkMp 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�_b3 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 + com.fr.plugin.JSD4643 + + yes + 1.0.2 + 10.0 + 2018-07-31 + fr.open + + + com.fr.plugin.http + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/http/bean/simple/DemoInitializeMonitor.java b/src/main/java/com/fr/plugin/http/bean/simple/DemoInitializeMonitor.java new file mode 100644 index 0000000..75328da --- /dev/null +++ b/src/main/java/com/fr/plugin/http/bean/simple/DemoInitializeMonitor.java @@ -0,0 +1,22 @@ +package com.fr.plugin.http.bean.simple; + +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.http.bean.simple.account.PluginSimpleConfig; +import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor; + +/** + * @author fr.open + * @version 10.0 + * Created by fr.open on 2018-12-04 + */ +public class DemoInitializeMonitor extends AbstractPluginLifecycleMonitor { + @Override + public void afterRun(PluginContext pluginContext) { + PluginSimpleConfig.getInstance(); + } + + @Override + public void beforeStop(PluginContext pluginContext) { + + } +} diff --git a/src/main/java/com/fr/plugin/http/bean/simple/PluginInitializeFilterBridge.java b/src/main/java/com/fr/plugin/http/bean/simple/PluginInitializeFilterBridge.java new file mode 100644 index 0000000..0c72a5b --- /dev/null +++ b/src/main/java/com/fr/plugin/http/bean/simple/PluginInitializeFilterBridge.java @@ -0,0 +1,25 @@ +package com.fr.plugin.http.bean.simple; + + +import com.fr.decision.fun.impl.AbstractEmbedRequestFilterProvider; +import com.fr.plugin.http.bean.simple.account.PluginSimpleConfig; + + +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class PluginInitializeFilterBridge extends AbstractEmbedRequestFilterProvider { + + @Override + public void init(FilterConfig filterConfig) { + PluginSimpleConfig.getInstance(); + } + + @Override + public void filter(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException { + + } +} diff --git a/src/main/java/com/fr/plugin/http/bean/simple/PluginLocaleFinderBridge.java b/src/main/java/com/fr/plugin/http/bean/simple/PluginLocaleFinderBridge.java new file mode 100644 index 0000000..1d27eaf --- /dev/null +++ b/src/main/java/com/fr/plugin/http/bean/simple/PluginLocaleFinderBridge.java @@ -0,0 +1,10 @@ +package com.fr.plugin.http.bean.simple; + +import com.fr.stable.fun.impl.AbstractLocaleFinder; + +public class PluginLocaleFinderBridge extends AbstractLocaleFinder { + @Override + public String find() { + return "conf"; + } +} diff --git a/src/main/java/com/fr/plugin/http/bean/simple/account/PluginSimpleConfig.java b/src/main/java/com/fr/plugin/http/bean/simple/account/PluginSimpleConfig.java new file mode 100644 index 0000000..a84da56 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/bean/simple/account/PluginSimpleConfig.java @@ -0,0 +1,63 @@ +package com.fr.plugin.http.bean.simple.account; + +import com.fr.config.ConfigContext; +import com.fr.config.DefaultConfiguration; +import com.fr.config.Identifier; +import com.fr.config.Status; +import com.fr.config.Visualization; +import com.fr.config.holder.Conf; +import com.fr.config.holder.factory.Holders; +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.record.analyzer.EnableMetrics; + +@Visualization(category = "图片轮播配置") +@EnableMetrics +public class PluginSimpleConfig extends DefaultConfiguration { + + private static volatile PluginSimpleConfig config = null; + + @Focus(id="com.fr.plugin.http.bean.simple", text = "图片轮播配置", source = Original.PLUGIN) + public static PluginSimpleConfig getInstance() { + if (config == null) { + config = ConfigContext.getConfigInstance(PluginSimpleConfig.class); + } + return config; + } + + @Identifier(value = "playView", name = "通道列表弹出播放页面", description = "通道列表弹出播放页面", status = Status.SHOW) + private Conf playView = Holders.simple("http://XXXX/zkdd/live/playView"); + + @Identifier(value = "live", name = "通道轮播切换播放页面", description = "通道轮播切换播放页面", status = Status.SHOW) + private Conf live = Holders.simple("http://XXXX/zkdd/live/switchChanneListView"); + + public String getPlayView() { + return playView.get(); + } + + public void setPlayView(String url) + { + this.playView.set(url); + } + + public String getLive() { + return live.get(); + } + + public void setLive(String url) + { + this.live.set(url); + } + + @Override + public Object clone() throws CloneNotSupportedException { + PluginSimpleConfig cloned = (PluginSimpleConfig) super.clone(); +// cloned.text = (Conf) text.clone(); +// cloned.count = (Conf) count.clone(); +// cloned.price = (Conf) price.clone(); +// cloned.time = (Conf) time.clone(); +// cloned.student = (Conf) student.clone(); + return cloned; + } + +} diff --git a/src/main/java/com/fr/plugin/http/handler/ExtendAttrHandlerProvider.java b/src/main/java/com/fr/plugin/http/handler/ExtendAttrHandlerProvider.java new file mode 100644 index 0000000..906bd45 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/handler/ExtendAttrHandlerProvider.java @@ -0,0 +1,13 @@ +package com.fr.plugin.http.handler; + +import com.fr.decision.fun.HttpHandler; +import com.fr.decision.fun.impl.AbstractHttpHandlerProvider; + +public class ExtendAttrHandlerProvider extends AbstractHttpHandlerProvider { + @Override + public HttpHandler[] registerHandlers() { + return new HttpHandler[]{ + new PlayViewHandler() + }; + } +} diff --git a/src/main/java/com/fr/plugin/http/handler/LiveHandler.java b/src/main/java/com/fr/plugin/http/handler/LiveHandler.java new file mode 100644 index 0000000..dc0e9e0 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/handler/LiveHandler.java @@ -0,0 +1,74 @@ +package com.fr.plugin.http.handler; + +import com.fr.decision.fun.impl.BaseHttpHandler; +import com.fr.plugin.http.bean.simple.account.PluginSimpleConfig; +import com.fr.plugin.http.utils.FRUtils; +import com.fr.plugin.http.utils.HttpUtils; +import com.fr.plugin.http.utils.ResponseUtils; +import com.fr.plugin.http.utils.Utils; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.third.springframework.web.bind.annotation.RequestMethod; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@FunctionRecorder +public class LiveHandler extends BaseHttpHandler { + static { + + } + public LiveHandler() { + } + + @Override + public RequestMethod getMethod() { + return RequestMethod.GET; + } + + @Override + public String getPath() { + return "/live"; + } + + @Override + public boolean isPublic() { + return true; + } + + @Override + public void handle(HttpServletRequest req, HttpServletResponse res) { + + //设备号 + String deviceSerial = req.getParameter("serial"); + + if(Utils.isNullStr(deviceSerial)){ + FRUtils.FRLogInfo("deviceSerial为空!"); + ResponseUtils.failedResponse(res,"deviceSerial不能为空!"); + return ; + } + + String url = PluginSimpleConfig.getInstance().getLive(); + + String postUrl = url+"?serial="+deviceSerial; + FRUtils.FRLogInfo("请求地址:"+postUrl); + + String result = HttpUtils.get(postUrl,null,null); + + try { + PrintWriter pw = WebUtils.createPrintWriter(res); + pw.println(result); + pw.flush(); + pw.close(); + } catch (IOException e) { + FRUtils.FRLogInfo("请求远程接口失败!"); + ResponseUtils.failedResponse(res,"请求远程接口失败!"); + return ; + } + + } + +} + diff --git a/src/main/java/com/fr/plugin/http/handler/LoginHandler.java b/src/main/java/com/fr/plugin/http/handler/LoginHandler.java new file mode 100644 index 0000000..de05f18 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/handler/LoginHandler.java @@ -0,0 +1,89 @@ +package com.fr.plugin.http.handler; + +import com.fr.decision.fun.impl.BaseHttpHandler; +import com.fr.plugin.http.bean.simple.account.PluginSimpleConfig; +import com.fr.plugin.http.utils.FRUtils; +import com.fr.plugin.http.utils.ResponseUtils; +import com.fr.plugin.http.utils.Utils; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.third.org.apache.http.HttpEntity; +import com.fr.third.org.apache.http.HttpResponse; +import com.fr.third.org.apache.http.HttpStatus; +import com.fr.third.org.apache.http.client.methods.HttpPost; +import com.fr.third.org.apache.http.impl.client.CloseableHttpClient; +import com.fr.third.org.apache.http.impl.client.HttpClients; +import com.fr.third.org.apache.http.util.EntityUtils; +import com.fr.third.springframework.web.bind.annotation.RequestMethod; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@FunctionRecorder +public class LoginHandler extends BaseHttpHandler { + static { + + } + public LoginHandler() { + } + + @Override + public RequestMethod getMethod() { + return RequestMethod.GET; + } + + @Override + public String getPath() { + return "/showVideo"; + } + + @Override + public boolean isPublic() { + return true; + } + + @Override + public void handle(HttpServletRequest req, HttpServletResponse res) { + + //设备号 + String deviceSerial = req.getParameter("deviceSerial"); + + if(Utils.isNullStr(deviceSerial)){ + FRUtils.FRLogInfo("deviceSerial不能为空!"); + ResponseUtils.failedResponse(res,"deviceSerial不能为空!"); + return ; + } + + String url = PluginSimpleConfig.getInstance().getRoute(); + + String postUrl = url+"?deviceSerial="+deviceSerial; + FRUtils.FRLogInfo("请求地址:"+postUrl); + + HttpPost postMethod = new HttpPost(postUrl); + + CloseableHttpClient httpclient = HttpClients.createDefault(); + try { + HttpResponse response = httpclient.execute(postMethod); // 执行POST方法 + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { + HttpEntity entity = response.getEntity(); + String returnResult = EntityUtils.toString(entity, "utf-8"); + + FRUtils.FRLogInfo("返回值:"+returnResult); + + PrintWriter pw = WebUtils.createPrintWriter(res); + pw.println(returnResult); + pw.flush(); + pw.close(); + } + } catch (IOException e) { + FRUtils.FRLogInfo("请求远程接口失败!"); + ResponseUtils.failedResponse(res,"请求远程接口失败!"); + return ; + } + + } + +} + diff --git a/src/main/java/com/fr/plugin/http/handler/PlayViewHandler.java b/src/main/java/com/fr/plugin/http/handler/PlayViewHandler.java new file mode 100644 index 0000000..b365c0e --- /dev/null +++ b/src/main/java/com/fr/plugin/http/handler/PlayViewHandler.java @@ -0,0 +1,81 @@ +package com.fr.plugin.http.handler; + +import com.fr.decision.fun.impl.BaseHttpHandler; +import com.fr.plugin.http.bean.simple.account.PluginSimpleConfig; +import com.fr.plugin.http.utils.FRUtils; +import com.fr.plugin.http.utils.HttpUtils; +import com.fr.plugin.http.utils.ResponseUtils; +import com.fr.plugin.http.utils.Utils; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.third.org.apache.http.HttpEntity; +import com.fr.third.org.apache.http.HttpResponse; +import com.fr.third.org.apache.http.HttpStatus; +import com.fr.third.org.apache.http.client.methods.HttpPost; +import com.fr.third.org.apache.http.impl.client.CloseableHttpClient; +import com.fr.third.org.apache.http.impl.client.HttpClients; +import com.fr.third.org.apache.http.util.EntityUtils; +import com.fr.third.springframework.web.bind.annotation.RequestMethod; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@FunctionRecorder +public class PlayViewHandler extends BaseHttpHandler { + static { + + } + public PlayViewHandler() { + } + + @Override + public RequestMethod getMethod() { + return RequestMethod.GET; + } + + @Override + public String getPath() { + return "/getView"; + } + + @Override + public boolean isPublic() { + return true; + } + + @Override + public void handle(HttpServletRequest req, HttpServletResponse res) { + + //设备号 + String deviceSerial = req.getParameter("serial"); + //url 请求网址 + String url = req.getParameter("url"); + + if(Utils.isNullStr(deviceSerial) || Utils.isNullStr(url)){ + FRUtils.FRLogInfo("deviceSerial或Url为空!"); + ResponseUtils.failedResponse(res,"deviceSerial和url不能为空!"); + return ; + } + + String postUrl = url+"?serial="+deviceSerial; + FRUtils.FRLogInfo("请求地址:"+postUrl); + + String result = HttpUtils.get(postUrl,null,null); + + try { + PrintWriter pw = WebUtils.createPrintWriter(res); + pw.println(result); + pw.flush(); + pw.close(); + } catch (IOException e) { + FRUtils.FRLogInfo("请求远程接口失败!"); + ResponseUtils.failedResponse(res,"请求远程接口失败!"); + return ; + } + + } + +} + diff --git a/src/main/java/com/fr/plugin/http/handler/URLAliasProvide.java b/src/main/java/com/fr/plugin/http/handler/URLAliasProvide.java new file mode 100644 index 0000000..fdc99a8 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/handler/URLAliasProvide.java @@ -0,0 +1,15 @@ +package com.fr.plugin.http.handler; + +import com.fr.decision.fun.impl.AbstractURLAliasProvider; +import com.fr.decision.webservice.url.alias.URLAlias; +import com.fr.decision.webservice.url.alias.URLAliasFactory; + +public class URLAliasProvide extends AbstractURLAliasProvider { + @Override + public URLAlias[] registerAlias() { + return new URLAlias[]{ +// URLAliasFactory.createPluginAlias("/live","/live",true), + URLAliasFactory.createPluginAlias("/getView","/getView",true), + }; + } +} diff --git a/src/main/java/com/fr/plugin/http/utils/FRUtils.java b/src/main/java/com/fr/plugin/http/utils/FRUtils.java new file mode 100644 index 0000000..2229151 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/utils/FRUtils.java @@ -0,0 +1,158 @@ +package com.fr.plugin.http.utils; + +import com.fr.decision.authority.AuthorityContext; +import com.fr.decision.authority.data.User; +import com.fr.decision.webservice.login.LogInOutResultInfo; +import com.fr.decision.webservice.utils.DecisionServiceConstants; +import com.fr.decision.webservice.v10.login.LoginService; +import com.fr.decision.webservice.v10.login.event.LogInOutEvent; +import com.fr.decision.webservice.v10.user.UserService; +import com.fr.event.EventDispatcher; +import com.fr.log.FineLoggerFactory; +import com.fr.stable.StringUtils; +import com.fr.stable.query.QueryFactory; +import com.fr.stable.query.restriction.RestrictionFactory; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.util.List; + +public class FRUtils { + /** + * 判断用户是否存在 + * @param userName + * @return + */ + public static boolean isUserExist(String userName){ + if (StringUtils.isEmpty(userName)) { + return false; + } else { + try { + List var1 = AuthorityContext.getInstance().getUserController().find(QueryFactory.create().addRestriction(RestrictionFactory.eq("userName", userName))); + return var1 != null && !var1.isEmpty(); + } catch (Exception var2) { + FineLoggerFactory.getLogger().error(var2.getMessage()); + return false; + } + } + } + + /** + * 判断是否登录FR + * @param req + * @return + */ + public static boolean isLogin(HttpServletRequest req){ + return LoginService.getInstance().isLogged(req); + } + + /** + * 帆软登录 + * @param httpServletRequest + * @param httpServletResponse + * @param userName + * @param url + */ + public static void login(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,String userName,String url){ + + FineLoggerFactory.getLogger().info("FRLOG:用户名:"+userName); + FineLoggerFactory.getLogger().info("FRLOG:跳转链接:"+url); + + + //判断用户名是否为空 + if(!Utils.isNullStr(userName)){ + if(isUserExist(userName)){ + String FRToken = ""; + + try { + HttpSession session = httpServletRequest.getSession(true); + + FRToken = LoginService.getInstance().login(httpServletRequest, httpServletResponse, userName); + + httpServletRequest.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME,FRToken); + + session.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME, FRToken); + EventDispatcher.fire(LogInOutEvent.LOGIN,new LogInOutResultInfo(httpServletRequest,httpServletResponse,userName,true)); + FineLoggerFactory.getLogger().info("FRLOG:登陆成功!"); + + if(!Utils.isNullStr(url)){ + httpServletResponse.sendRedirect(url); + } + } catch (Exception e) { + ResponseUtils.failedResponse(httpServletResponse,"登录异常,请联系管理员!"); + FineLoggerFactory.getLogger().info("FRLOG:登录异常,请联系管理员!"); + FineLoggerFactory.getLogger().info("FRLOGException:"+e.getMessage()); + } + }else{ + ResponseUtils.failedResponse(httpServletResponse,"用户在报表系统中不存在!"); + FineLoggerFactory.getLogger().info("FRLOG:用户在报表系统中不存在!"); + } + }else{ + ResponseUtils.failedResponse(httpServletResponse,"用户名不能为空!"); + FineLoggerFactory.getLogger().info("FRLOG:用户名不能为空!"); + } + } + + /** + * + * @param httpServletRequest + * @param httpServletResponse + */ + public static void logout(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) + { + if(!isLogin(httpServletRequest)){ + return ; + } + + try { + LoginService.getInstance().logout(httpServletRequest,httpServletResponse); + } catch (Exception e) { + ResponseUtils.failedResponse(httpServletResponse,"登出异常,请联系管理员!"); + FineLoggerFactory.getLogger().info("FRLOG:登出异常,请联系管理员!"); + FineLoggerFactory.getLogger().info("FRLOGException:"+e.getMessage()); + } + } + + /** + * 打印FR日志 + * @param message + */ + public static void FRLogInfo(String message){ + FineLoggerFactory.getLogger().info("FRLOG:"+message); + } + + /** + * 根据用户名获取用户信息 + * @param userName + * @return + */ + public static User getFRUserByUserName(String userName){ + try { + return UserService.getInstance().getUserByUserName(userName); + } catch (Exception e) { + FRLogInfo("获取用户信息异常:"+e.getMessage()); + } + + return null; + } + + /** + * 解密FR密码 + * @param password + * @return + */ +// public static String decryptFRPsd(String password){ +// FRLogInfo("解密密码:"+password); +// return TransmissionTool.decrypt(password); +// } + + /** + * 获取带参数的访问链接 + * @return + */ + public static String getAllUrl(HttpServletRequest httpServletRequest){ + return WebUtils.getOriginalURL(httpServletRequest); + } +} diff --git a/src/main/java/com/fr/plugin/http/utils/HttpUtils.java b/src/main/java/com/fr/plugin/http/utils/HttpUtils.java new file mode 100644 index 0000000..31a6eac --- /dev/null +++ b/src/main/java/com/fr/plugin/http/utils/HttpUtils.java @@ -0,0 +1,237 @@ +package com.fr.plugin.http.utils; + +import com.fr.log.FineLoggerFactory; +import com.fr.third.org.apache.http.HttpEntity; +import com.fr.third.org.apache.http.HttpResponse; +import com.fr.third.org.apache.http.HttpStatus; +import com.fr.third.org.apache.http.NameValuePair; +import com.fr.third.org.apache.http.client.CookieStore; +import com.fr.third.org.apache.http.client.entity.UrlEncodedFormEntity; +import com.fr.third.org.apache.http.client.methods.HttpGet; +import com.fr.third.org.apache.http.client.methods.HttpPost; +import com.fr.third.org.apache.http.conn.ssl.NoopHostnameVerifier; +import com.fr.third.org.apache.http.entity.StringEntity; +import com.fr.third.org.apache.http.impl.client.BasicCookieStore; +import com.fr.third.org.apache.http.impl.client.CloseableHttpClient; +import com.fr.third.org.apache.http.impl.client.HttpClients; +import com.fr.third.org.apache.http.impl.cookie.BasicClientCookie; +import com.fr.third.org.apache.http.message.BasicNameValuePair; +import com.fr.third.org.apache.http.ssl.SSLContexts; +import com.fr.third.org.apache.http.ssl.TrustStrategy; +import com.fr.third.org.apache.http.util.EntityUtils; + +import javax.net.ssl.SSLContext; +import javax.servlet.http.Cookie; +import java.io.UnsupportedEncodingException; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class HttpUtils { + /** + * httpGet请求 + * @param url + * @return + */ + public static String get(String url,Cookie[] cookies,Map header){ + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--url:"+url); + + //创建httpClient + CloseableHttpClient httpclient = createHttpClient(cookies); + + HttpGet getMethod = new HttpGet(url); + + if(header != null && header.size() > 0){ + Set keySet = header.keySet(); + + for(String key : keySet){ + getMethod.setHeader(key,header.get(key)); + } + } + + try { + HttpResponse response = httpclient.execute(getMethod); + + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--status:"+response.getStatusLine().getStatusCode()); + + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { + HttpEntity entity = response.getEntity(); + String returnResult = EntityUtils.toString(entity, "utf-8"); + + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--returnResult:"+returnResult); + + return returnResult; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--exception:"+e.getMessage()); + } + + return ""; + } + + /** + * HttpPost请求 + * @param postMethod + * @return + */ + private static String HttpPost(HttpPost postMethod){ + CloseableHttpClient httpclient = createHttpClient(null); + + try { + HttpResponse response = httpclient.execute(postMethod); + + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:status:"+response.getStatusLine().getStatusCode()); + + if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { + HttpEntity entity = response.getEntity(); + String returnResult = EntityUtils.toString(entity, "utf-8"); + + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:returnResult:"+returnResult); + + return returnResult; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:exception:"+e.getMessage()); + } + + return ""; + } + + public static String HttpPostXML(String url, String xmlParam){ + FineLoggerFactory.getLogger().info("FRLOG:HttpPostXML:url:"+url); + + HttpPost postMethod = new HttpPost(url); + + postMethod.setHeader("Content-type", "text/html"); + HttpEntity entity2 = null; + try { + entity2 = new StringEntity(xmlParam); + } catch (UnsupportedEncodingException e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpPostXML:参数异常:"+e.getMessage()); + return ""; + } + + postMethod.setEntity(entity2); + + return HttpPost(postMethod); + } + + public static String HttpPostJson(String url, String param,Map header){ + FineLoggerFactory.getLogger().info("FRLOG:HttpPostJSON:url:"+url); + + HttpPost postMethod = new HttpPost(url); + + postMethod.setHeader("Content-Type","application/json"); + + if(header != null && header.size() > 0){ + Set keySet = header.keySet(); + + for(String key : keySet){ + postMethod.setHeader(key,header.get(key)); + } + } + + if(!Utils.isNullStr(param)){ + HttpEntity entity2 = null; + try { + entity2 = new StringEntity(param); + } catch (UnsupportedEncodingException e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpPostJSON:参数异常:"+e.getMessage()); + return ""; + } + + postMethod.setEntity(entity2); + } + + return HttpPost(postMethod); + } + + public static String HttpPostWWWForm(String url, Map header,Map param){ + FineLoggerFactory.getLogger().info("FRLOG:HttpWWWForm:url:"+url); + + HttpPost postMethod = new HttpPost(url); + + if(header != null && header.size() > 0){ + Set keySet = header.keySet(); + + for(String key : keySet){ + postMethod.setHeader(key,header.get(key)); + } + } + + if(param != null && param.size() > 0){ + List params = new ArrayList(param.size()); + + for(Map.Entry map : param.entrySet()){ + params.add(new BasicNameValuePair(map.getKey(), map.getValue())); + } + + try { + postMethod.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + } catch (UnsupportedEncodingException e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpWWWForm:异常:"+e.getMessage()); + return ""; + } + } + + return HttpPost(postMethod); + } + + private static CloseableHttpClient createHttpClient(Cookie[] cookies){ + + SSLContext sslContext = null; + try { + sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { + @Override + public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { + return true; + } + }).build(); + } catch (NoSuchAlgorithmException e) { + FRUtils.FRLogInfo("createHttpClientException:"+e.getMessage()); + } catch (KeyManagementException e) { + FRUtils.FRLogInfo("createHttpClientException:"+e.getMessage()); + } catch (KeyStoreException e) { + FRUtils.FRLogInfo("createHttpClientException:"+e.getMessage()); + } + + CloseableHttpClient httpclient = null; + + if(cookies != null && cookies.length > 0){ + CookieStore cookieStore = cookieToCookieStore(cookies); + + httpclient = HttpClients.custom().setSslcontext(sslContext). + setSSLHostnameVerifier(new NoopHostnameVerifier()).setDefaultCookieStore(cookieStore).build(); + } + else{ + httpclient = HttpClients.custom().setSslcontext(sslContext). + setSSLHostnameVerifier(new NoopHostnameVerifier()).build(); + } + + return httpclient; + } + + /** + * cookies转cookieStore + * @param cookies + * @return + */ + public static CookieStore cookieToCookieStore(Cookie[] cookies){ + CookieStore cookieStore = new BasicCookieStore(); + + if(cookies != null && cookies.length>0){ + for(Cookie cookie : cookies){ + BasicClientCookie cookie1 = new BasicClientCookie(cookie.getName(), cookie.getValue()); + cookieStore.addCookie(cookie1); + } + } + + return cookieStore; + } +} diff --git a/src/main/java/com/fr/plugin/http/utils/ResponseUtils.java b/src/main/java/com/fr/plugin/http/utils/ResponseUtils.java new file mode 100644 index 0000000..54eb348 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/utils/ResponseUtils.java @@ -0,0 +1,39 @@ +package com.fr.plugin.http.utils; + +import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +public class ResponseUtils { + private static final int SUCCESS = 200; + private static final int FAILED = -1; + + public static void successResponse(HttpServletResponse res, String body) { + response(res, body, SUCCESS); + } + + public static void failedResponse(HttpServletResponse res, String body) { + response(res, body, FAILED); + } + + private static void response(HttpServletResponse res, String body, int code) { + JSONObject object = new JSONObject(); + PrintWriter pw; + try { + object.put("code", code); + object.put("data", body); + pw = WebUtils.createPrintWriter(res); + } catch (Exception e) { + FineLoggerFactory.getLogger().info(e.getMessage()); + return; + } + res.setContentType("application/json;charset=utf-8"); + String result = object.toString(); + pw.println(result); + pw.flush(); + pw.close(); + } +} diff --git a/src/main/java/com/fr/plugin/http/utils/Utils.java b/src/main/java/com/fr/plugin/http/utils/Utils.java new file mode 100644 index 0000000..612c8f1 --- /dev/null +++ b/src/main/java/com/fr/plugin/http/utils/Utils.java @@ -0,0 +1,94 @@ +package com.fr.plugin.http.utils; + +import com.fr.json.JSONObject; +import com.fr.stable.CodeUtils; +import com.fr.third.org.apache.commons.codec.digest.DigestUtils; +import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.util.UUID; + +public class Utils { + + /** + * 判断字符串是否为空 + * @param str + * @return true 空字符串 false 非空字符串 + */ + public static boolean isNullStr(String str){ + return !(str != null && !str.isEmpty() && !"null".equals(str)); + } + + /** + * 判断字符串是否非空 + * @param str + * @return + */ + public static boolean isNotNullStr(String str){ + return !isNullStr(str); + } + + /** + * MD5加密 + * @param str + * @return + */ + public static String getMd5Str(String str) + { + return DigestUtils.md5Hex(str); + } + + + /** + * 获取完整的访问路径 + */ + public static String getAllUrl(HttpServletRequest req, String queryStr){ + String url = req.getRequestURL().toString(); + + if(isNullStr(queryStr)){ + return url; + } + + return url+"?"+queryStr; + } + + /** + * 帆软shaEncode加密 + */ + + public static String shaEncode(String str){ + return CodeUtils.sha256Encode(str); + } + + /** + * 获取uuid + */ + public static String uuid(){ + return UUID.randomUUID().toString(); + } + + public static String replaceNullStr(String str,String replace){ + if(isNullStr(str)){ + return replace; + } + + return str; + } + + public static JSONObject getRequestBody(HttpServletRequest req){ + StringBuffer sb = new StringBuffer(); + String line = null; + try { + BufferedReader reader = req.getReader(); + while ((line = reader.readLine()) != null) + sb.append(line); + } catch (Exception e) { + FRUtils.FRLogInfo("getRequestBody:exception:"+e.getMessage()); + } + //将空格和换行符替换掉避免使用反序列化工具解析对象时失败 + String jsonString = sb.toString().replaceAll("\\s","").replaceAll("\n",""); + + JSONObject json = new JSONObject(jsonString); + + return json; + } +} diff --git a/使用手册.docx b/使用手册.docx new file mode 100644 index 0000000000000000000000000000000000000000..a77fa6f47fb8cd828d3a666c2d0fa268c8c2bc79 GIT binary patch literal 87706 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%0DxeqSm7>aAscp)!`x+MeSFG6C6J+ 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⎵trw_!W=WY+rmxg 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 literal 0 HcmV?d00001