Ecology-Dev-chaofa/FiveHzCenter/interface.wuyuan/checkQtx.jsp

205 lines
7.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="javax.crypto.Cipher" %>
<%@ page import="java.nio.charset.StandardCharsets" %>
<%@ page import="javax.crypto.spec.SecretKeySpec" %>
<%@ page import="javax.crypto.spec.IvParameterSpec" %>
<%@ page import="org.apache.commons.codec.binary.Base64" %>
<%@ page import="java.util.Map" %>
<%@ 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="java.util.HashMap" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs1" class="weaver.conn.RecordSet" scope="page" />
<%
JSONObject jsonObject = new JSONObject();
String APP_SECRET = "YVBKbcEQSXlwcpOxjOGRhODWASSkzg";
String data = System.currentTimeMillis() + "||" + APP_SECRET;
String IV = APP_SECRET.substring(APP_SECRET.length() - 16);
String key = APP_SECRET.substring(0, 16);
String sign = encryptData(data, key, IV);
System.out.println(sign);
String url = "http://192.168.10.54:7123/hklearn/api/access/getUserToken";
String username = "SZ001";
Map<String,String> headers = new HashMap<>();
String encode = "utf-8";
JSONObject param = new JSONObject();
param.put("username",username);
param.put("sign",sign);
jsonObject.put("url",url);
jsonObject.put("sign",sign);
jsonObject.put("username",username);
String token = httpGetToken(url,param.toString(),headers,"utf-8");
jsonObject.put("token",token);
out.print(jsonObject.toJSONString());
%>
<%!
/**
*
* @param data 需要加密的数据
* @param key 秘钥
* @param IV 偏移量
* @return
*/
private static String encryptData(String data, String key, String IV) {
try {
//算法/模式/填充模式 AES/CBC/PKCS5Padding
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] dataBytes = data.getBytes(StandardCharsets.UTF_8);
int plaintextLength = dataBytes.length;
byte[] plaintext = new byte[plaintextLength];
System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(IV.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
byte[] encrypted = cipher.doFinal(plaintext);
//输出内容Base64处理
return new String(Base64.encodeBase64(encrypted));
} catch (Exception e) {
return null;
}
}
/**
* 发送 http post 请求,参数以原生字符串进行提交
* @param url
* @param encode
* @return
*/
public static String httpGetToken(String url, String stringJson, Map<String,String> headers, String encode){
if(encode == null){
encode = "utf-8";
}
String result = "";
CloseableHttpResponse httpResponse = null;
CloseableHttpClient closeableHttpClient = null;
try {
//HttpClients.createDefault()等价于 HttpClientBuilder.create().build();
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();
String content = EntityUtils.toString(entity, encode);
if(content != null && !"".equals(content)){
JSONObject jsonObject = JSONObject.parseObject(content);
int code = (int) jsonObject.get("code");
if(code==10000){
String data = jsonObject.get("data").toString();
JSONObject jsonObject1 = JSONObject.parseObject(data);
result = jsonObject1.get("accessToken").toString();
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try { //关闭连接、释放资源
closeableHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 发送 http post 请求,参数以原生字符串进行提交
* @param url
* @param encode
* @return
*/
public static boolean httpPostJson(String url, String stringJson, Map<String,String> headers, String encode){
if(encode == null){
encode = "utf-8";
}
boolean result = false;
CloseableHttpResponse httpResponse = null;
CloseableHttpClient closeableHttpClient = null;
try {
//HttpClients.createDefault()等价于 HttpClientBuilder.create().build();
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();
String content = EntityUtils.toString(entity, encode);
if(content != null && !"".equals(content)){
JSONObject jsonObject = JSONObject.parseObject(content);
int code = (int) jsonObject.get("code");
if(code==10000){
result = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try { //关闭连接、释放资源
closeableHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
%>