From 0cbb85b0e07e35ad7e8b71d7f84cbc797b6ecada Mon Sep 17 00:00:00 2001 From: "LAPTOP-SB56SG4Q\\86185" Date: Mon, 14 Feb 2022 12:18:18 +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 --- JSD-9531需求确认书.docx | Bin 0 -> 60049 bytes README.md | 5 +- plugin.xml | 20 ++ .../ynjtsso/config/InitializeMonitor.java | 21 ++ .../ynjtsso/config/PluginSimpleConfig.java | 52 ++++ .../ControllerRegisterProvider.java | 14 + .../ynjtsso/controller/ControllerSelf.java | 76 ++++++ .../plugin/xxxx/ynjtsso/utils/FRUtils.java | 255 ++++++++++++++++++ .../plugin/xxxx/ynjtsso/utils/HttpUtils.java | 243 +++++++++++++++++ .../xxxx/ynjtsso/utils/ResponseUtils.java | 94 +++++++ .../eco/plugin/xxxx/ynjtsso/utils/Utils.java | 226 ++++++++++++++++ 使用手册.docx | Bin 0 -> 87993 bytes 12 files changed, 1005 insertions(+), 1 deletion(-) create mode 100644 JSD-9531需求确认书.docx create mode 100644 plugin.xml create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/config/InitializeMonitor.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/config/PluginSimpleConfig.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerRegisterProvider.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerSelf.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/FRUtils.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/HttpUtils.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/ResponseUtils.java create mode 100644 src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/Utils.java create mode 100644 使用手册.docx diff --git a/JSD-9531需求确认书.docx b/JSD-9531需求确认书.docx new file mode 100644 index 0000000000000000000000000000000000000000..53e870954b38d47fd38dffa6cf8504b228ae4110 GIT binary patch literal 60049 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%0A4GNA?fKid%dCYEy?&>OtnhxJ>Ex$>r$BX- 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
    #N6Z$mut*IVP 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�&va%>=*puDz)iO-RbmzP*+ZIcp^|r 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index b26c355..624cbe2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # open-JSD-9531 -JSD-9531 单点登录 \ No newline at end of file +JSD-9531 单点登录\ +免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ +仅作为开发者学习参考使用!禁止用于任何商业用途!\ +为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..4fd3bc9 --- /dev/null +++ b/plugin.xml @@ -0,0 +1,20 @@ + + com.eco.plugin.xxxx.ynjtsso + + yes + 1.0.2 + 10.0 + 2018-07-31 + fr.open + + + com.eco.plugin.xxxx.ynjtsso + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/InitializeMonitor.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/InitializeMonitor.java new file mode 100644 index 0000000..83ccbee --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/InitializeMonitor.java @@ -0,0 +1,21 @@ +package com.eco.plugin.xxxx.ynjtsso.config; + +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor; + +/** + * @author fr.open + * @version 10.0 + * Created by fr.open on 2021-12-03 + */ +public class InitializeMonitor extends AbstractPluginLifecycleMonitor { + @Override + public void afterRun(PluginContext pluginContext) { + PluginSimpleConfig.getInstance(); + } + + @Override + public void beforeStop(PluginContext pluginContext) { + + } +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/PluginSimpleConfig.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/PluginSimpleConfig.java new file mode 100644 index 0000000..a6ba675 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/config/PluginSimpleConfig.java @@ -0,0 +1,52 @@ +package com.eco.plugin.xxxx.ynjtsso.config; + +import com.fr.config.*; +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.eco.plugin.xxxx.ynjtsso.config", text = "单点登录配置", source = Original.PLUGIN) + public static PluginSimpleConfig getInstance() { + if (config == null) { + config = ConfigContext.getConfigInstance(PluginSimpleConfig.class); + } + return config; + } + + @Identifier(value = "userinfo", name = "获取用户信息接口", description = "获取用户信息接口", status = Status.SHOW) + private Conf userinfo = Holders.simple(""); + + @Identifier(value = "tokenstr", name = "token参数名", description = "token参数名", status = Status.SHOW) + private Conf tokenstr = Holders.simple(""); + + public String getUserinfo() { + return userinfo.get(); + } + + public void setUserinfo(String url) { + this.userinfo.set(url); + } + + public String getTokenstr() { + return tokenstr.get(); + } + + public void setTokenstr(String url) { + this.tokenstr.set(url); + } + + @Override + public Object clone() throws CloneNotSupportedException { + PluginSimpleConfig cloned = (PluginSimpleConfig) super.clone(); + return cloned; + } + +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerRegisterProvider.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerRegisterProvider.java new file mode 100644 index 0000000..f312ed8 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerRegisterProvider.java @@ -0,0 +1,14 @@ +package com.eco.plugin.xxxx.ynjtsso.controller; + +import com.fr.decision.fun.impl.AbstractControllerRegisterProvider; +import com.fr.plugin.transform.FunctionRecorder; + +@FunctionRecorder +public class ControllerRegisterProvider extends AbstractControllerRegisterProvider { + @Override + public Class[] getControllers() { + return new Class[]{ + ControllerSelf.class + }; + } +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerSelf.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerSelf.java new file mode 100644 index 0000000..bcdf213 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/controller/ControllerSelf.java @@ -0,0 +1,76 @@ +package com.eco.plugin.xxxx.ynjtsso.controller; + +import com.eco.plugin.xxxx.ynjtsso.config.PluginSimpleConfig; +import com.eco.plugin.xxxx.ynjtsso.utils.FRUtils; +import com.eco.plugin.xxxx.ynjtsso.utils.HttpUtils; +import com.eco.plugin.xxxx.ynjtsso.utils.ResponseUtils; +import com.eco.plugin.xxxx.ynjtsso.utils.Utils; +import com.fr.decision.webservice.annotation.LoginStatusChecker; +import com.fr.json.JSONObject; +import com.fr.plugin.context.PluginContexts; +import com.fr.plugin.transform.FunctionRecorder; +import com.fr.stable.fun.Authorize; +import com.fr.third.springframework.stereotype.Controller; +import com.fr.third.springframework.web.bind.annotation.GetMapping; +import com.fr.third.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +@LoginStatusChecker(required = false) +@FunctionRecorder +@Authorize(callSignKey = "com.eco.plugin.xxxx.ynjtsso") +public class ControllerSelf { + + @GetMapping(value = "/ssologin") + @ResponseBody + public void ssologin(HttpServletRequest request,HttpServletResponse response){ + + //插件授权校验,可忽略 + if(!PluginContexts.currentContext().isAvailable()){ + ResponseUtils.failedResponse(response,"插件授权过期!"); + return ; + } + + //配置类 + PluginSimpleConfig psc = PluginSimpleConfig.getInstance(); + + //获取token的参数名 + String tokenstr = psc.getTokenstr(); + + //获取token + String token = request.getParameter(tokenstr); + //获取跳转链接,登陆成功后跳转用 + String redirect = request.getParameter("redirect"); + + //访问接口,获取用户名 + String username = getUsername(token,psc); + + //帆软的登陆方法,已经封装好 + //四个参数,1.request 2 response 此两项为固定的httpServilet参数,直接传入即可 + //3.username 登陆用户名 4、跳转链接,传""时将不进行跳转,传其他值将自动跳转到相应页面 + FRUtils.login(request,response,username,redirect); + } + + //访问接口,获取用户名 + private static String getUsername(String token,PluginSimpleConfig psc){ + //根据文档拼接http请求链接 + String tokenurl = psc.getUserinfo()+"?access_token="+token; + + //发送http请求获取返回值 + //HttpUtils.httpGet已经封装好,不用管实现,三个参数 1.请求url 2、cookie 3、请求头 2和3没有直接传null即可 + String result = HttpUtils.httpGet(tokenurl,null,null); + + if(Utils.isNullStr(result)){ + return ""; + } + + //将接口返回信息转换为json对象,返回信息格式见文档 + JSONObject jsonResult = new JSONObject(result); + + //获取用户名 loginName为本次单点的用户名 + String username = jsonResult.getString("loginName"); + + return username; + } +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/FRUtils.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/FRUtils.java new file mode 100644 index 0000000..526ec74 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/FRUtils.java @@ -0,0 +1,255 @@ +package com.eco.plugin.xxxx.ynjtsso.utils; + +import com.fr.base.ServerConfig; +import com.fr.base.TableData; +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.file.TableDataConfig; +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.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +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 + * @param token + * @param url + */ + public static void loginByToken(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,String token,String url){ + + FineLoggerFactory.getLogger().info("FRLOG:token:"+token); + FineLoggerFactory.getLogger().info("FRLOG:跳转链接:"+url); + + + //判断用户名是否为空 + if(!Utils.isNullStr(token)){ + writeToken2Cookie(httpServletResponse,token,-1); + + HttpSession session = httpServletRequest.getSession(true); + + httpServletRequest.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME,token); + + session.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME, token); + + if(!Utils.isNullStr(url)){ + try { + httpServletResponse.sendRedirect(url); + } catch (IOException e) { + ResponseUtils.failedResponse(httpServletResponse,"跳转异常!"); + FineLoggerFactory.getLogger().info("FRLOG:跳转异常!"); + } + } + }else{ + ResponseUtils.failedResponse(httpServletResponse,"token不能为空!"); + FineLoggerFactory.getLogger().info("FRLOG:token不能为空!"); + } + } + + /** + * 获取token + * @param httpServletRequest + * @param httpServletResponse + * @param username + * @return + */ + public static String getToken(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,String username){ + String token = ""; + try { + token = LoginService.getInstance().login(httpServletRequest, httpServletResponse, username); + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:获取token失败"+e.getMessage()); + } + + return token; + } + + private static void writeToken2Cookie(HttpServletResponse var1, String var2, int var3) { + try { + if (StringUtils.isNotEmpty(var2)) { + Cookie var4 = new Cookie("fine_auth_token", var2); + long var5 = var3 == -2 ? 1209600000L : (long)var3; + var4.setMaxAge((int)var5); + var4.setPath(ServerConfig.getInstance().getCookiePath()); + var1.addCookie(var4); + Cookie var7 = new Cookie("fine_remember_login", String.valueOf(var3 == -2 ? -2 : -1)); + var7.setMaxAge((int)var5); + var7.setPath(ServerConfig.getInstance().getCookiePath()); + var1.addCookie(var7); + } else { + FineLoggerFactory.getLogger().error("empty token cannot save."); + } + } catch (Exception var8) { + FineLoggerFactory.getLogger().error(var8.getMessage(), var8); + } + + } + + /** + * + * @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); + } + + /** + * 打印FR日志-error + * @param message + */ + public static void FRLogError(String message){ + FineLoggerFactory.getLogger().error("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); + } + + public static TableData getTableData(String serverDataSetName){ + TableData userInfo = TableDataConfig.getInstance().getTableData("serverDataSetName"); + +// DataModel userInfoDM = userInfo.createDataModel(Calculator.createCalculator()); + return userInfo; + } +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/HttpUtils.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/HttpUtils.java new file mode 100644 index 0000000..77e06fb --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/HttpUtils.java @@ -0,0 +1,243 @@ +package com.eco.plugin.xxxx.ynjtsso.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.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 httpGet(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); + int status =response.getStatusLine().getStatusCode(); + HttpEntity entity = response.getEntity(); + String returnResult = EntityUtils.toString(entity, "utf-8"); + + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--status:"+status); + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--returnResult:"+returnResult); + + httpclient.close(); + + if (status == HttpStatus.SC_OK) { + return returnResult; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpUtils.get--exception:"+e.getMessage()); + } + + try { + httpclient.close(); + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:http关闭异常:"+e.getMessage()); + } + + return ""; + } + + /** + * HttpPost请求 + * @param postMethod + * @return + */ + private static String HttpPost(HttpPost postMethod){ + CloseableHttpClient httpclient = createHttpClient(null); + + try { + HttpResponse response = httpclient.execute(postMethod); + int status = response.getStatusLine().getStatusCode(); + HttpEntity entity = response.getEntity(); + String returnResult = EntityUtils.toString(entity, "utf-8"); + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:status:"+status); + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:returnResult:"+returnResult); + httpclient.close(); + + if (status == HttpStatus.SC_OK) { + return returnResult; + } + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:HttpPost:exception:"+e.getMessage()); + } + + try { + httpclient.close(); + } catch (Exception e) { + FineLoggerFactory.getLogger().info("FRLOG:http关闭异常:"+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 (Exception e) { + FRUtils.FRLogInfo("exception:"+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/eco/plugin/xxxx/ynjtsso/utils/ResponseUtils.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/ResponseUtils.java new file mode 100644 index 0000000..b55eb08 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/ResponseUtils.java @@ -0,0 +1,94 @@ +package com.eco.plugin.xxxx.ynjtsso.utils; + +import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.HttpServletRequest; +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(); + } + + public static void response(HttpServletResponse res,JSONObject json){ + PrintWriter pw; + try { + pw = WebUtils.createPrintWriter(res); + } catch (Exception e) { + FineLoggerFactory.getLogger().info(e.getMessage()); + return; + } + res.setContentType("application/json;charset=utf-8"); + String result = json.toString(); + pw.println(result); + pw.flush(); + pw.close(); + } + + public static void responseXml(HttpServletResponse res,String xml){ + PrintWriter pw; + try { + pw = WebUtils.createPrintWriter(res); + } catch (Exception e) { + FineLoggerFactory.getLogger().info(e.getMessage()); + return; + } + res.setContentType("text/xml;charset=utf-8"); + pw.println(xml); + pw.flush(); + pw.close(); + } + + public static void setCSRFHeader(HttpServletResponse httpServletResponse){ + httpServletResponse.setHeader("Access-Control-Allow-Origin", "*"); + httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE,HEAD,PUT,PATCH"); + httpServletResponse.setHeader("Access-Control-Max-Age", "36000"); + httpServletResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,Authorization,authorization"); + } + + public static void responseJsonp(HttpServletRequest req, HttpServletResponse res, JSONObject json){ + PrintWriter pw; + try { + pw = WebUtils.createPrintWriter(res); + } catch (Exception e) { + FineLoggerFactory.getLogger().info(e.getMessage()); + return; + } + res.setContentType("text/javascript;charset=utf-8;charset=utf-8"); + String result = json.toString(); + + String jsonp=req.getParameter("callback"); + + pw.println(jsonp+"("+result+")"); + pw.flush(); + pw.close(); + } +} diff --git a/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/Utils.java b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/Utils.java new file mode 100644 index 0000000..547a053 --- /dev/null +++ b/src/main/java/com/eco/plugin/xxxx/ynjtsso/utils/Utils.java @@ -0,0 +1,226 @@ +package com.eco.plugin.xxxx.ynjtsso.utils; + +import com.fr.base.TemplateUtils; +import com.fr.data.NetworkHelper; +import com.fr.io.utils.ResourceIOUtils; +import com.fr.json.JSONObject; +import com.fr.stable.CodeUtils; +import com.fr.stable.StringUtils; +import com.fr.third.org.apache.commons.codec.digest.DigestUtils; +import com.fr.web.utils.WebUtils; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedReader; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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); + } + + /** + * 帆软shaEncode加密 + */ + + public static String shaEncode(String str){ + return CodeUtils.sha256Encode(str); + } + + /** + * 获取uuid + */ + public static String uuid(){ + return UUID.randomUUID().toString(); + } + + /** + * 替换空字符串 + * @param str + * @param replace + * @return + */ + public static String replaceNullStr(String str,String replace){ + if(isNullStr(str)){ + return replace; + } + + return str; + } + + /** + * 获取请求体 + * @param req + * @return + */ + 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; + } + + /** + * 获取ip + * @return + */ + public static String getIp(HttpServletRequest req){ + String realIp = req.getHeader("X-Real-IP"); + String fw = req.getHeader("X-Forwarded-For"); + if (StringUtils.isNotEmpty(fw) && !"unKnown".equalsIgnoreCase(fw)) { + int var3 = fw.indexOf(","); + return var3 != -1 ? fw.substring(0, var3) : fw; + } else { + fw = realIp; + if (StringUtils.isNotEmpty(realIp) && !"unKnown".equalsIgnoreCase(realIp)) { + return realIp; + } else { + if (StringUtils.isBlank(realIp) || "unknown".equalsIgnoreCase(realIp)) { + fw = req.getHeader("Proxy-Client-IP"); + } + + if (StringUtils.isBlank(fw) || "unknown".equalsIgnoreCase(fw)) { + fw = req.getHeader("WL-Proxy-Client-IP"); + } + + if (StringUtils.isBlank(fw) || "unknown".equalsIgnoreCase(fw)) { + fw = req.getHeader("HTTP_CLIENT_IP"); + } + + if (StringUtils.isBlank(fw) || "unknown".equalsIgnoreCase(fw)) { + fw = req.getHeader("HTTP_X_FORWARDED_FOR"); + } + + if (StringUtils.isBlank(fw) || "unknown".equalsIgnoreCase(fw)) { + fw = req.getRemoteAddr(); + } + + return fw; + } + } + } + + /** + * 根据key获取cookie + * @param req + * @return + */ + public static String getCookieByKey(HttpServletRequest req,String key){ + Cookie[] cookies = req.getCookies(); + String cookie = ""; + + if(cookies == null || cookies.length <=0){ + return ""; + } + + for(int i = 0; i < cookies.length; i++) { + Cookie item = cookies[i]; + if (item.getName().equalsIgnoreCase(key)) { + cookie = item.getValue(); + } + } + + FRUtils.FRLogInfo("cookie:"+cookie); + + return cookie; + } + + /** + * 判断是否是手机端的链接 + * @param req + * @return + */ + public static boolean isMobile(HttpServletRequest req) { + String[] mobileArray = {"iPhone", "iPad", "android", "windows phone", "xiaomi"}; + String userAgent = req.getHeader("user-agent"); + if (userAgent != null && userAgent.toUpperCase().contains("MOBILE")) { + for(String mobile : mobileArray) { + if(userAgent.toUpperCase().contains(mobile.toUpperCase())) { + return true; + } + } + } + return NetworkHelper.getDevice(req).isMobile(); + } + + /** + * 只编码中文 + * @param url + * @return + */ + public static String encodeCH(String url ){ + Matcher matcher = Pattern.compile("[\\u4e00-\\u9fa5]").matcher(url); + + while(matcher.find()){ + String chn = matcher.group(); + url = url.replaceAll(chn, URLEncoder.encode(chn)); + } + + return url; + } + + /** + * 获取web-inf文件夹下的文件 + * filename /resources/ip4enc.properties + */ + public static InputStream getResourcesFile(String filename){ + return ResourceIOUtils.read(filename); + } + + public static void toErrorPage(HttpServletResponse res,String path,Map parameterMap){ + if(parameterMap == null){ + parameterMap = new HashMap(); + } + + try { + String macPage = TemplateUtils.renderTemplate(path, parameterMap); + WebUtils.printAsString(res, macPage); + }catch (Exception e){ + FRUtils.FRLogError("跳转页面异常"); + } + + } +} diff --git a/使用手册.docx b/使用手册.docx new file mode 100644 index 0000000000000000000000000000000000000000..883a48e88ff0dab39eba05507d9df03c418c7388 GIT binary patch literal 87993 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⎵trw_ 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 literal 0 HcmV?d00001