diff --git a/0821_2/getCockpit.jsp b/0821_2/getCockpit.jsp deleted file mode 100644 index 8b62fe2..0000000 --- a/0821_2/getCockpit.jsp +++ /dev/null @@ -1,641 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: xvshanshan - Date: 2023/7/3 - Time: 9:23 - To change this template use File | Settings | File Templates. ---%> -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> -<%@ page import="java.io.*" %> -<%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> -<%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%! - //获取分页sql - public static String getPaginationSql(String sql, String orderby, int pageNo, int pageSize) { - String execSql = ""; - - RecordSet rs = new RecordSet(); - String dbType = rs.getDBType(); -// String dbType = "oracle"; -// String dbType = "sqlserver"; - int firstResult = 0; - int endResult = 0; - // 返回分页sql - if("oracle".equals(dbType)){ // rownum - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby + ") tableUN " + ") tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - }else if("sqlserver".equals(dbType)){ - sql="select *,row_number()OVER("+orderby+") as rn from ("+sql+") newt"; - execSql = "select * from ( " + - sql+")fy " + - " where rn between ("+pageNo+"-1)*"+pageSize+"+1 and "+pageNo+"*"+pageSize+" "; - }else { // 使用 ROW_NUMBER OVER()分页 - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby +") tableUN ) tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - } - rs.writeLog("execSql---->"+execSql); - return execSql; - } - - - private boolean isEmpty(String str) { - if ("".equals(str) ||"(null)".equals(str) || str == null) { - return true; - } else { - return false; - } - } - - /** - * 获取指定类型的src值的集合 - * @param htmlStr - * @param type 标签名称 - * @return - */ - public static Set getSrcStr(String htmlStr, String type) { - Set srcs = new HashSet(); - String src = ""; - Pattern p_src; - Matcher m_src; -// String regEx_img = "]*?>"; //图片链接地址 - String regEx_src = "<"+type+".*src\\s*=\\s*(.*?)[^>]*?>"; - p_src = Pattern.compile - (regEx_src, Pattern.CASE_INSENSITIVE); - m_src = p_src.matcher(htmlStr); - while (m_src.find()) { -// 得到数据 - src = m_src.group(); -// 匹配中的src数据 - Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src); - while (m.find()) { - srcs.add(m.group(1)); - } - } - return srcs; - } - - public User getUser(int uid){ - User user = new User(); - RecordSet rs = new RecordSet(); - if (uid == 1) - rs.executeQuery("select * from hrmresourcemanager where id=?", uid); - else { - rs.executeQuery("select * from hrmresource where id=?", uid); - } - String userid = ""; - if (rs.next()) { - userid = rs.getString("id"); - user.setUid(rs.getInt("id")); - user.setLogintype("1"); - user.setLoginid(rs.getString("loginid")); - user.setFirstname(rs.getString("firstname")); - user.setLastname(rs.getString("lastname")); - user.setAliasname(rs.getString("aliasname")); - user.setTitle(rs.getString("title")); - user.setTitlelocation(rs.getString("titlelocation")); - user.setSex(rs.getString("sex")); - String langid = rs.getString("systemlanguage"); - user.setLanguage(Util.getIntValue(langid, 0)); - user.setTelephone(rs.getString("telephone")); - user.setMobile(rs.getString("mobile")); - user.setMobilecall(rs.getString("mobilecall")); - user.setEmail(rs.getString("email")); - user.setCountryid(rs.getString("countryid")); - user.setLocationid(rs.getString("locationid")); - user.setResourcetype(rs.getString("resourcetype")); - user.setStartdate(rs.getString("startdate")); - user.setEnddate(rs.getString("enddate")); - user.setContractdate(rs.getString("contractdate")); - user.setJobtitle(rs.getString("jobtitle")); - user.setJobgroup(rs.getString("jobgroup")); - user.setJobactivity(rs.getString("jobactivity")); - user.setJoblevel(rs.getString("joblevel")); - user.setSeclevel(rs.getString("seclevel")); - user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"),0)); - user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"),0)); - user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"),0)); - user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"),0)); - user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"),0)); - user.setManagerid(rs.getString("managerid")); - user.setAssistantid(rs.getString("assistantid")); - user.setPurchaselimit(rs.getString("purchaselimit")); - user.setCurrencyid(rs.getString("currencyid")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String lastLoginDate = sdf.format(new Date()); - user.setLastlogindate(lastLoginDate); - user.setLogintype("1"); - user.setAccount(rs.getString("account")); - } - return user; - } - - - - public String httpPostRequest(String param,String url,String token){ - BaseBean baseBean = new BaseBean(); - JSONObject jsonObject = new JSONObject(); - String responseBody=""; - try { - CloseableHttpClient httpClient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(url); - JSONObject jsonString = JSON.parseObject(param); - - //设置请求体参数 - StringEntity entity = new StringEntity(param,"utf-8"); - baseBean.writeLog("entity-param->"+param); - baseBean.writeLog("entity-->"+entity); - entity.setContentEncoding("utf-8"); - baseBean.writeLog("entity-utf-8->"+entity); - httpPost.setEntity(entity); - //设置请求头部 - httpPost.setHeader("Content-Type", "application/json"); - if(token != null && !"".equals(token)){ - httpPost.setHeader("Authorization",token); - } - //执行请求,返回请求响应 - CloseableHttpResponse response = httpClient.execute(httpPost); - //请求返回状态码 - int statusCode = response.getStatusLine().getStatusCode(); - baseBean.writeLog("statusCode状态码->"+statusCode); - //请求成功 - if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) { - //取出响应体 - HttpEntity entity2 = response.getEntity(); - //从响应体中解析出token - responseBody = EntityUtils.toString(entity2, "utf-8"); -// jsonObject = JSONObject.parseObject(responseBody); - baseBean.writeLog("responseBody->"+responseBody); -// baseBean.writeLog("jsonObject->"+jsonObject); - //token = jsonObject.getString("access_token"); - } else { - //请求失败 - throw new ClientProtocolException("请求失败,响应码为:" + statusCode); - } - } catch (Exception e) { - e.printStackTrace(); - } - return responseBody; - } - - /** - * 发送http get请求 - */ - public static String httpGet(String url,Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - String content = null; - //since 4.3 不再使用 DefaultHttpClient - try { - closeableHttpClient = HttpClientBuilder.create().build(); - HttpGet httpGet = new HttpGet(url); - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpGet.setHeader(entry.getKey(),entry.getValue()); - } - } - - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - httpResponse = closeableHttpClient.execute(httpGet); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - BaseBean bb = new BaseBean(); - String result = ""; - PrintWriter out = null; - BufferedReader in = null; - HttpURLConnection connection = null; - try { - URL postUrl = new URL(url); - bb.writeLog("getUrl-->"+postUrl); - // 打开和URL之间的连接 - connection = (HttpURLConnection) postUrl.openConnection(); - - // 在connect之前,设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.setRequestProperty("Charsert", "UTF-8"); - - connection.setConnectTimeout(15000); - connection.setReadTimeout(60000); - // 发送POST请求必须设置如下两行,参数要放在http正文内 - connection.setDoOutput(true); - connection.setDoInput(true); - // 默认是 GET方式 - connection.setRequestMethod("POST"); - // Post 请求不使用缓存 - connection.setUseCaches(false); - // 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等 - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.connect(); - - // 参数要放在http正文内 - //1.获取URLConnection对象对应的输出流 - out = new PrintWriter(connection.getOutputStream()); - //2.中文有乱码的需要将PrintWriter改为如下 - //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8") - out.print(param); - out.flush(); - //也可以使用DataOutputStream -// DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); -// dos.writeBytes(param); -// dos.flush(); -// dos.close(); - - // 定义BufferedReader输入流来读取URL的响应 - if (connection.getResponseCode() == 200) { - in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } - } catch (Exception e) { - bb.writeLog("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - if (connection != null) { - //关闭连接 - connection.disconnect(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } - - - /** - * 发送 http post 请求,参数以form表单键值对的形式提交。 - */ - public static String httpPostForm(String url,Map params, Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - - String content = null; - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - try { - - closeableHttpClient = HttpClients.createDefault(); - HttpPost httpost = new HttpPost(url); - - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpost.setHeader(entry.getKey(),entry.getValue()); - } - } - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - bb.writeLog("params="+params); - //组织请求参数 - List paramList = new ArrayList (); - if(params != null && params.size() > 0){ - Set keySet = params.keySet(); - for(String key : keySet) { - paramList.add(new BasicNameValuePair(key, params.get(key))); - } - } - httpost.setEntity(new UrlEncodedFormEntity(paramList, encode)); - - httpResponse = closeableHttpClient.execute(httpost); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 公钥加密 - * - * @param content 内容 - * @param publicKey 公钥 - * @return 加密后的密文 - * @throws Exception 异常信息 - */ - public static String encrypt(String content, String publicKey) throws Exception { - //base64编码的公钥 - byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(publicKey); - RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); - //RSA加密 - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, pubKey); - return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); - } - - public static String getPublicKey(String str){ - BaseBean bb = new BaseBean(); - String publicKey =""; - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取publicKey接口 - Map headers = new HashMap<>(); - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","publicKeyUrl")); - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - String msg = httpGet(url,headers,null); - bb.writeLog("===获取publickey返回值===="+msg); - try { - org.json.JSONObject resMsg = new org.json.JSONObject(msg); - bb.writeLog("===获取publickey返回值===="+resMsg); - if(resMsg.has("pubKey")){ - publicKey = Util.null2String(resMsg.get("pubKey").toString()); - } - }catch (Exception e){ - e.getMessage(); - } - return publicKey; - } - - //获取TG - public static String getST(String tgt,String emobileUrl,String id){ - BaseBean bb = new BaseBean(); - String ST = ""; - String retMsg = ""; - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取TG接口 - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl")); - bb.writeLog("==获取TG=="+url); - //移动端首页地址 - - bb.writeLog("==移动端首页地址=="+emobileUrl); - String str = "1510"+id+"015"; - //获取TGT - params = new HashMap<>();//参数 - params.put("tgt",tgt); - params.put("service",emobileUrl); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - try { - - retMsg = httpPostForm(url,params,headers,null); - bb.writeLog("===获取ST返回值===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取ST返回值resMsg===="+resMsg); - if(resMsg.has("ST")){ - ST = Util.null2String(resMsg.get("ST").toString()); - } - bb.writeLog("===获取ST===="+ST); - }catch(Exception e){ - throw new RuntimeException(e); - } - return retMsg; - - } - -%> -<% - RecordSet rs = new RecordSet(); - BaseBean bb=new BaseBean(); - RSA rsa = new RSA(); - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - JSONArray array = new JSONArray(); - List decriptList = new ArrayList<>(); - String ST ="";//获取ST - bb.writeLog("进入getCockpit.jap-->"); - String login_id = ""; - String user_password = ""; - - User user = HrmUserVarify.getUser(request, response); - int uid = user.getUID(); - bb.writeLog("uid-->"+uid); - String loginIdd = user.getLoginid(); - bb.writeLog("loginIdd-->"+loginIdd); - rs.executeQuery("select id,loginid,password,createtime from EmobileLoginDetail where id=?", uid); - if(rs.next()){ - login_id = Util.null2String(rs.getString("loginid")); - user_password = Util.null2String(rs.getString("password")); - } - bb.writeLog("login_id-->"+login_id); - bb.writeLog("user_password-->"+user_password); - //获取session - session = request.getSession(true); - String certified_token = Util.null2String(session.getAttribute("certified_token")); - bb.writeLog("获取sessionTGT=="+certified_token); - //获取cookie - Cookie[] cookies = request.getCookies(); - bb.writeLog("获取cookies=="+cookies); - String idd = ""; - if(cookies != null){ - for(Cookie cookie:cookies){ - bb.writeLog("获取cookiesName=="+cookie.getName()); - if(cookie.getName().equals("loginidweaver")){ - idd = cookie.getValue(); - bb.writeLog("获取idd=="+idd); - } - } - } - //查询 - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));//publicKey - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url - String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl")); - String tgturl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","tgtUrl"));//请求获取TGT地址 - //获取ST,带着下游系统 -// if (!isEmpty(certified_token)){ -// String responseInfo = getST(certified_token,cockpitUrl,loginIdd); -// bb.writeLog("进入responseInfo-->"+responseInfo); -// if (isEmpty(responseInfo)){ -// out.print("单点系统接口返回值为null"); -// return; -// }else { -// org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); -// if(stMsg.has("ST")){ -// ST = Util.null2String(stMsg.get("ST").toString()); -// }else{ -// out.print(Util.null2String(stMsg.getString("message"))); -// return; -// } -// -// String loginUrl = ""; -// boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; -// if(isEm == true){ -// // loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?download=false&showToolbar=false&ticket="+ST; -// loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E7%BB%8F%E8%90%A5%E6%8A%A5%E8%A1%A8.db&ticket="+ST; -// } -// -// //loginUrl = "https://www.baidu.com/"; -// bb.writeLog("loginUrl-->"+loginUrl); -// out.print("跳转路径-->"+loginUrl); -// out.print("进入驾驶舱成功"); -// response.sendRedirect(loginUrl); -// // return; -// } -// }else { - String TGT =""; - String passWord =""; - String retMsg =""; - decriptList.add(login_id); - decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); - String loginId = resultList.get(0); - String userPassword = resultList.get(1); - String str = "1510"+login_id+"015"; - String publicKey = getPublicKey(str); - passWord = encrypt(user_password, publicKey); - params = new HashMap<>();//参数 - params.put("username",loginId); - params.put("password",passWord); - bb.writeLog("==STparams=="+params); - - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - - retMsg = httpPostForm(tgturl,params,headers,null); - bb.writeLog("===获取TGT返回值retMsg===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取TGT返回值===="+resMsg); - if(resMsg.has("TGT")){ - TGT = Util.null2String(resMsg.get("TGT").toString()); - } - String responseInfo = getST(TGT,cockpitUrl,login_id); - if (isEmpty(responseInfo)){ - out.print("单点系统接口返回值为null"); - return; - }else { - org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); - if(stMsg.has("ST")){ - ST = Util.null2String(stMsg.get("ST").toString()); - }else{ - out.print(Util.null2String(stMsg.getString("message"))); - return; - } - - String loginUrl = ""; - boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; - if(isEm == true){ - // loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?download=false&showToolbar=false&ticket="+ST; - loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E7%BB%8F%E8%90%A5%E6%8A%A5%E8%A1%A8.db&ticket="+ST; - //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; - } - - bb.writeLog("loginUrl-->"+loginUrl); - out.print("跳转路径-->"+loginUrl); - out.print("进入驾驶舱成功"); - response.sendRedirect(loginUrl); - // } - - // out.print("进入驾驶舱系统失败,请先获取标识"); - //return; - } - -%> - -  diff --git a/0821_2/getHB.jsp b/0821_2/getHB.jsp deleted file mode 100644 index 9d285ec..0000000 --- a/0821_2/getHB.jsp +++ /dev/null @@ -1,651 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: xvshanshan - Date: 2023/7/3 - Time: 9:23 - To change this template use File | Settings | File Templates. ---%> -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> -<%@ page import="java.io.*" %> -<%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> -<%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%@ page import="com.engine.common.util.ParamUtil" %> -<%! - //获取分页sql - public static String getPaginationSql(String sql, String orderby, int pageNo, int pageSize) { - String execSql = ""; - - RecordSet rs = new RecordSet(); - String dbType = rs.getDBType(); -// String dbType = "oracle"; -// String dbType = "sqlserver"; - int firstResult = 0; - int endResult = 0; - // 返回分页sql - if("oracle".equals(dbType)){ // rownum - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby + ") tableUN " + ") tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - }else if("sqlserver".equals(dbType)){ - sql="select *,row_number()OVER("+orderby+") as rn from ("+sql+") newt"; - execSql = "select * from ( " + - sql+")fy " + - " where rn between ("+pageNo+"-1)*"+pageSize+"+1 and "+pageNo+"*"+pageSize+" "; - }else { // 使用 ROW_NUMBER OVER()分页 - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby +") tableUN ) tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - } - rs.writeLog("execSql---->"+execSql); - return execSql; - } - - - private boolean isEmpty(String str) { - if ("".equals(str) ||"(null)".equals(str) || str == null) { - return true; - } else { - return false; - } - } - - /** - * 获取指定类型的src值的集合 - * @param htmlStr - * @param type 标签名称 - * @return - * 简历 - */ - public static Set getSrcStr(String htmlStr, String type) { - Set srcs = new HashSet(); - String src = ""; - Pattern p_src; - Matcher m_src; -// String regEx_img = "]*?>"; //图片链接地址 - String regEx_src = "<"+type+".*src\\s*=\\s*(.*?)[^>]*?>"; - p_src = Pattern.compile - (regEx_src, Pattern.CASE_INSENSITIVE); - m_src = p_src.matcher(htmlStr); - while (m_src.find()) { -// 得到数据 - src = m_src.group(); -// 匹配中的src数据 - Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src); - while (m.find()) { - srcs.add(m.group(1)); - } - } - return srcs; - } - - public User getUser(int uid){ - User user = new User(); - RecordSet rs = new RecordSet(); - if (uid == 1) - rs.executeQuery("select * from hrmresourcemanager where id=?", uid); - else { - rs.executeQuery("select * from hrmresource where id=?", uid); - } - String userid = ""; - if (rs.next()) { - userid = rs.getString("id"); - user.setUid(rs.getInt("id")); - user.setLogintype("1"); - user.setLoginid(rs.getString("loginid")); - user.setFirstname(rs.getString("firstname")); - user.setLastname(rs.getString("lastname")); - user.setAliasname(rs.getString("aliasname")); - user.setTitle(rs.getString("title")); - user.setTitlelocation(rs.getString("titlelocation")); - user.setSex(rs.getString("sex")); - String langid = rs.getString("systemlanguage"); - user.setLanguage(Util.getIntValue(langid, 0)); - user.setTelephone(rs.getString("telephone")); - user.setMobile(rs.getString("mobile")); - user.setMobilecall(rs.getString("mobilecall")); - user.setEmail(rs.getString("email")); - user.setCountryid(rs.getString("countryid")); - user.setLocationid(rs.getString("locationid")); - user.setResourcetype(rs.getString("resourcetype")); - user.setStartdate(rs.getString("startdate")); - user.setEnddate(rs.getString("enddate")); - user.setContractdate(rs.getString("contractdate")); - user.setJobtitle(rs.getString("jobtitle")); - user.setJobgroup(rs.getString("jobgroup")); - user.setJobactivity(rs.getString("jobactivity")); - user.setJoblevel(rs.getString("joblevel")); - user.setSeclevel(rs.getString("seclevel")); - user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"),0)); - user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"),0)); - user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"),0)); - user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"),0)); - user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"),0)); - user.setManagerid(rs.getString("managerid")); - user.setAssistantid(rs.getString("assistantid")); - user.setPurchaselimit(rs.getString("purchaselimit")); - user.setCurrencyid(rs.getString("currencyid")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String lastLoginDate = sdf.format(new Date()); - user.setLastlogindate(lastLoginDate); - user.setLogintype("1"); - user.setAccount(rs.getString("account")); - } - return user; - } - - - - public String httpPostRequest(String param,String url,String token){ - BaseBean baseBean = new BaseBean(); - JSONObject jsonObject = new JSONObject(); - String responseBody=""; - try { - CloseableHttpClient httpClient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(url); - JSONObject jsonString = JSON.parseObject(param); - - //设置请求体参数 - StringEntity entity = new StringEntity(param,"utf-8"); - baseBean.writeLog("entity-param->"+param); - baseBean.writeLog("entity-->"+entity); - entity.setContentEncoding("utf-8"); - baseBean.writeLog("entity-utf-8->"+entity); - httpPost.setEntity(entity); - //设置请求头部 - httpPost.setHeader("Content-Type", "application/json"); - if(token != null && !"".equals(token)){ - httpPost.setHeader("Authorization",token); - } - //执行请求,返回请求响应 - CloseableHttpResponse response = httpClient.execute(httpPost); - //请求返回状态码 - int statusCode = response.getStatusLine().getStatusCode(); - baseBean.writeLog("statusCode状态码->"+statusCode); - //请求成功 - if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) { - //取出响应体 - HttpEntity entity2 = response.getEntity(); - //从响应体中解析出token - responseBody = EntityUtils.toString(entity2, "utf-8"); -// jsonObject = JSONObject.parseObject(responseBody); - baseBean.writeLog("responseBody->"+responseBody); -// baseBean.writeLog("jsonObject->"+jsonObject); - //token = jsonObject.getString("access_token"); - } else { - //请求失败 - throw new ClientProtocolException("请求失败,响应码为:" + statusCode); - } - } catch (Exception e) { - e.printStackTrace(); - } - return responseBody; - } - - /** - * 发送http get请求 - */ - public static String httpGet(String url,Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - String content = null; - //since 4.3 不再使用 DefaultHttpClient - try { - closeableHttpClient = HttpClientBuilder.create().build(); - HttpGet httpGet = new HttpGet(url); - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpGet.setHeader(entry.getKey(),entry.getValue()); - } - } - - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - httpResponse = closeableHttpClient.execute(httpGet); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - BaseBean bb = new BaseBean(); - String result = ""; - PrintWriter out = null; - BufferedReader in = null; - HttpURLConnection connection = null; - try { - URL postUrl = new URL(url); - bb.writeLog("getUrl-->"+postUrl); - // 打开和URL之间的连接 - connection = (HttpURLConnection) postUrl.openConnection(); - - // 在connect之前,设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.setRequestProperty("Charsert", "UTF-8"); - - connection.setConnectTimeout(15000); - connection.setReadTimeout(60000); - // 发送POST请求必须设置如下两行,参数要放在http正文内 - connection.setDoOutput(true); - connection.setDoInput(true); - // 默认是 GET方式 - connection.setRequestMethod("POST"); - // Post 请求不使用缓存 - connection.setUseCaches(false); - // 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等 - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.connect(); - - // 参数要放在http正文内 - //1.获取URLConnection对象对应的输出流 - out = new PrintWriter(connection.getOutputStream()); - //2.中文有乱码的需要将PrintWriter改为如下 - //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8") - out.print(param); - out.flush(); - //也可以使用DataOutputStream -// DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); -// dos.writeBytes(param); -// dos.flush(); -// dos.close(); - - // 定义BufferedReader输入流来读取URL的响应 - if (connection.getResponseCode() == 200) { - in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } - } catch (Exception e) { - bb.writeLog("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - if (connection != null) { - //关闭连接 - connection.disconnect(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } - - - /** - * 发送 http post 请求,参数以form表单键值对的形式提交。 - */ - public static String httpPostForm(String url,Map params, Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - - String content = null; - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - try { - - closeableHttpClient = HttpClients.createDefault(); - HttpPost httpost = new HttpPost(url); - - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpost.setHeader(entry.getKey(),entry.getValue()); - } - } - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - bb.writeLog("params="+params); - //组织请求参数 - List paramList = new ArrayList (); - if(params != null && params.size() > 0){ - Set keySet = params.keySet(); - for(String key : keySet) { - paramList.add(new BasicNameValuePair(key, params.get(key))); - } - } - httpost.setEntity(new UrlEncodedFormEntity(paramList, encode)); - - httpResponse = closeableHttpClient.execute(httpost); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 公钥加密 - * - * @param content 内容 - * @param publicKey 公钥 - * @return 加密后的密文 - * @throws Exception 异常信息 - */ - public static String encrypt(String content, String publicKey) throws Exception { - //base64编码的公钥 - byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(publicKey); - RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); - //RSA加密 - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, pubKey); - return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); - } - - public static String getPublicKey(){ - BaseBean bb = new BaseBean(); - String publicKey =""; - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取publicKey接口 - Map headers = new HashMap<>(); - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","publicKeyUrl")); - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - String msg = httpGet(url,headers,null); - bb.writeLog("===获取publickey返回值===="+msg); - try { - org.json.JSONObject resMsg = new org.json.JSONObject(msg); - bb.writeLog("===获取publickey返回值===="+resMsg); - if(resMsg.has("pubKey")){ - publicKey = Util.null2String(resMsg.get("pubKey").toString()); - } - }catch (Exception e){ - e.getMessage(); - } - return publicKey; - } - - //获取TG - public static String getST(String tgt,String emobileUrl){ - BaseBean bb = new BaseBean(); - String ST = ""; - String retMsg = ""; - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取TG接口 - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl")); - bb.writeLog("==获取TG=="+url); - //移动端首页地址 - - bb.writeLog("==移动端首页地址=="+emobileUrl); - //获取TGT - params = new HashMap<>();//参数 - params.put("tgt",tgt); - params.put("service",emobileUrl); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - try { - - retMsg = httpPostForm(url,params,headers,null); - bb.writeLog("===获取ST返回值===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取ST返回值resMsg===="+resMsg); - if(resMsg.has("ST")){ - ST = Util.null2String(resMsg.get("ST").toString()); - } - bb.writeLog("===获取ST===="+ST); - }catch(Exception e){ - throw new RuntimeException(e); - } - return retMsg; - - } - -%> -<% - RecordSet rs = new RecordSet(); - BaseBean bb=new BaseBean(); - RSA rsa = new RSA(); - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - JSONArray array = new JSONArray(); - List decriptList = new ArrayList<>(); - String ST ="";//获取ST - bb.writeLog("进入获取简历jsp-->"); - String login_id = ""; - String user_password = ""; - - User user = HrmUserVarify.getUser(request, response); - int uid = user.getUID(); - bb.writeLog("uid-->"+uid); - rs.executeQuery("select id,loginid,password,createtime from EmobileLoginDetail where id=?", uid); - if(rs.next()){ - login_id = Util.null2String(rs.getString("loginid")); - user_password = Util.null2String(rs.getString("password")); - } - bb.writeLog("login_id-->"+login_id); - bb.writeLog("user_password-->"+user_password); - //获取session - session = request.getSession(true); - String certified_token = Util.null2String(session.getAttribute("certified_token")); - bb.writeLog("获取sessionTGT=="+certified_token); - //获取cookie - Cookie[] cookies = request.getCookies(); - bb.writeLog("获取cookies=="+cookies); - String idd = ""; - if(cookies != null){ - for(Cookie cookie:cookies){ - bb.writeLog("获取cookiesName=="+cookie.getName()); - if(cookie.getName().equals("loginidweaver")){ - idd = cookie.getValue(); - bb.writeLog("获取idd=="+idd); - } - } - } - //查询人员工号 - RecordSet recordSet = new RecordSet(); - String requestURI = request.getRequestURI(); - bb.writeLog("请求路径="+requestURI); - Map useridMap = ParamUtil.request2Map(request); - bb.writeLog("人员id="+useridMap.get("userid")); - recordSet.executeQuery("select WORKCODE from HRMRESOURCE where id=?", Util.null2String(useridMap.get("userid"))); - String workcode = ""; - if (recordSet.next()){ - workcode = Util.null2String(recordSet.getString("WORKCODE")); - } - bb.writeLog("人员workcode="+useridMap.get("workcode")); - //查询 - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));//publicKey - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url - String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl")); - String tgturl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","tgtUrl"));//请求获取TGT地址 - //获取ST,带着下游系统 -// if (!isEmpty(certified_token)){ -// String responseInfo = getST(certified_token,cockpitUrl); -// bb.writeLog("进入responseInfo-->"+responseInfo); -// if (isEmpty(responseInfo)){ -// out.print("单点系统接口返回值为null"); -// return; -// }else { -// org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); -// if(stMsg.has("ST")){ -// ST = Util.null2String(stMsg.get("ST").toString()); -// }else{ -// out.print(Util.null2String(stMsg.getString("message"))); -// return; -// } -// -// String loginUrl = ""; -// String remuseUrl = bb.getPropValue("tjbkremuse", "hbUrl"); -// boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; -// if(isEm == true){ -// loginUrl=remuseUrl+"&ticket="+ST; -// } -// -// //loginUrl = "https://www.baidu.com/"; -// bb.writeLog("loginUrl-->"+loginUrl); -// out.print("跳转路径-->"+loginUrl); -// out.print("进入驾驶舱成功"); -// response.sendRedirect(loginUrl); -// // return; -// } -// }else { - String TGT =""; - String passWord =""; - String retMsg =""; - decriptList.add(login_id); - decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); - String loginId = resultList.get(0); - String userPassword = resultList.get(1); - String publicKey = getPublicKey(); - passWord = encrypt(user_password, publicKey); - params = new HashMap<>();//参数 - params.put("username",loginId); - params.put("password",passWord); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - - retMsg = httpPostForm(tgturl,params,headers,null); - bb.writeLog("===获取TGT返回值retMsg===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取TGT返回值===="+resMsg); - if(resMsg.has("TGT")){ - TGT = Util.null2String(resMsg.get("TGT").toString()); - } - String responseInfo = getST(TGT,cockpitUrl); - if (isEmpty(responseInfo)){ - out.print("单点系统接口返回值为null"); - return; - }else { - org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); - if(stMsg.has("ST")){ - ST = Util.null2String(stMsg.get("ST").toString()); - }else{ - out.print(Util.null2String(stMsg.getString("message"))); - return; - } - - String loginUrl = ""; - String remuseUrl = bb.getPropValue("tjbkremuse", "hbUrl"); - - boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; - if(isEm == true){ - loginUrl=remuseUrl+"&ticket="+ST; - //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; - } - - bb.writeLog("loginUrl-->"+loginUrl); - out.print("跳转路径-->"+loginUrl); - out.print("进入驾驶舱成功"); - response.sendRedirect(loginUrl); - // } - - // out.print("进入驾驶舱系统失败,请先获取标识"); - //return; - } - -%> - -  diff --git a/0821_2/getHR.jsp b/0821_2/getHR.jsp deleted file mode 100644 index 3127e48..0000000 --- a/0821_2/getHR.jsp +++ /dev/null @@ -1,641 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: xvshanshan - Date: 2023/7/3 - Time: 9:23 - To change this template use File | Settings | File Templates. ---%> -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> -<%@ page import="java.io.*" %> -<%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> -<%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%! - //获取分页sql - public static String getPaginationSql(String sql, String orderby, int pageNo, int pageSize) { - String execSql = ""; - - RecordSet rs = new RecordSet(); - String dbType = rs.getDBType(); -// String dbType = "oracle"; -// String dbType = "sqlserver"; - int firstResult = 0; - int endResult = 0; - // 返回分页sql - if("oracle".equals(dbType)){ // rownum - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby + ") tableUN " + ") tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - }else if("sqlserver".equals(dbType)){ - sql="select *,row_number()OVER("+orderby+") as rn from ("+sql+") newt"; - execSql = "select * from ( " + - sql+")fy " + - " where rn between ("+pageNo+"-1)*"+pageSize+"+1 and "+pageNo+"*"+pageSize+" "; - }else { // 使用 ROW_NUMBER OVER()分页 - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby +") tableUN ) tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - } - rs.writeLog("execSql---->"+execSql); - return execSql; - } - - - private boolean isEmpty(String str) { - if ("".equals(str) ||"(null)".equals(str) || str == null) { - return true; - } else { - return false; - } - } - - /** - * 获取指定类型的src值的集合 - * @param htmlStr - * @param type 标签名称 - * @return - */ - public static Set getSrcStr(String htmlStr, String type) { - Set srcs = new HashSet(); - String src = ""; - Pattern p_src; - Matcher m_src; -// String regEx_img = "]*?>"; //图片链接地址 - String regEx_src = "<"+type+".*src\\s*=\\s*(.*?)[^>]*?>"; - p_src = Pattern.compile - (regEx_src, Pattern.CASE_INSENSITIVE); - m_src = p_src.matcher(htmlStr); - while (m_src.find()) { -// 得到数据 - src = m_src.group(); -// 匹配中的src数据 - Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src); - while (m.find()) { - srcs.add(m.group(1)); - } - } - return srcs; - } - - public User getUser(int uid){ - User user = new User(); - RecordSet rs = new RecordSet(); - if (uid == 1) - rs.executeQuery("select * from hrmresourcemanager where id=?", uid); - else { - rs.executeQuery("select * from hrmresource where id=?", uid); - } - String userid = ""; - if (rs.next()) { - userid = rs.getString("id"); - user.setUid(rs.getInt("id")); - user.setLogintype("1"); - user.setLoginid(rs.getString("loginid")); - user.setFirstname(rs.getString("firstname")); - user.setLastname(rs.getString("lastname")); - user.setAliasname(rs.getString("aliasname")); - user.setTitle(rs.getString("title")); - user.setTitlelocation(rs.getString("titlelocation")); - user.setSex(rs.getString("sex")); - String langid = rs.getString("systemlanguage"); - user.setLanguage(Util.getIntValue(langid, 0)); - user.setTelephone(rs.getString("telephone")); - user.setMobile(rs.getString("mobile")); - user.setMobilecall(rs.getString("mobilecall")); - user.setEmail(rs.getString("email")); - user.setCountryid(rs.getString("countryid")); - user.setLocationid(rs.getString("locationid")); - user.setResourcetype(rs.getString("resourcetype")); - user.setStartdate(rs.getString("startdate")); - user.setEnddate(rs.getString("enddate")); - user.setContractdate(rs.getString("contractdate")); - user.setJobtitle(rs.getString("jobtitle")); - user.setJobgroup(rs.getString("jobgroup")); - user.setJobactivity(rs.getString("jobactivity")); - user.setJoblevel(rs.getString("joblevel")); - user.setSeclevel(rs.getString("seclevel")); - user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"),0)); - user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"),0)); - user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"),0)); - user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"),0)); - user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"),0)); - user.setManagerid(rs.getString("managerid")); - user.setAssistantid(rs.getString("assistantid")); - user.setPurchaselimit(rs.getString("purchaselimit")); - user.setCurrencyid(rs.getString("currencyid")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String lastLoginDate = sdf.format(new Date()); - user.setLastlogindate(lastLoginDate); - user.setLogintype("1"); - user.setAccount(rs.getString("account")); - } - return user; - } - - - - public String httpPostRequest(String param,String url,String token){ - BaseBean baseBean = new BaseBean(); - JSONObject jsonObject = new JSONObject(); - String responseBody=""; - try { - CloseableHttpClient httpClient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(url); - JSONObject jsonString = JSON.parseObject(param); - - //设置请求体参数 - StringEntity entity = new StringEntity(param,"utf-8"); - baseBean.writeLog("entity-param->"+param); - baseBean.writeLog("entity-->"+entity); - entity.setContentEncoding("utf-8"); - baseBean.writeLog("entity-utf-8->"+entity); - httpPost.setEntity(entity); - //设置请求头部 - httpPost.setHeader("Content-Type", "application/json"); - if(token != null && !"".equals(token)){ - httpPost.setHeader("Authorization",token); - } - //执行请求,返回请求响应 - CloseableHttpResponse response = httpClient.execute(httpPost); - //请求返回状态码 - int statusCode = response.getStatusLine().getStatusCode(); - baseBean.writeLog("statusCode状态码->"+statusCode); - //请求成功 - if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) { - //取出响应体 - HttpEntity entity2 = response.getEntity(); - //从响应体中解析出token - responseBody = EntityUtils.toString(entity2, "utf-8"); -// jsonObject = JSONObject.parseObject(responseBody); - baseBean.writeLog("responseBody->"+responseBody); -// baseBean.writeLog("jsonObject->"+jsonObject); - //token = jsonObject.getString("access_token"); - } else { - //请求失败 - throw new ClientProtocolException("请求失败,响应码为:" + statusCode); - } - } catch (Exception e) { - e.printStackTrace(); - } - return responseBody; - } - - /** - * 发送http get请求 - */ - public static String httpGet(String url,Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - String content = null; - //since 4.3 不再使用 DefaultHttpClient - try { - closeableHttpClient = HttpClientBuilder.create().build(); - HttpGet httpGet = new HttpGet(url); - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpGet.setHeader(entry.getKey(),entry.getValue()); - } - } - - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - httpResponse = closeableHttpClient.execute(httpGet); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - BaseBean bb = new BaseBean(); - String result = ""; - PrintWriter out = null; - BufferedReader in = null; - HttpURLConnection connection = null; - try { - URL postUrl = new URL(url); - bb.writeLog("getUrl-->"+postUrl); - // 打开和URL之间的连接 - connection = (HttpURLConnection) postUrl.openConnection(); - - // 在connect之前,设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.setRequestProperty("Charsert", "UTF-8"); - - connection.setConnectTimeout(15000); - connection.setReadTimeout(60000); - // 发送POST请求必须设置如下两行,参数要放在http正文内 - connection.setDoOutput(true); - connection.setDoInput(true); - // 默认是 GET方式 - connection.setRequestMethod("POST"); - // Post 请求不使用缓存 - connection.setUseCaches(false); - // 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等 - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.connect(); - - // 参数要放在http正文内 - //1.获取URLConnection对象对应的输出流 - out = new PrintWriter(connection.getOutputStream()); - //2.中文有乱码的需要将PrintWriter改为如下 - //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8") - out.print(param); - out.flush(); - //也可以使用DataOutputStream -// DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); -// dos.writeBytes(param); -// dos.flush(); -// dos.close(); - - // 定义BufferedReader输入流来读取URL的响应 - if (connection.getResponseCode() == 200) { - in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } - } catch (Exception e) { - bb.writeLog("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - if (connection != null) { - //关闭连接 - connection.disconnect(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } - - - /** - * 发送 http post 请求,参数以form表单键值对的形式提交。 - */ - public static String httpPostForm(String url,Map params, Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - - String content = null; - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - try { - - closeableHttpClient = HttpClients.createDefault(); - HttpPost httpost = new HttpPost(url); - - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpost.setHeader(entry.getKey(),entry.getValue()); - } - } - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - bb.writeLog("params="+params); - //组织请求参数 - List paramList = new ArrayList (); - if(params != null && params.size() > 0){ - Set keySet = params.keySet(); - for(String key : keySet) { - paramList.add(new BasicNameValuePair(key, params.get(key))); - } - } - httpost.setEntity(new UrlEncodedFormEntity(paramList, encode)); - - httpResponse = closeableHttpClient.execute(httpost); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 公钥加密 - * - * @param content 内容 - * @param publicKey 公钥 - * @return 加密后的密文 - * @throws Exception 异常信息 - */ - public static String encrypt(String content, String publicKey) throws Exception { - //base64编码的公钥 - byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(publicKey); - RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); - //RSA加密 - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, pubKey); - return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); - } - - public static String getPublicKey(String str){ - BaseBean bb = new BaseBean(); - String publicKey =""; - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取publicKey接口 - Map headers = new HashMap<>(); - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","publicKeyUrl")); - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - String msg = httpGet(url,headers,null); - bb.writeLog("===获取publickey返回值===="+msg); - try { - org.json.JSONObject resMsg = new org.json.JSONObject(msg); - bb.writeLog("===获取publickey返回值===="+resMsg); - if(resMsg.has("pubKey")){ - publicKey = Util.null2String(resMsg.get("pubKey").toString()); - } - }catch (Exception e){ - e.getMessage(); - } - return publicKey; - } - - //获取TG - public static String getST(String tgt,String emobileUrl,String id){ - BaseBean bb = new BaseBean(); - String ST = ""; - String retMsg = ""; - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取TG接口 - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl")); - bb.writeLog("==获取TG=="+url); - //移动端首页地址 - - bb.writeLog("==移动端首页地址=="+emobileUrl); - String str = "1510"+id+"015"; - //获取TGT - params = new HashMap<>();//参数 - params.put("tgt",tgt); - params.put("service",emobileUrl); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - try { - - retMsg = httpPostForm(url,params,headers,null); - bb.writeLog("===获取ST返回值===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取ST返回值resMsg===="+resMsg); - if(resMsg.has("ST")){ - ST = Util.null2String(resMsg.get("ST").toString()); - } - bb.writeLog("===获取ST===="+ST); - }catch(Exception e){ - throw new RuntimeException(e); - } - return retMsg; - - } - -%> -<% - RecordSet rs = new RecordSet(); - BaseBean bb=new BaseBean(); - RSA rsa = new RSA(); - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - JSONArray array = new JSONArray(); - List decriptList = new ArrayList<>(); - String ST ="";//获取ST - bb.writeLog("进入getCockpit.jap-->"); - String login_id = ""; - String user_password = ""; - - User user = HrmUserVarify.getUser(request, response); - int uid = user.getUID(); - bb.writeLog("uid-->"+uid); - String loginIdd = user.getLoginid(); - bb.writeLog("loginIdd-->"+loginIdd); - rs.executeQuery("select id,loginid,password,createtime from EmobileLoginDetail where id=?", uid); - if(rs.next()){ - login_id = Util.null2String(rs.getString("loginid")); - user_password = Util.null2String(rs.getString("password")); - } - bb.writeLog("login_id-->"+login_id); - bb.writeLog("user_password-->"+user_password); - //获取session - session = request.getSession(true); - String certified_token = Util.null2String(session.getAttribute("certified_token")); - bb.writeLog("获取sessionTGT=="+certified_token); - //获取cookie - Cookie[] cookies = request.getCookies(); - bb.writeLog("获取cookies=="+cookies); - String idd = ""; - if(cookies != null){ - for(Cookie cookie:cookies){ - bb.writeLog("获取cookiesName=="+cookie.getName()); - if(cookie.getName().equals("loginidweaver")){ - idd = cookie.getValue(); - bb.writeLog("获取idd=="+idd); - } - } - } - //查询 - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));//publicKey - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url - String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl")); - String tgturl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","tgtUrl"));//请求获取TGT地址 - //获取ST,带着下游系统 -// if (!isEmpty(certified_token)){ -// String responseInfo = getST(certified_token,cockpitUrl,loginIdd); -// bb.writeLog("进入responseInfo-->"+responseInfo); -// if (isEmpty(responseInfo)){ -// out.print("单点系统接口返回值为null"); -// return; -// }else { -// org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); -// if(stMsg.has("ST")){ -// ST = Util.null2String(stMsg.get("ST").toString()); -// }else{ -// out.print(Util.null2String(stMsg.getString("message"))); -// return; -// } -// -// String loginUrl = ""; -// boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; -// if(isEm == true){ -// // loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?download=false&showToolbar=false&ticket="+ST; -// loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E6%99%BA%E6%85%A7HR.db&ticket="+ST; -// } -// -// //loginUrl = "https://www.baidu.com/"; -// bb.writeLog("loginUrl-->"+loginUrl); -// out.print("跳转路径-->"+loginUrl); -// out.print("进入驾驶舱成功"); -// response.sendRedirect(loginUrl); -// // return; -// } -// }else { - String TGT =""; - String passWord =""; - String retMsg =""; - decriptList.add(login_id); - decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); - String loginId = resultList.get(0); - String userPassword = resultList.get(1); - String str = "1510"+login_id+"015"; - String publicKey = getPublicKey(str); - passWord = encrypt(user_password, publicKey); - params = new HashMap<>();//参数 - params.put("username",loginId); - params.put("password",passWord); - bb.writeLog("==STparams=="+params); - - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID",str); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - - retMsg = httpPostForm(tgturl,params,headers,null); - bb.writeLog("===获取TGT返回值retMsg===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取TGT返回值===="+resMsg); - if(resMsg.has("TGT")){ - TGT = Util.null2String(resMsg.get("TGT").toString()); - } - String responseInfo = getST(TGT,cockpitUrl,login_id); - if (isEmpty(responseInfo)){ - out.print("单点系统接口返回值为null"); - return; - }else { - org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); - if(stMsg.has("ST")){ - ST = Util.null2String(stMsg.get("ST").toString()); - }else{ - out.print(Util.null2String(stMsg.getString("message"))); - return; - } - - String loginUrl = ""; - boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; - if(isEm == true){ - // loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?download=false&showToolbar=false&ticket="+ST; - loginUrl="https://jiashicang.bankoftianjin.com:8080/bi/APPFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E6%99%BA%E6%85%A7HR.db&ticket="+ST; - //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; - } - - bb.writeLog("loginUrl-->"+loginUrl); - out.print("跳转路径-->"+loginUrl); - out.print("进入驾驶舱成功"); - response.sendRedirect(loginUrl); - // } - - // out.print("进入驾驶舱系统失败,请先获取标识"); - //return; - } - -%> - -  diff --git a/0821_2/getHYZX.jsp b/0821_2/getHYZX.jsp deleted file mode 100644 index 46e18d7..0000000 --- a/0821_2/getHYZX.jsp +++ /dev/null @@ -1,651 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: xvshanshan - Date: 2023/7/3 - Time: 9:23 - To change this template use File | Settings | File Templates. ---%> -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> -<%@ page import="java.io.*" %> -<%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> -<%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%@ page import="com.engine.common.util.ParamUtil" %> -<%! - //获取分页sql - public static String getPaginationSql(String sql, String orderby, int pageNo, int pageSize) { - String execSql = ""; - - RecordSet rs = new RecordSet(); - String dbType = rs.getDBType(); -// String dbType = "oracle"; -// String dbType = "sqlserver"; - int firstResult = 0; - int endResult = 0; - // 返回分页sql - if("oracle".equals(dbType)){ // rownum - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby + ") tableUN " + ") tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - }else if("sqlserver".equals(dbType)){ - sql="select *,row_number()OVER("+orderby+") as rn from ("+sql+") newt"; - execSql = "select * from ( " + - sql+")fy " + - " where rn between ("+pageNo+"-1)*"+pageSize+"+1 and "+pageNo+"*"+pageSize+" "; - }else { // 使用 ROW_NUMBER OVER()分页 - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby +") tableUN ) tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - } - rs.writeLog("execSql---->"+execSql); - return execSql; - } - - - private boolean isEmpty(String str) { - if ("".equals(str) ||"(null)".equals(str) || str == null) { - return true; - } else { - return false; - } - } - - /** - * 获取指定类型的src值的集合 - * @param htmlStr - * @param type 标签名称 - * @return - * 简历 - */ - public static Set getSrcStr(String htmlStr, String type) { - Set srcs = new HashSet(); - String src = ""; - Pattern p_src; - Matcher m_src; -// String regEx_img = "]*?>"; //图片链接地址 - String regEx_src = "<"+type+".*src\\s*=\\s*(.*?)[^>]*?>"; - p_src = Pattern.compile - (regEx_src, Pattern.CASE_INSENSITIVE); - m_src = p_src.matcher(htmlStr); - while (m_src.find()) { -// 得到数据 - src = m_src.group(); -// 匹配中的src数据 - Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src); - while (m.find()) { - srcs.add(m.group(1)); - } - } - return srcs; - } - - public User getUser(int uid){ - User user = new User(); - RecordSet rs = new RecordSet(); - if (uid == 1) - rs.executeQuery("select * from hrmresourcemanager where id=?", uid); - else { - rs.executeQuery("select * from hrmresource where id=?", uid); - } - String userid = ""; - if (rs.next()) { - userid = rs.getString("id"); - user.setUid(rs.getInt("id")); - user.setLogintype("1"); - user.setLoginid(rs.getString("loginid")); - user.setFirstname(rs.getString("firstname")); - user.setLastname(rs.getString("lastname")); - user.setAliasname(rs.getString("aliasname")); - user.setTitle(rs.getString("title")); - user.setTitlelocation(rs.getString("titlelocation")); - user.setSex(rs.getString("sex")); - String langid = rs.getString("systemlanguage"); - user.setLanguage(Util.getIntValue(langid, 0)); - user.setTelephone(rs.getString("telephone")); - user.setMobile(rs.getString("mobile")); - user.setMobilecall(rs.getString("mobilecall")); - user.setEmail(rs.getString("email")); - user.setCountryid(rs.getString("countryid")); - user.setLocationid(rs.getString("locationid")); - user.setResourcetype(rs.getString("resourcetype")); - user.setStartdate(rs.getString("startdate")); - user.setEnddate(rs.getString("enddate")); - user.setContractdate(rs.getString("contractdate")); - user.setJobtitle(rs.getString("jobtitle")); - user.setJobgroup(rs.getString("jobgroup")); - user.setJobactivity(rs.getString("jobactivity")); - user.setJoblevel(rs.getString("joblevel")); - user.setSeclevel(rs.getString("seclevel")); - user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"),0)); - user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"),0)); - user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"),0)); - user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"),0)); - user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"),0)); - user.setManagerid(rs.getString("managerid")); - user.setAssistantid(rs.getString("assistantid")); - user.setPurchaselimit(rs.getString("purchaselimit")); - user.setCurrencyid(rs.getString("currencyid")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String lastLoginDate = sdf.format(new Date()); - user.setLastlogindate(lastLoginDate); - user.setLogintype("1"); - user.setAccount(rs.getString("account")); - } - return user; - } - - - - public String httpPostRequest(String param,String url,String token){ - BaseBean baseBean = new BaseBean(); - JSONObject jsonObject = new JSONObject(); - String responseBody=""; - try { - CloseableHttpClient httpClient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(url); - JSONObject jsonString = JSON.parseObject(param); - - //设置请求体参数 - StringEntity entity = new StringEntity(param,"utf-8"); - baseBean.writeLog("entity-param->"+param); - baseBean.writeLog("entity-->"+entity); - entity.setContentEncoding("utf-8"); - baseBean.writeLog("entity-utf-8->"+entity); - httpPost.setEntity(entity); - //设置请求头部 - httpPost.setHeader("Content-Type", "application/json"); - if(token != null && !"".equals(token)){ - httpPost.setHeader("Authorization",token); - } - //执行请求,返回请求响应 - CloseableHttpResponse response = httpClient.execute(httpPost); - //请求返回状态码 - int statusCode = response.getStatusLine().getStatusCode(); - baseBean.writeLog("statusCode状态码->"+statusCode); - //请求成功 - if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) { - //取出响应体 - HttpEntity entity2 = response.getEntity(); - //从响应体中解析出token - responseBody = EntityUtils.toString(entity2, "utf-8"); -// jsonObject = JSONObject.parseObject(responseBody); - baseBean.writeLog("responseBody->"+responseBody); -// baseBean.writeLog("jsonObject->"+jsonObject); - //token = jsonObject.getString("access_token"); - } else { - //请求失败 - throw new ClientProtocolException("请求失败,响应码为:" + statusCode); - } - } catch (Exception e) { - e.printStackTrace(); - } - return responseBody; - } - - /** - * 发送http get请求 - */ - public static String httpGet(String url,Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - String content = null; - //since 4.3 不再使用 DefaultHttpClient - try { - closeableHttpClient = HttpClientBuilder.create().build(); - HttpGet httpGet = new HttpGet(url); - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpGet.setHeader(entry.getKey(),entry.getValue()); - } - } - - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - httpResponse = closeableHttpClient.execute(httpGet); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - BaseBean bb = new BaseBean(); - String result = ""; - PrintWriter out = null; - BufferedReader in = null; - HttpURLConnection connection = null; - try { - URL postUrl = new URL(url); - bb.writeLog("getUrl-->"+postUrl); - // 打开和URL之间的连接 - connection = (HttpURLConnection) postUrl.openConnection(); - - // 在connect之前,设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.setRequestProperty("Charsert", "UTF-8"); - - connection.setConnectTimeout(15000); - connection.setReadTimeout(60000); - // 发送POST请求必须设置如下两行,参数要放在http正文内 - connection.setDoOutput(true); - connection.setDoInput(true); - // 默认是 GET方式 - connection.setRequestMethod("POST"); - // Post 请求不使用缓存 - connection.setUseCaches(false); - // 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等 - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.connect(); - - // 参数要放在http正文内 - //1.获取URLConnection对象对应的输出流 - out = new PrintWriter(connection.getOutputStream()); - //2.中文有乱码的需要将PrintWriter改为如下 - //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8") - out.print(param); - out.flush(); - //也可以使用DataOutputStream -// DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); -// dos.writeBytes(param); -// dos.flush(); -// dos.close(); - - // 定义BufferedReader输入流来读取URL的响应 - if (connection.getResponseCode() == 200) { - in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } - } catch (Exception e) { - bb.writeLog("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - if (connection != null) { - //关闭连接 - connection.disconnect(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } - - - /** - * 发送 http post 请求,参数以form表单键值对的形式提交。 - */ - public static String httpPostForm(String url,Map params, Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - - String content = null; - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - try { - - closeableHttpClient = HttpClients.createDefault(); - HttpPost httpost = new HttpPost(url); - - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpost.setHeader(entry.getKey(),entry.getValue()); - } - } - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - bb.writeLog("params="+params); - //组织请求参数 - List paramList = new ArrayList (); - if(params != null && params.size() > 0){ - Set keySet = params.keySet(); - for(String key : keySet) { - paramList.add(new BasicNameValuePair(key, params.get(key))); - } - } - httpost.setEntity(new UrlEncodedFormEntity(paramList, encode)); - - httpResponse = closeableHttpClient.execute(httpost); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 公钥加密 - * - * @param content 内容 - * @param publicKey 公钥 - * @return 加密后的密文 - * @throws Exception 异常信息 - */ - public static String encrypt(String content, String publicKey) throws Exception { - //base64编码的公钥 - byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(publicKey); - RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); - //RSA加密 - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, pubKey); - return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); - } - - public static String getPublicKey(){ - BaseBean bb = new BaseBean(); - String publicKey =""; - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取publicKey接口 - Map headers = new HashMap<>(); - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","publicKeyUrl")); - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - String msg = httpGet(url,headers,null); - bb.writeLog("===获取publickey返回值===="+msg); - try { - org.json.JSONObject resMsg = new org.json.JSONObject(msg); - bb.writeLog("===获取publickey返回值===="+resMsg); - if(resMsg.has("pubKey")){ - publicKey = Util.null2String(resMsg.get("pubKey").toString()); - } - }catch (Exception e){ - e.getMessage(); - } - return publicKey; - } - - //获取TG - public static String getST(String tgt,String emobileUrl){ - BaseBean bb = new BaseBean(); - String ST = ""; - String retMsg = ""; - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取TG接口 - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl")); - bb.writeLog("==获取TG=="+url); - //移动端首页地址 - - bb.writeLog("==移动端首页地址=="+emobileUrl); - //获取TGT - params = new HashMap<>();//参数 - params.put("tgt",tgt); - params.put("service",emobileUrl); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - try { - - retMsg = httpPostForm(url,params,headers,null); - bb.writeLog("===获取ST返回值===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取ST返回值resMsg===="+resMsg); - if(resMsg.has("ST")){ - ST = Util.null2String(resMsg.get("ST").toString()); - } - bb.writeLog("===获取ST===="+ST); - }catch(Exception e){ - throw new RuntimeException(e); - } - return retMsg; - - } - -%> -<% - RecordSet rs = new RecordSet(); - BaseBean bb=new BaseBean(); - RSA rsa = new RSA(); - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - JSONArray array = new JSONArray(); - List decriptList = new ArrayList<>(); - String ST ="";//获取ST - bb.writeLog("进入获取简历jsp-->"); - String login_id = ""; - String user_password = ""; - - User user = HrmUserVarify.getUser(request, response); - int uid = user.getUID(); - bb.writeLog("uid-->"+uid); - rs.executeQuery("select id,loginid,password,createtime from EmobileLoginDetail where id=?", uid); - if(rs.next()){ - login_id = Util.null2String(rs.getString("loginid")); - user_password = Util.null2String(rs.getString("password")); - } - bb.writeLog("login_id-->"+login_id); - bb.writeLog("user_password-->"+user_password); - //获取session - session = request.getSession(true); - String certified_token = Util.null2String(session.getAttribute("certified_token")); - bb.writeLog("获取sessionTGT=="+certified_token); - //获取cookie - Cookie[] cookies = request.getCookies(); - bb.writeLog("获取cookies=="+cookies); - String idd = ""; - if(cookies != null){ - for(Cookie cookie:cookies){ - bb.writeLog("获取cookiesName=="+cookie.getName()); - if(cookie.getName().equals("loginidweaver")){ - idd = cookie.getValue(); - bb.writeLog("获取idd=="+idd); - } - } - } - //查询人员工号 - RecordSet recordSet = new RecordSet(); - String requestURI = request.getRequestURI(); - bb.writeLog("请求路径="+requestURI); - Map useridMap = ParamUtil.request2Map(request); - bb.writeLog("人员id="+useridMap.get("userid")); - recordSet.executeQuery("select WORKCODE from HRMRESOURCE where id=?", Util.null2String(useridMap.get("userid"))); - String workcode = ""; - if (recordSet.next()){ - workcode = Util.null2String(recordSet.getString("WORKCODE")); - } - bb.writeLog("人员workcode="+useridMap.get("workcode")); - //查询 - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));//publicKey - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url - String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl")); - String tgturl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","tgtUrl"));//请求获取TGT地址 - //获取ST,带着下游系统 -// if (!isEmpty(certified_token)){ -// String responseInfo = getST(certified_token,cockpitUrl); -// bb.writeLog("进入responseInfo-->"+responseInfo); -// if (isEmpty(responseInfo)){ -// out.print("单点系统接口返回值为null"); -// return; -// }else { -// org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); -// if(stMsg.has("ST")){ -// ST = Util.null2String(stMsg.get("ST").toString()); -// }else{ -// out.print(Util.null2String(stMsg.getString("message"))); -// return; -// } -// -// String loginUrl = ""; -// String remuseUrl = bb.getPropValue("tjbkremuse", "hyzxUrl"); -// boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; -// if(isEm == true){ -// loginUrl=remuseUrl+"&ticket="+ST; -// } -// -// //loginUrl = "https://www.baidu.com/"; -// bb.writeLog("loginUrl-->"+loginUrl); -// out.print("跳转路径-->"+loginUrl); -// out.print("进入驾驶舱成功"); -// response.sendRedirect(loginUrl); -// // return; -// } -// }else { - String TGT =""; - String passWord =""; - String retMsg =""; - decriptList.add(login_id); - decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); - String loginId = resultList.get(0); - String userPassword = resultList.get(1); - String publicKey = getPublicKey(); - passWord = encrypt(user_password, publicKey); - params = new HashMap<>();//参数 - params.put("username",loginId); - params.put("password",passWord); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - - retMsg = httpPostForm(tgturl,params,headers,null); - bb.writeLog("===获取TGT返回值retMsg===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取TGT返回值===="+resMsg); - if(resMsg.has("TGT")){ - TGT = Util.null2String(resMsg.get("TGT").toString()); - } - String responseInfo = getST(TGT,cockpitUrl); - if (isEmpty(responseInfo)){ - out.print("单点系统接口返回值为null"); - return; - }else { - org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); - if(stMsg.has("ST")){ - ST = Util.null2String(stMsg.get("ST").toString()); - }else{ - out.print(Util.null2String(stMsg.getString("message"))); - return; - } - - String loginUrl = ""; - String remuseUrl = bb.getPropValue("tjbkremuse", "hyzxUrl"); - - boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; - if(isEm == true){ - loginUrl=remuseUrl+"&ticket="+ST; - //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; - } - - bb.writeLog("loginUrl-->"+loginUrl); - out.print("跳转路径-->"+loginUrl); - out.print("进入驾驶舱成功"); - response.sendRedirect(loginUrl); - // } - - // out.print("进入驾驶舱系统失败,请先获取标识"); - //return; - } - -%> - -  diff --git a/0821_2/getResume.jsp b/0821_2/getResume.jsp deleted file mode 100644 index 549166a..0000000 --- a/0821_2/getResume.jsp +++ /dev/null @@ -1,651 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: xvshanshan - Date: 2023/7/3 - Time: 9:23 - To change this template use File | Settings | File Templates. ---%> -<%@ page import="weaver.conn.RecordSet" %> -<%@ page import="weaver.general.BaseBean" %> -<%@ page import="weaver.general.Util" %> -<%@ page import="com.alibaba.fastjson.JSONObject" %> -<%@ page import="com.alibaba.fastjson.JSONArray" %> -<%@ page import="java.util.regex.Pattern" %> -<%@ page import="java.util.regex.Matcher" %> -<%@ page import="java.io.*" %> -<%@ page import="weaver.hrm.User" %> -<%@ page import="java.text.SimpleDateFormat" %> -<%@ page import="java.util.*" %> -<%@ page language="java" contentType="text/html; charset=UTF-8"%> -<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %> -<%@ page import="org.apache.http.impl.client.HttpClients" %> -<%@ page import="org.apache.http.client.methods.HttpPost" %> -<%@ page import="com.alibaba.fastjson.JSON" %> -<%@ page import="org.apache.http.entity.StringEntity" %> -<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %> -<%@ page import="org.apache.http.HttpStatus" %> -<%@ page import="org.apache.http.HttpEntity" %> -<%@ page import="org.apache.http.util.EntityUtils" %> -<%@ page import="org.apache.http.client.ClientProtocolException" %> -<%@ page import="weaver.hrm.HrmUserVarify" %> -<%@ page import="java.net.URL" %> -<%@ page import="java.net.HttpURLConnection" %> -<%@ page import="org.apache.http.HttpException" %> -<%@ page import="org.apache.http.client.HttpClient" %> -<%@ page import="org.apache.commons.httpclient.methods.PostMethod" %> -<%@ page import="org.apache.commons.httpclient.params.HttpMethodParams" %> -<%@ page import="org.apache.http.NameValuePair" %> -<%@ page import="org.apache.http.message.BasicNameValuePair" %> -<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %> -<%@ page import="weaver.rsa.security.RSA" %> -<%@ page import="java.security.interfaces.RSAPublicKey" %> -<%@ page import="java.security.KeyFactory" %> -<%@ page import="java.security.spec.X509EncodedKeySpec" %> -<%@ page import="javax.crypto.Cipher" %> -<%@ page import="org.apache.commons.codec.binary.Base64" %> -<%@ page import="java.nio.charset.StandardCharsets" %> -<%@ page import="org.apache.http.impl.client.HttpClientBuilder" %> -<%@ page import="org.apache.http.client.methods.HttpGet" %> -<%@ page import="com.engine.common.util.ParamUtil" %> -<%! - //获取分页sql - public static String getPaginationSql(String sql, String orderby, int pageNo, int pageSize) { - String execSql = ""; - - RecordSet rs = new RecordSet(); - String dbType = rs.getDBType(); -// String dbType = "oracle"; -// String dbType = "sqlserver"; - int firstResult = 0; - int endResult = 0; - // 返回分页sql - if("oracle".equals(dbType)){ // rownum - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby + ") tableUN " + ") tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - }else if("sqlserver".equals(dbType)){ - sql="select *,row_number()OVER("+orderby+") as rn from ("+sql+") newt"; - execSql = "select * from ( " + - sql+")fy " + - " where rn between ("+pageNo+"-1)*"+pageSize+"+1 and "+pageNo+"*"+pageSize+" "; - }else { // 使用 ROW_NUMBER OVER()分页 - firstResult = pageNo * pageSize + 1; - endResult = (pageNo - 1) * pageSize; - execSql = " select * from ( select tabUN2.*,rownum as my_rownum from ( select tableUN.*,rownum as r from ( " + sql - + orderby +") tableUN ) tabUN2 where r < " + firstResult + " ) where my_rownum > " + endResult; - } - rs.writeLog("execSql---->"+execSql); - return execSql; - } - - - private boolean isEmpty(String str) { - if ("".equals(str) ||"(null)".equals(str) || str == null) { - return true; - } else { - return false; - } - } - - /** - * 获取指定类型的src值的集合 - * @param htmlStr - * @param type 标签名称 - * @return - * 简历 - */ - public static Set getSrcStr(String htmlStr, String type) { - Set srcs = new HashSet(); - String src = ""; - Pattern p_src; - Matcher m_src; -// String regEx_img = "]*?>"; //图片链接地址 - String regEx_src = "<"+type+".*src\\s*=\\s*(.*?)[^>]*?>"; - p_src = Pattern.compile - (regEx_src, Pattern.CASE_INSENSITIVE); - m_src = p_src.matcher(htmlStr); - while (m_src.find()) { -// 得到数据 - src = m_src.group(); -// 匹配中的src数据 - Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src); - while (m.find()) { - srcs.add(m.group(1)); - } - } - return srcs; - } - - public User getUser(int uid){ - User user = new User(); - RecordSet rs = new RecordSet(); - if (uid == 1) - rs.executeQuery("select * from hrmresourcemanager where id=?", uid); - else { - rs.executeQuery("select * from hrmresource where id=?", uid); - } - String userid = ""; - if (rs.next()) { - userid = rs.getString("id"); - user.setUid(rs.getInt("id")); - user.setLogintype("1"); - user.setLoginid(rs.getString("loginid")); - user.setFirstname(rs.getString("firstname")); - user.setLastname(rs.getString("lastname")); - user.setAliasname(rs.getString("aliasname")); - user.setTitle(rs.getString("title")); - user.setTitlelocation(rs.getString("titlelocation")); - user.setSex(rs.getString("sex")); - String langid = rs.getString("systemlanguage"); - user.setLanguage(Util.getIntValue(langid, 0)); - user.setTelephone(rs.getString("telephone")); - user.setMobile(rs.getString("mobile")); - user.setMobilecall(rs.getString("mobilecall")); - user.setEmail(rs.getString("email")); - user.setCountryid(rs.getString("countryid")); - user.setLocationid(rs.getString("locationid")); - user.setResourcetype(rs.getString("resourcetype")); - user.setStartdate(rs.getString("startdate")); - user.setEnddate(rs.getString("enddate")); - user.setContractdate(rs.getString("contractdate")); - user.setJobtitle(rs.getString("jobtitle")); - user.setJobgroup(rs.getString("jobgroup")); - user.setJobactivity(rs.getString("jobactivity")); - user.setJoblevel(rs.getString("joblevel")); - user.setSeclevel(rs.getString("seclevel")); - user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"),0)); - user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"),0)); - user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"),0)); - user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"),0)); - user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"),0)); - user.setManagerid(rs.getString("managerid")); - user.setAssistantid(rs.getString("assistantid")); - user.setPurchaselimit(rs.getString("purchaselimit")); - user.setCurrencyid(rs.getString("currencyid")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String lastLoginDate = sdf.format(new Date()); - user.setLastlogindate(lastLoginDate); - user.setLogintype("1"); - user.setAccount(rs.getString("account")); - } - return user; - } - - - - public String httpPostRequest(String param,String url,String token){ - BaseBean baseBean = new BaseBean(); - JSONObject jsonObject = new JSONObject(); - String responseBody=""; - try { - CloseableHttpClient httpClient = HttpClients.createDefault(); - HttpPost httpPost = new HttpPost(url); - JSONObject jsonString = JSON.parseObject(param); - - //设置请求体参数 - StringEntity entity = new StringEntity(param,"utf-8"); - baseBean.writeLog("entity-param->"+param); - baseBean.writeLog("entity-->"+entity); - entity.setContentEncoding("utf-8"); - baseBean.writeLog("entity-utf-8->"+entity); - httpPost.setEntity(entity); - //设置请求头部 - httpPost.setHeader("Content-Type", "application/json"); - if(token != null && !"".equals(token)){ - httpPost.setHeader("Authorization",token); - } - //执行请求,返回请求响应 - CloseableHttpResponse response = httpClient.execute(httpPost); - //请求返回状态码 - int statusCode = response.getStatusLine().getStatusCode(); - baseBean.writeLog("statusCode状态码->"+statusCode); - //请求成功 - if (statusCode == HttpStatus.SC_OK && statusCode <= HttpStatus.SC_TEMPORARY_REDIRECT) { - //取出响应体 - HttpEntity entity2 = response.getEntity(); - //从响应体中解析出token - responseBody = EntityUtils.toString(entity2, "utf-8"); -// jsonObject = JSONObject.parseObject(responseBody); - baseBean.writeLog("responseBody->"+responseBody); -// baseBean.writeLog("jsonObject->"+jsonObject); - //token = jsonObject.getString("access_token"); - } else { - //请求失败 - throw new ClientProtocolException("请求失败,响应码为:" + statusCode); - } - } catch (Exception e) { - e.printStackTrace(); - } - return responseBody; - } - - /** - * 发送http get请求 - */ - public static String httpGet(String url,Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - String content = null; - //since 4.3 不再使用 DefaultHttpClient - try { - closeableHttpClient = HttpClientBuilder.create().build(); - HttpGet httpGet = new HttpGet(url); - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpGet.setHeader(entry.getKey(),entry.getValue()); - } - } - - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - httpResponse = closeableHttpClient.execute(httpGet); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - BaseBean bb = new BaseBean(); - String result = ""; - PrintWriter out = null; - BufferedReader in = null; - HttpURLConnection connection = null; - try { - URL postUrl = new URL(url); - bb.writeLog("getUrl-->"+postUrl); - // 打开和URL之间的连接 - connection = (HttpURLConnection) postUrl.openConnection(); - - // 在connect之前,设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.setRequestProperty("Charsert", "UTF-8"); - - connection.setConnectTimeout(15000); - connection.setReadTimeout(60000); - // 发送POST请求必须设置如下两行,参数要放在http正文内 - connection.setDoOutput(true); - connection.setDoInput(true); - // 默认是 GET方式 - connection.setRequestMethod("POST"); - // Post 请求不使用缓存 - connection.setUseCaches(false); - // 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等 - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.connect(); - - // 参数要放在http正文内 - //1.获取URLConnection对象对应的输出流 - out = new PrintWriter(connection.getOutputStream()); - //2.中文有乱码的需要将PrintWriter改为如下 - //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8") - out.print(param); - out.flush(); - //也可以使用DataOutputStream -// DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); -// dos.writeBytes(param); -// dos.flush(); -// dos.close(); - - // 定义BufferedReader输入流来读取URL的响应 - if (connection.getResponseCode() == 200) { - in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } - } catch (Exception e) { - bb.writeLog("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - if (connection != null) { - //关闭连接 - connection.disconnect(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } - - - /** - * 发送 http post 请求,参数以form表单键值对的形式提交。 - */ - public static String httpPostForm(String url,Map params, Map headers,String encode){ - BaseBean bb = new BaseBean(); - if(encode == null){ - encode = "utf-8"; - } - - String content = null; - CloseableHttpResponse httpResponse = null; - CloseableHttpClient closeableHttpClient = null; - try { - - closeableHttpClient = HttpClients.createDefault(); - HttpPost httpost = new HttpPost(url); - - //设置header - if (headers != null && headers.size() > 0) { - for (Map.Entry entry : headers.entrySet()) { - httpost.setHeader(entry.getKey(),entry.getValue()); - } - } - bb.writeLog("url="+url+"header="+headers+"encode="+encode); - bb.writeLog("params="+params); - //组织请求参数 - List paramList = new ArrayList (); - if(params != null && params.size() > 0){ - Set keySet = params.keySet(); - for(String key : keySet) { - paramList.add(new BasicNameValuePair(key, params.get(key))); - } - } - httpost.setEntity(new UrlEncodedFormEntity(paramList, encode)); - - httpResponse = closeableHttpClient.execute(httpost); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - - /** - * 公钥加密 - * - * @param content 内容 - * @param publicKey 公钥 - * @return 加密后的密文 - * @throws Exception 异常信息 - */ - public static String encrypt(String content, String publicKey) throws Exception { - //base64编码的公钥 - byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(publicKey); - RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); - //RSA加密 - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, pubKey); - return Base64.encodeBase64String(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8))); - } - - public static String getPublicKey(){ - BaseBean bb = new BaseBean(); - String publicKey =""; - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取publicKey接口 - Map headers = new HashMap<>(); - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","publicKeyUrl")); - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - String msg = httpGet(url,headers,null); - bb.writeLog("===获取publickey返回值===="+msg); - try { - org.json.JSONObject resMsg = new org.json.JSONObject(msg); - bb.writeLog("===获取publickey返回值===="+resMsg); - if(resMsg.has("pubKey")){ - publicKey = Util.null2String(resMsg.get("pubKey").toString()); - } - }catch (Exception e){ - e.getMessage(); - } - return publicKey; - } - - //获取TG - public static String getST(String tgt,String emobileUrl){ - BaseBean bb = new BaseBean(); - String ST = ""; - String retMsg = ""; - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key")); - //请求获取TG接口 - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl")); - bb.writeLog("==获取TG=="+url); - //移动端首页地址 - - bb.writeLog("==移动端首页地址=="+emobileUrl); - //获取TGT - params = new HashMap<>();//参数 - params.put("tgt",tgt); - params.put("service",emobileUrl); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - try { - - retMsg = httpPostForm(url,params,headers,null); - bb.writeLog("===获取ST返回值===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取ST返回值resMsg===="+resMsg); - if(resMsg.has("ST")){ - ST = Util.null2String(resMsg.get("ST").toString()); - } - bb.writeLog("===获取ST===="+ST); - }catch(Exception e){ - throw new RuntimeException(e); - } - return retMsg; - - } - -%> -<% - RecordSet rs = new RecordSet(); - BaseBean bb=new BaseBean(); - RSA rsa = new RSA(); - Map params = new HashMap<>();//参数 - Map headers = new HashMap<>();//headers - JSONArray array = new JSONArray(); - List decriptList = new ArrayList<>(); - String ST ="";//获取ST - bb.writeLog("进入获取简历jsp-->"); - String login_id = ""; - String user_password = ""; - - User user = HrmUserVarify.getUser(request, response); - int uid = user.getUID(); - bb.writeLog("uid-->"+uid); - rs.executeQuery("select id,loginid,password,createtime from EmobileLoginDetail where id=?", uid); - if(rs.next()){ - login_id = Util.null2String(rs.getString("loginid")); - user_password = Util.null2String(rs.getString("password")); - } - bb.writeLog("login_id-->"+login_id); - bb.writeLog("user_password-->"+user_password); - //获取session - session = request.getSession(true); - String certified_token = Util.null2String(session.getAttribute("certified_token")); - bb.writeLog("获取sessionTGT=="+certified_token); - //获取cookie - Cookie[] cookies = request.getCookies(); - bb.writeLog("获取cookies=="+cookies); - String idd = ""; - if(cookies != null){ - for(Cookie cookie:cookies){ - bb.writeLog("获取cookiesName=="+cookie.getName()); - if(cookie.getName().equals("loginidweaver")){ - idd = cookie.getValue(); - bb.writeLog("获取idd=="+idd); - } - } - } - //查询人员工号 - RecordSet recordSet = new RecordSet(); - String requestURI = request.getRequestURI(); - bb.writeLog("请求路径="+requestURI); - Map useridMap = ParamUtil.request2Map(request); - bb.writeLog("人员id="+useridMap.get("userid")); - recordSet.executeQuery("select WORKCODE from HRMRESOURCE where id=?", Util.null2String(useridMap.get("userid"))); - String workcode = ""; - if (recordSet.next()){ - workcode = Util.null2String(recordSet.getString("WORKCODE")); - } - bb.writeLog("人员workcode="+useridMap.get("workcode")); - //查询 - String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));//publicKey - String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url - String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl")); - String tgturl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","tgtUrl"));//请求获取TGT地址 - //获取ST,带着下游系统 -// if (!isEmpty(certified_token)){ -// String responseInfo = getST(certified_token,cockpitUrl); -// bb.writeLog("进入responseInfo-->"+responseInfo); -// if (isEmpty(responseInfo)){ -// out.print("单点系统接口返回值为null"); -// return; -// }else { -// org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); -// if(stMsg.has("ST")){ -// ST = Util.null2String(stMsg.get("ST").toString()); -// }else{ -// out.print(Util.null2String(stMsg.getString("message"))); -// return; -// } -// -// String loginUrl = ""; -// String remuseUrl = bb.getPropValue("tjbkremuse", "url"); -// boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; -// if(isEm == true){ -// loginUrl=remuseUrl+workcode+"&ticket="+ST; -// } -// -// //loginUrl = "https://www.baidu.com/"; -// bb.writeLog("loginUrl-->"+loginUrl); -// out.print("跳转路径-->"+loginUrl); -// out.print("进入驾驶舱成功"); -// response.sendRedirect(loginUrl); -// // return; -// } -// }else { - String TGT =""; - String passWord =""; - String retMsg =""; - decriptList.add(login_id); - decriptList.add(user_password); - List resultList = rsa.decryptList(request, decriptList); - String loginId = resultList.get(0); - String userPassword = resultList.get(1); - String publicKey = getPublicKey(); - passWord = encrypt(user_password, publicKey); - params = new HashMap<>();//参数 - params.put("username",loginId); - params.put("password",passWord); - bb.writeLog("==STparams=="+params); - - headers = new HashMap<>();//headers - headers.put("API_KEY",API_KEY); - headers.put("MACH_ID","123"); - headers.put("MACH_TYPE","0"); - headers.put("MACH_IP","127.0.0.1"); - - retMsg = httpPostForm(tgturl,params,headers,null); - bb.writeLog("===获取TGT返回值retMsg===="+retMsg); - org.json.JSONObject resMsg = new org.json.JSONObject(retMsg); - bb.writeLog("===获取TGT返回值===="+resMsg); - if(resMsg.has("TGT")){ - TGT = Util.null2String(resMsg.get("TGT").toString()); - } - String responseInfo = getST(TGT,cockpitUrl); - if (isEmpty(responseInfo)){ - out.print("单点系统接口返回值为null"); - return; - }else { - org.json.JSONObject stMsg = new org.json.JSONObject(responseInfo); - if(stMsg.has("ST")){ - ST = Util.null2String(stMsg.get("ST").toString()); - }else{ - out.print(Util.null2String(stMsg.getString("message"))); - return; - } - - String loginUrl = ""; - String remuseUrl = bb.getPropValue("tjbkremuse", "url"); - - boolean isEm = Util.null2String(request.getHeader("user-agent")).indexOf("E-Mobile") > -1; - if(isEm == true){ - loginUrl=remuseUrl+workcode+"&ticket="+ST; - //loginUrl="http://123.151.115.199:8080/bi/PCFW?proc=1&action=viewer&hback=true&db=%E6%99%BA%E6%85%A7%E6%96%B9%E7%95%A5/%E5%89%8D%E7%BD%AE%E9%A1%B5.db&ticket="+ST; - } - - bb.writeLog("loginUrl-->"+loginUrl); - out.print("跳转路径-->"+loginUrl); - out.print("进入驾驶舱成功"); - response.sendRedirect(loginUrl); - // } - - // out.print("进入驾驶舱系统失败,请先获取标识"); - //return; - } - -%> - -  diff --git a/0907jsp.zip b/0907jsp.zip new file mode 100644 index 0000000..9e0795b Binary files /dev/null and b/0907jsp.zip differ diff --git a/docment/字段映射_1694422244889.xlsx b/docment/字段映射_1694422244889.xlsx new file mode 100644 index 0000000..521d8f4 Binary files /dev/null and b/docment/字段映射_1694422244889.xlsx differ diff --git a/docment/阿里差旅推送财务系统_字段梳理_V4.0.xlsx b/docment/阿里差旅推送财务系统_字段梳理_V4.0.xlsx new file mode 100644 index 0000000..f2e4433 Binary files /dev/null and b/docment/阿里差旅推送财务系统_字段梳理_V4.0.xlsx differ