%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page import="java.nio.charset.StandardCharsets" %>
<%@ page import="javax.crypto.spec.SecretKeySpec" %>
<%@ page import="javax.xml.bind.DatatypeConverter" %>
<%@ page import="java.security.NoSuchAlgorithmException" %>
<%@ page import="java.security.InvalidKeyException" %>
<%@ page import="javax.crypto.*" %>
<%
BaseBean bb = new BaseBean();
String host = "https://mip.beta.myspacex.cn/yczg/fw/OA_SSO_Login";
String secretKey = "httpsoanjycjtcom";
String msg = "" ;
String jumpUrl = "" ;
User user = HrmUserVarify.getUser (request,response);
try{
if(user !=null){
String userid = user.getUID()+"";
String workcode = ResourceComInfo.getWorkcode(userid);
if(StringUtils.isNotBlank(workcode) && StringUtils.isNotBlank(secretKey)){
String token = encryptAES(secretKey,workcode);
jumpUrl = host+"?Token="+token ;
}else{
msg = "获取当前用户工号为空";
}
}else{
msg = "获取当前用户为空";
}
}catch (Exception e){
}
if(StringUtils.isNotBlank(jumpUrl)){
response.sendRedirect(jumpUrl);
}
%>
<%!
/**
* AES加密字符串
* @return 加密后内容
*/
public String encryptAES(String password,String data) {
String ALGORITHM = "AES";
String encrtptData = "" ;
try {
byte[] keyBytes = password.getBytes(StandardCharsets.UTF_8); // 生成随机的16字节密钥
SecretKey secretKey = new SecretKeySpec(keyBytes, ALGORITHM); // 创建SecretKey对象
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey); // 初始化加密器
byte[] encryptedBytes = cipher.doFinal(data.getBytes());
encrtptData = DatatypeConverter.printHexBinary(encryptedBytes);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return encrtptData ;
}
%>