You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
5.5 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
<%@ 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="org.apache.http.entity.StringEntity" %>
<%@ page import="org.apache.http.HttpEntity" %>
<%@ page import="org.apache.http.util.EntityUtils" %>
<%@ page import="java.io.IOException" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="java.util.Calendar" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.interfaces.mfkj.util.HttpUtils" %>
<jsp:useBean id="rst" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs1" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="bb" class="weaver.general.BaseBean" />
<%
User user = HrmUserVarify.getUser(request, response);
int userid = user.getUID();
String email = "";
if(userid == 1){
email = "lyla.zhang@matfron.com";
}else{
email = user.getEmail();
}
//企业编码
String corpCode = bb.getPropValue("syn_othersys_mfkj","corpCode");
//用户名称
String userName = bb.getPropValue("syn_othersys_mfkj","userName");
//加密密码
String password = bb.getPropValue("syn_othersys_mfkj","password");
//获取 token url
String token_url = bb.getPropValue("syn_othersys_mfkj","token_url");
// 面试官工作台单点登录
String interview_login_url = bb.getPropValue("syn_othersys_mfkj","interview_login_url");
//uf_dy_token modeuuid
String token_uuid = bb.getPropValue("syn_othersys_mfkj","token_uuid");
JSONObject jsonObject = new JSONObject();
jsonObject.put("corpCode",corpCode);
jsonObject.put("userName",userName);
jsonObject.put("password",password);
Map<String,Object> tokenMap = new HashMap<>();
Map<String,String> headers = new HashMap<>();
String encode = "utf-8";
String token = "";
String expire = "";
Calendar cal1 = Calendar.getInstance();
long now_time = cal1.getTimeInMillis();
rst.executeQuery("select * from uf_dy_token where modeuuid='"+ token_uuid +"'");
rst.next();
expire = Util.null2o(rst.getString("expire"));
token = Util.null2o(rst.getString("token"));
long timestamp = Long.parseLong(expire)*1000;
//token已过期重新调用获取新的token
if(now_time > timestamp){
tokenMap = HttpUtils.getTokenInfo(token_url,headers,jsonObject.toString(),encode);
if(tokenMap.size() > 0){
token = (String) tokenMap.get("token");
expire = (String) tokenMap.get("expire");
//更新token和有效时间戳
rs1.executeUpdate("update uf_dy_token set token='"+ token +"',expire='"+ expire +"' where modeuuid='"+ token_uuid +"'");
}
}
headers.put("Authorization", "Bearer "+token);
JSONObject json1 = new JSONObject();
json1.put("email",email);
String urll = getLoginUrl(interview_login_url,headers,json1.toString(),"UTF-8");
%>
<%!
/**
* 单点的 url
* @param url
* @param headers
* @param stringJson
* @param encode
* @return
*/
public static String getLoginUrl(String url, Map<String,String> headers, String stringJson, String encode){
String result = "";
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
httpost.setHeader("Content-type", "application/json");
if (headers != null && headers.size() > 0) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
httpost.setHeader(entry.getKey(),entry.getValue());
}
}
//组织请求参数
StringEntity stringEntity = new StringEntity(stringJson, encode);
httpost.setEntity(stringEntity);
//响应信息
httpResponse = closeableHttpClient.execute(httpost);
HttpEntity entity = httpResponse.getEntity();
content = EntityUtils.toString(entity, encode);
if(content != null && !"".equals(content)){
JSONObject json = JSONObject.parseObject(content);
String code = json.getString("state");
if("0".equals(code)){
String data = json.getString("data");
JSONObject json_data = JSONObject.parseObject(data);
result = json_data.getString("url");
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try { //关闭连接、释放资源
closeableHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
%>
<script type="text/javascript">
var redirecturl = "<%=urll%>";
window.location.href = redirecturl;
</script>