|
|
<%--
|
|
|
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" %>
|
|
|
<%!
|
|
|
//获取分页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<String> getSrcStr(String htmlStr, String type) {
|
|
|
Set<String> srcs = new HashSet<String>();
|
|
|
String src = "";
|
|
|
Pattern p_src;
|
|
|
Matcher m_src;
|
|
|
// String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
|
|
|
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()) {
|
|
|
// 得到<img />数据
|
|
|
src = m_src.group();
|
|
|
// 匹配<img>中的src数据
|
|
|
Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(src);
|
|
|
while (m.find()) {
|
|
|
srcs.add(m.group(1));
|
|
|
}
|
|
|
}
|
|
|
return srcs;
|
|
|
}
|
|
|
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 向指定URL发送GET方法的请求
|
|
|
*
|
|
|
* @param url 发送请求的URL
|
|
|
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
|
|
|
* @return URL 所代表远程资源的响应结果
|
|
|
*/
|
|
|
public static String sendGet(String url, String param) {
|
|
|
BaseBean bb = new BaseBean();
|
|
|
String result = "";
|
|
|
String responseMessage="";
|
|
|
BufferedReader in = null;
|
|
|
HttpURLConnection connection = null;
|
|
|
try {
|
|
|
URL getUrl = new URL(url + "?" + param);
|
|
|
bb.writeLog("getUrl-->"+getUrl);
|
|
|
// 打开和URL之间的连接
|
|
|
connection = (HttpURLConnection) getUrl.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");
|
|
|
|
|
|
// 配置本次连接的Content-type,form表单是"application/x-www-form-urlencoded",json是"application/json"等
|
|
|
// 根据需求自己调整Content-type
|
|
|
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
|
|
// 设置连接主机服务器的超时时间:15000毫秒
|
|
|
connection.setConnectTimeout(15000);
|
|
|
// 设置读取远程返回的数据时间:60000毫秒
|
|
|
connection.setReadTimeout(60000);
|
|
|
// 设置连接方式:get
|
|
|
connection.setRequestMethod("GET");
|
|
|
// 建立实际的连接,可不写,注意connection.getOutputStream会隐含的进行connect。
|
|
|
connection.connect();
|
|
|
|
|
|
// 获取所有响应头字段
|
|
|
Map<String, List<String>> map = connection.getHeaderFields();
|
|
|
// 遍历所有的响应头字段
|
|
|
for (String key : map.keySet()) {
|
|
|
bb.writeLog(key + "--->" + map.get(key));
|
|
|
}
|
|
|
|
|
|
|
|
|
// 定义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("发送GET请求出现异常!" + e);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
// 使用finally块来关闭输入流
|
|
|
finally {
|
|
|
try {
|
|
|
if (in != null) {
|
|
|
in.close();
|
|
|
}
|
|
|
if (connection != null) {
|
|
|
//关闭连接
|
|
|
connection.disconnect();
|
|
|
}
|
|
|
} catch (Exception e2) {
|
|
|
e2.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 向指定 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<String,String> params, Map<String,String> 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<String, String> entry : headers.entrySet()) {
|
|
|
httpost.setHeader(entry.getKey(),entry.getValue());
|
|
|
}
|
|
|
}
|
|
|
bb.writeLog("url="+url+"header="+headers+"encode="+encode);
|
|
|
bb.writeLog("params="+params);
|
|
|
//组织请求参数
|
|
|
List<NameValuePair> paramList = new ArrayList <NameValuePair>();
|
|
|
if(params != null && params.size() > 0){
|
|
|
Set<String> 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;
|
|
|
}
|
|
|
|
|
|
%>
|
|
|
<%
|
|
|
RecordSet rs = new RecordSet();
|
|
|
BaseBean bb=new BaseBean();
|
|
|
Map<String,String> params = new HashMap<>();//参数
|
|
|
Map<String,String> headers = new HashMap<>();//headers
|
|
|
JSONArray array = new JSONArray();
|
|
|
String ST ="";//获取ST
|
|
|
bb.writeLog("进入getCockpit.jap-->");
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
int uid = user.getUID();
|
|
|
session = request.getSession(true);
|
|
|
String certified_token = Util.null2String(session.getAttribute("certified_token"));
|
|
|
bb.writeLog("获取sessionTGT=="+certified_token);
|
|
|
bb.writeLog("uid-->"+uid);
|
|
|
//查询邮箱号
|
|
|
//http://${单点系统地址}/sso_server/api/v1/thirdSystem/getList
|
|
|
|
|
|
// String httpPostRequest="https://www.baidu.com/";
|
|
|
String API_KEY = Util.null2String(bb.getPropValue("tjbankEMobileSSO","key"));
|
|
|
String url = Util.null2String(bb.getPropValue("tjbankEMobileSSO","stUrl"));//获取ST的url
|
|
|
String cockpitUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","cockpitUrl"));
|
|
|
String thirdUrl = Util.null2String(bb.getPropValue("tjbankEMobileSSO","thirdUrl"));//获取下流系统
|
|
|
//thirdUrl
|
|
|
//获取ST,带着下游系统
|
|
|
if (!isEmpty(certified_token)){
|
|
|
params = new HashMap<>();//参数
|
|
|
params.put("tgt",certified_token);
|
|
|
|
|
|
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");
|
|
|
String result = httpPostForm(thirdUrl,params,headers,null);
|
|
|
org.json.JSONObject thirdMsg = new org.json.JSONObject(result);
|
|
|
bb.writeLog("进入thirdMsg-->"+thirdMsg);
|
|
|
|
|
|
//String addressUrl="http://${单点系统地址}/sso_server/api/v1/tickets/createST";
|
|
|
params = new HashMap<>();//参数
|
|
|
params.put("tgt",certified_token);
|
|
|
params.put("service",cockpitUrl);
|
|
|
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");
|
|
|
// String param="?user_at_domain%3D"+email;
|
|
|
String responseInfo = httpPostForm(url,params,headers,null);
|
|
|
bb.writeLog("进入TGT-->"+certified_token);
|
|
|
bb.writeLog("进入接口地址-->"+url);
|
|
|
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){
|
|
|
bb.writeLog("是否进来了");
|
|
|
//loginUrl="http://123.151.115.199:8080/bi/APPFW?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;
|
|
|
loginUrl="http://168.5.72.9:8080/bi/APPFW?ticket="+ST;
|
|
|
bb.writeLog("是否进来了loginUrl=="+loginUrl);
|
|
|
}
|
|
|
}
|
|
|
//String loginUrl="http://10.16.103.18:9900/coremail/main.jsp?sid="+sid;
|
|
|
// httpPostRequest = httpPostRequest(null, loginUrl, null);
|
|
|
bb.writeLog("loginUrl-->"+loginUrl);
|
|
|
// bb.writeLog("跳转路径-->"+httpPostRequest);
|
|
|
out.print("跳转路径-->"+loginUrl);
|
|
|
out.print("进入驾驶舱成功");
|
|
|
response.sendRedirect(loginUrl);
|
|
|
// return;
|
|
|
}
|
|
|
}else {
|
|
|
out.print("进入驾驶舱系统失败,请先获取标识");
|
|
|
// response.sendRedirect(httpPostRequest);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
%>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
<%--<%=httpPostRequest%>;--%>
|
|
|
// alert("00000");
|
|
|
// next();
|
|
|
// function next(){
|
|
|
// alert("2222");
|
|
|
// console.log("111111111");
|
|
|
<%--console.log("http://10.16.103.18:9900/coremail/main.jsp?sid="+<%=sid%>);--%>
|
|
|
<%--console.log("sid="+<%=sid%>);--%>
|
|
|
<%--window.location.href= "http://10.16.103.18:9900/coremail/main.jsp?sid="+<%=sid%>;--%>
|
|
|
// window.location.href= "https://www.baidu.com/";
|
|
|
<%-- }--%>
|
|
|
</script>
|