#EC-HJ-18# 调整配置文件获取,实现从UF_PROP表中读取配置信息

feature-LeeD-20221025
shilei 2 years ago
parent 427e0a1a36
commit ad6bfb2c01

@ -1,39 +1,45 @@
package weaver.interfaces.util;
package com.customization.sendtodo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import org.apache.commons.lang.StringUtils;
import weaver.general.BaseBean;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.iwhalecloud.util.RSAUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SendMailUtil{
public class SendMailUtil {
public static BaseBean baseBean = new BaseBean();
String emailenable = baseBean.getPropValue("PORTAL_INFO","emailenable");
String emailenable = PropBean.getUfPropValue("emailenable");
public void sendMail(String requestid, String emails, String notificationSubject, String notificationContent){
BaseBean baseBean = new BaseBean();
baseBean.writeLog("emailenable:"+emailenable);
if("1".equals(emailenable))
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String emailUrl = baseBean.getPropValue("PORTAL_INFO","emailUrl");
String emailMethod = baseBean.getPropValue("PORTAL_INFO","emailMethod");
String emailEventCode = baseBean.getPropValue("PORTAL_INFO","emailEventCode");
String emailNotificationType = baseBean.getPropValue("PORTAL_INFO","emailNotificationType");
String emailChannel = baseBean.getPropValue("PORTAL_INFO","emailChannel");
String emailVersion = baseBean.getPropValue("PORTAL_INFO","emailVersion");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String emailUrl = PropBean.getUfPropValue("emailUrl");
String emailMethod = PropBean.getUfPropValue("emailMethod");
String emailEventCode = PropBean.getUfPropValue("emailEventCode");
String emailNotificationType = PropBean.getUfPropValue("emailNotificationType");
String emailChannel = PropBean.getUfPropValue("emailChannel");
String emailVersion = PropBean.getUfPropValue("emailVersion");
String emailkey = PropBean.getUfPropValue("emailkey");
if(StringUtils.isEmpty(emailkey)){
emailkey = "email";
}
String triggerTime = sdf.format(new Date());
JSONObject requestJson = new JSONObject();
requestJson.put("eventCode",emailEventCode);
requestJson.put("triggerTime",triggerTime);
requestJson.put("notificationType",emailNotificationType);
requestJson.put("email",emails);
requestJson.put(emailkey,emails);
requestJson.put("channel",emailChannel);
requestJson.put("notificationSubject",notificationSubject);
requestJson.put("notificationContent",notificationContent);
@ -87,7 +93,6 @@ public class SendMailUtil{
baseBean.writeLog(e);
}
}
}
/***
@ -95,16 +100,16 @@ public class SendMailUtil{
* @return
*/
public String doGetAccessToken(){
BaseBean baseBean = new BaseBean();
baseBean.writeLog("doGetAccessToken == ");
String responseData = "" ;
RSAUtils RSAUtils = new RSAUtils();
String emailTokenUrl = baseBean.getPropValue("PORTAL_INFO","emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize"
String emainAppCode = baseBean.getPropValue("PORTAL_INFO","emainAppCode") ;
String emailAppSecret = baseBean.getPropValue("PORTAL_INFO","emailAppSecret") ;
String emailResponseType = baseBean.getPropValue("PORTAL_INFO","emailResponseType") ; //token
String emailPrivateKey = baseBean.getPropValue("PORTAL_INFO","emailPrivateKey") ;
String emailTokenUrl = PropBean.getUfPropValue("emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize"
String emainAppCode = PropBean.getUfPropValue("emainAppCode") ;
String emailAppSecret = PropBean.getUfPropValue("emailAppSecret") ;
String emailResponseType = PropBean.getUfPropValue("emailResponseType") ; //token
String emailPrivateKey = PropBean.getUfPropValue("emailPrivateKey") ;
baseBean.writeLog("emainAppCode == "+emainAppCode);

@ -7,8 +7,8 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class SendPortalDoneUtil {
@ -466,8 +466,8 @@ public class SendPortalDoneUtil {
workcode = Util.null2String(rs.getString("loginid"));
}
String center = bb.getPropValue("PORTAL_INFO", "center");
String ticketType = bb.getPropValue("PORTAL_INFO", "done_ticketType");
String center = PropBean.getUfPropValue("center");
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String app_requestUrl = bpm_app_requesturl + requestid;
app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");

@ -35,14 +35,14 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
String nodeid = Util.null2String(request.getParameter("nodeid"));
String workflowname = Util.null2String(request.getParameter("workflowname"));
Map<String,Object> params = ParamUtil.request2Map(request);
params.forEach((t,u)-> {
System.out.println(t+"->>>"+u);
});
for (Map.Entry<String, Object> entry : params.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
// Map<String,Object> params = ParamUtil.request2Map(request);
// params.forEach((t,u)-> {
// System.out.println(t+"->>>"+u);
// });
//
// for (Map.Entry<String, Object> entry : params.entrySet()) {
// System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
// }
User user = requestSubmitCmd.getUser();
bb.writeLog("requestid:"+requestid);

@ -3,6 +3,7 @@ package com.customization.sendtodo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
public class SendPortalTodoRunnable implements Runnable{
@ -27,15 +28,15 @@ public class SendPortalTodoRunnable implements Runnable{
SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil();
SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil();
BaseBean bb = new BaseBean();
String portal_todourl = bb.getPropValue("PORTAL_INFO","portal_todourl");
String username = bb.getPropValue("PORTAL_INFO","username");
String passwd = bb.getPropValue("PORTAL_INFO","passwd");
String center = bb.getPropValue("PORTAL_INFO","center");
String bpm_workflowurl = bb.getPropValue("PORTAL_INFO","bpm_workflowurl");
String bpm_app_workflowurl = bb.getPropValue("PORTAL_INFO","bpm_app_workflowurl");
String portal_doneurl = bb.getPropValue("PORTAL_INFO","portal_doneurl");
String bpm_app_requesturl = bb.getPropValue("PORTAL_INFO","bpm_app_requesturl");
String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
if(Util.getIntValue(requestid) == -1 && "save".equals(src)){
sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);

@ -7,7 +7,6 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.util.SendMailUtil;
import java.net.URLEncoder;
import java.util.regex.Matcher;
@ -348,15 +347,15 @@ public class SendPortalTodoUtil {
int count = 0 ;
String countSql =" select t2.userid,h1.loginid\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.REQUESTID = "+requestid+
" and t2.nodeid = " + noideid ;
" from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h1 on h1.id = t2.userid\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" +
" and t2.islasttimes = 1\n" +
" and (t2.isprocessing = '' or t2.isprocessing is null)\n" +
" and t2.REQUESTID = "+requestid+
" and t2.nodeid = " + noideid ;
bb.writeLog("sendTodoDataByNode--countSql:"+countSql);
rs.executeQuery(countSql);
while (rs.next()){
@ -365,13 +364,13 @@ public class SendPortalTodoUtil {
bb.writeLog("sendTodoDataByNode--count:"+count);
String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("sendTodoDataByNode--sql:"+sql);
if(count >0){
@ -578,13 +577,13 @@ public class SendPortalTodoUtil {
JSONArray taskObjectList = new JSONArray();
String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" +
" left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+
" left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" +
" where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" +
" and t1.requestid = "+requestid ;
bb.writeLog("sendTodoDataByReject--sql:"+sql);
rs.executeQuery(sql);
if (rs.next()){

@ -12,6 +12,7 @@ import weaver.file.FileUpload;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@ -60,11 +61,12 @@ public class SendRemarkOperateTodoCmd extends AbstractCommandProxy<Map<String, O
}
User user = forwardSubmitCmd.getUser();
//执行推送代办
String portal_todourl = bb.getPropValue("PORTAL_INFO", "portal_todourl");
String username = bb.getPropValue("PORTAL_INFO", "username");
String passwd = bb.getPropValue("PORTAL_INFO", "passwd");
String center = bb.getPropValue("PORTAL_INFO", "center");
String bpm_workflowurl = bb.getPropValue("PORTAL_INFO", "bpm_workflowurl");
String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
if (Util.getIntValue(requestid) > 0) {
sendTodoDataByCreateNode(requestid, nodeid, user, portal_todourl, username, passwd, bpm_workflowurl, center);
}

@ -10,7 +10,7 @@ public class PropBean {
public static BaseBean bb = new BaseBean();
public static String active = Util.null2String(bb.getPropValue("developProp","active"));
public static String getPropValue(String pkey)
public static String getUfPropValue(String pkey)
{
if(StringUtils.isEmpty(active)){
return "";

@ -1,355 +1,268 @@
package weaver.interfaces.filter;
import okhttp3.*;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.api.login.util.LoginUtil;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import java.io.BufferedReader;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.general.GCONST;
import weaver.interfaces.comInfo.PropBean;
import weaver.login.VerifyLogin;
import javax.servlet.http.Cookie;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import com.sun.jersey.core.util.Base64;
public class HttpRequestUtil extends BaseBean{
public String doGetHttp(String url,String session){
BaseBean bb = new BaseBean();
String msgData= "" ;
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
.url(url)
.method("GET", null)
.addHeader("Cookie", "SESSION="+session)
.build();
try {
Response response = client.newCall(request).execute();
/**
*
*
* @param url
* @param encoding
* @return
* @throws ParseException
* @throws IOException
*/
// public String sendPost(String url, Map<String,String> headers,String encoding){
// String body = "";
//
// BaseBean bb = new BaseBean();
// bb.writeLog("url ==" + url);
//
// //创建httpclient对象
// CloseableHttpClient client = HttpClients.createDefault();
// //创建post方式请求对象
// HttpPost httpPost = new HttpPost(url);
//
// //设置参数到请求对象中
// if (headers != null && headers.size() > 0) {
// for (Map.Entry<String, String> entry : headers.entrySet()) {
// bb.writeLog("key:"+entry.getKey());
// bb.writeLog("val:"+entry.getValue());
// httpPost.addHeader(entry.getKey(),entry.getValue());
// }
// }
//
// //设置header信息
// //指定报文头【Content-type】、【User-Agent】
//// httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//
// //执行请求操作,并拿到结果(同步阻塞)
// CloseableHttpResponse response = null;
// try {
//
// response = client.execute(httpPost);
// bb.writeLog(response.getStatusLine().getStatusCode());
// //获取结果实体
// HttpEntity entity = response.getEntity();
// if (entity != null) {
// //按指定编码转换结果实体为String类型
// body = EntityUtils.toString(entity, encoding);
// }
// EntityUtils.consume(entity);
// //释放链接
// response.close();
// } catch (IOException e) {
// e.printStackTrace();
// bb.writeLog("e:"+e);
// }
//
// return body;
// }
int code = response.code();
String bodyMsg = response.body().string();
bb.writeLog("PortalLoginFilter-response.code():"+code);
bb.writeLog("PortalLoginFilter-response.body():"+bodyMsg);
if(code == 200){
msgData = bodyMsg;
}
/**
* URLGET
*
* @param url
* URL
* name1=value1&name2=value2
* @return result
*/
// public String sendGet(String url, Map<String,String> headers,String uid) {
// String result = "";
// BufferedReader in = null;
//
// BaseBean bb = new BaseBean();
// bb.writeLog("url ==" + url);
// bb.writeLog("uid ==" + uid);
// try {
// String urlNameString = url ;
// URL realUrl = new URL(urlNameString); // 打开和URL之间的连接
// HttpURLConnection connection= (HttpURLConnection) realUrl.openConnection();
// 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.setDoOutput(true);
// connection.setDoInput(true);
// connection.setUseCaches(false);
// connection.setRequestMethod("GET");
//
// //connection.addRequestProperty("Cookie", "SESSION="+uid);
//
// if (headers != null && headers.size() > 0)
// {
// for (Map.Entry<String, String> entry : headers.entrySet()) {
// bb.writeLog("key:"+entry.getKey());
// bb.writeLog("val:"+entry.getValue());
// connection.addRequestProperty(entry.getKey(), entry.getValue());
// }
// }
//
// // 建立实际的连接
// connection.connect();
// // 获取所有响应头字段
// //Map<String, List<String>> map = connection.getHeaderFields();
// // 遍历所有的响应头字段
// //for (String key : map.keySet()) {
// // System.out.println(key + "--->" + map.get(key));
// //}
// // 定义 BufferedReader输入流来读取URL的响应
// 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();
// }
// } catch (Exception e2) {
// e2.printStackTrace();
// }
// }
//
// return result;
// }
} catch (IOException e) {
e.printStackTrace();
}
return msgData;
}
/***
*
* @param url
* @param headers
* @param encode
* @return
* @param request
* @param staffCode
* @param uid
*/
public String httpGet1(String url, Map<String,String> headers, String encode){
BaseBean bb = new BaseBean();
//bb.writeLog("url",url);
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<String, String> entry : headers.entrySet()) {
httpGet.addHeader(entry.getKey(),entry.getValue());
}
public void loginUser(HttpServletRequest request,String staffCode,String uid,String resultCode){
RecordSet rs = new RecordSet();
if (!"".equals(staffCode))
{
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
}
//bb.writeLog("sql:" + sql);
rs.executeQuery(sql, new Object[]{staffCode});
httpGet.setHeader("Accept", "*");
// httpGet.addHeader("Cookie","SESSION="+uid);
httpResponse = closeableHttpClient.execute(httpGet);
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
request.getSession(true).setAttribute("weaver_uid", uid);
if(httpResponse.getStatusLine().getStatusCode() == 200){
//bb.writeLog(httpResponse.getStatusLine().getStatusCode());
HttpEntity entity = httpResponse.getEntity();
content = EntityUtils.toString(entity, encode);
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("er333:"+e);
}finally{
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try { //关闭连接、释放资源
closeableHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}
/***
/****
*
* @param url
* @param headers
* @param encode
* @return
* @param request
* @param response
* @param application
*/
// public String httpGet2(String url,Map<String,String> headers,String encode)
// {
//
// BaseBean bb = new BaseBean();
// bb.writeLog("url",url);
// 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<String, String> entry : headers.entrySet()) {
//
// bb.writeLog("key:"+entry.getKey());
// bb.writeLog("val:"+entry.getValue());
//
// httpGet.addHeader(entry.getKey(),entry.getValue());
// }
// }
//
// httpGet.setHeader("Accept", "*");
//
// httpResponse = closeableHttpClient.execute(httpGet);
// if(httpResponse.getStatusLine().getStatusCode() == 200)
// {
// bb.writeLog(httpResponse.getStatusLine().getStatusCode());
// HttpEntity entity = httpResponse.getEntity();
// content = EntityUtils.toString(entity, encode);
// }
// } catch (Exception e) {
// e.printStackTrace();
// bb.writeLog("er333:"+e);
// }finally{
// try {
// httpResponse.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// try { //关闭连接、释放资源
// closeableHttpClient.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// return content;
// }
public void userSessionFilter(HttpServletRequest request, HttpServletResponse response, ServletContext application,String staffCode,String uid){
/***
*
* @param url
* @param jsonstr
* @return
*/
// public static String doPostByAuth(String url,String jsonstr,String auth){
// CloseableHttpClient httpClient = null;
// HttpPost httpPost = null;
// String result = null;
// try{
// String authStr = new String(Base64.encode(auth));
// httpClient = HttpClients.createDefault();
// httpPost = new HttpPost(url);
//// String head_param_encode = urlEncode(head_param);
// System.out.println("authStr:"+authStr);
// httpPost.addHeader("Connection", "Keep-Alive");
// httpPost.addHeader("Cache-Control", "No-Cache");
// httpPost.addHeader("Accept", "*/*");
// httpPost.addHeader("Content-Type", "application/json;charset=utf-8");
// httpPost.addHeader("Authorization", "Basic " + authStr);
// httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
// StringEntity se = new StringEntity(jsonstr);
// se.setContentType("application/json;charset=utf-8");
// httpPost.setEntity(se);
// HttpResponse response = httpClient.execute(httpPost);
// if(response != null){
// HttpEntity resEntity = response.getEntity();
// if(resEntity != null){
// result = EntityUtils.toString(resEntity,"utf-8");
// }
// }
// }catch(Exception ex){
// ex.printStackTrace();
// }
// return result;
// }
String path = PropBean.getUfPropValue("ecologypath");
boolean isMutiLangua = Util.isEnableMultiLang();
//系统使用语言,未使用多语言的用户默认为中文。
int isLanguId = 8;
String languId = "8";
if (isMutiLangua) {
isLanguId = Util.getIntValue(request.getParameter("islanguid"), 0);
//如何未选择,则默认系统使用语言为简体中文
if (isLanguId == 0) {
isLanguId = 8;
}
languId = String.valueOf(isLanguId);
Cookie syslanid = new Cookie("Systemlanguid", languId);
syslanid.setMaxAge(-1);
syslanid.setPath(path);
response.addCookie(syslanid);
}
RecordSet rs = new RecordSet();
RecordSet rslog = new RecordSet();
User newUser = null;
String loginUserId = "" ;
String loginName = "" ;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
}
rs.executeQuery(sql,new Object[]{staffCode});
if (rs.next())
{
newUser = new User();
loginUserId = Util.null2String(rs.getInt("id"));
loginName = Util.null2String(rs.getInt("lastname"));
newUser.setUid(rs.getInt("id"));
newUser.setLoginid(rs.getString("loginid"));
newUser.setPwd(rs.getString("password"));
newUser.setFirstname(rs.getString("firstname"));
newUser.setLastname(rs.getString("lastname"));
newUser.setAliasname(rs.getString("aliasname"));
newUser.setTitle(rs.getString("title"));
newUser.setTitlelocation(rs.getString("titlelocation"));
newUser.setSex(rs.getString("sex"));
newUser.setPwd(rs.getString("password"));
String languageIdWeaver = rs.getString("systemlanguage");
newUser.setLanguage(Util.getIntValue(languageIdWeaver, 8));
if (!languId.equalsIgnoreCase(languageIdWeaver) && isMutiLangua) {
User.setUserLang(rs.getInt("id"), Util.getIntValue(languId, 8));
languageIdWeaver = languId;
}
newUser.setTelephone(rs.getString("telephone"));
newUser.setMobile(rs.getString("mobile"));
newUser.setMobilecall(rs.getString("mobilecall"));
newUser.setEmail(rs.getString("email"));
newUser.setCountryid(rs.getString("countryid"));
newUser.setLocationid(rs.getString("locationid"));
newUser.setResourcetype(rs.getString("resourcetype"));
newUser.setStartdate(rs.getString("startdate"));
newUser.setEnddate(rs.getString("enddate"));
newUser.setContractdate(rs.getString("contractdate"));
newUser.setJobtitle(rs.getString("jobtitle"));
newUser.setJobgroup(rs.getString("jobgroup"));
newUser.setJobactivity(rs.getString("jobactivity"));
newUser.setJoblevel(rs.getString("joblevel"));
newUser.setSeclevel(rs.getString("seclevel"));
newUser.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
newUser.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
newUser.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
newUser.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
newUser.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
newUser.setManagerid(rs.getString("managerid"));
newUser.setAssistantid(rs.getString("assistantid"));
newUser.setPurchaselimit(rs.getString("purchaselimit"));
newUser.setCurrencyid(rs.getString("currencyid"));
newUser.setLastlogindate(rs.getString("currentdate"));
newUser.setLogintype("1");
newUser.setAccount(rs.getString("account"));
newUser.setLoginip(request.getRemoteAddr());
String weaverLoginType = Util.null2String(request.getSession(true).getAttribute("weaver_login_type"));
if("".equals(weaverLoginType)){
weaverLoginType = "1";
}
request.getSession(true).setAttribute("weaver_login_type", weaverLoginType);
request.getSession(true).setAttribute("weaver_user@bean", newUser);
request.getSession(true).setAttribute("rtxlogin", "1");
request.getSession(true).setAttribute("weaver_uid", uid);
Util.setCookie(response, "loginidweaver", newUser.getUID() + "", -1);
Util.setCookie(response, "languageidweaver", Util.null2s(languageIdWeaver, "8"), -1);
HttpSession session = request.getSession(true);
session.removeAttribute("validateRand");
session.setAttribute("isie", Util.null2String(request.getParameter("isie")));
session.setAttribute("browser_isie", Util.null2String(request.getParameter("isie")));
// public static String urlEncode(String url) throws UnsupportedEncodingException {
// if(url == null) {
// return null;
// }
// final String reserved_char = ";/?:@=&";
// String ret = "";
// for(int i=0; i < url.length(); i++) {
// String cs = String.valueOf( url.charAt(i) );
// if(reserved_char.contains(cs)){
// ret += cs;
// }else{
// ret += URLEncoder.encode(cs, "utf-8");
// }
// }
// return ret.replace("+", "%20");
// }
Calendar today = Calendar.getInstance();
String currentdate = Util.add0(today.get(1), 4) + "-" + Util.add0(today.get(2) + 1, 2) + "-" + Util.add0(today.get(5), 2);
char separater = Util.getSeparator();
rslog.execute("HrmResource_UpdateLoginDate", loginUserId + separater + currentdate);
boolean moreAccountLanding = GCONST.getMOREACCOUNTLANDING();
if (moreAccountLanding) {
if (newUser.getUID() != 1) {
VerifyLogin verifyLogin = new VerifyLogin();
List accounts = verifyLogin.getAccountsById(newUser.getUID());
request.getSession(true).setAttribute("accounts", accounts);
}
Util.setCookie(response, "loginidweaver", newUser.getUID()+"", -1);
}
Map userSessions = (Map) application.getAttribute("userSessions");
String uId = String.valueOf(newUser.getUID());
if (userSessions == null) {
userSessions = new java.util.concurrent.ConcurrentHashMap();
}
List slist = (List) userSessions.get(uId);
slist = slist == null ? new ArrayList() : slist;
slist.add(session);
userSessions.put(uId, slist);
application.setAttribute("userSessions", userSessions);
}
// public String doPostByAuth2(String dataJson){
// BaseBean bb = new BaseBean();
// String msgData = "" ;
// OkHttpClient client = new OkHttpClient().newBuilder()
// .build();
// MediaType mediaType = MediaType.parse("application/json");
// RequestBody body = RequestBody.create(mediaType, dataJson);
// Request request = new Request.Builder()
// .url("http://172.16.25.133/portal-web/centerTodo/sync")
// .method("POST", body)
// .addHeader("Authorization", "Basic YWRtaW46VXBvcnRhbF8xMjM=")
// .addHeader("Content-Type", "application/json")
// .build();
// try {
// Response response = client.newCall(request).execute();
// bb.writeLog("response.code():"+response.code());
// bb.writeLog("response.body():"+response.body().string());
//
// msgData = response.body().string();
// } catch (IOException e) {
// e.printStackTrace();
// }
// return msgData;
// }
if(!"".equals(loginUserId))
{
LoginUtil.recordLogin(Util.getIntValue(loginUserId),loginName,request.getRemoteAddr());
}
}
}

@ -2,42 +2,44 @@ package weaver.interfaces.filter;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PortalLoginBeforeFilter implements Filter {
private List<String> bpmHostList = new ArrayList<String>();
private String portalUserAuth = "" ;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
BaseBean bb = new BaseBean();
String bpm_host_array = bb.getPropValue("PORTAL_INFO", "bpm_host_array");
String bpm_host_array = PropBean.getUfPropValue("bpm_host_array");
if (!"".equals(bpm_host_array)) {
String[] bpm_host_arr = bpm_host_array.split(";");
for (int i = 0; i < bpm_host_arr.length; i++) {
bpmHostList.add(bpm_host_arr[i]);
}
}
portalUserAuth = PropBean.getUfPropValue("portal_user_auth");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet();
HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
ServletContext application = request.getSession().getServletContext();
boolean isExcludedPage = false;
String requestURL = request.getRequestURL().toString();
@ -55,212 +57,120 @@ public class PortalLoginBeforeFilter implements Filter {
if (!isExcludedPage) {
//请求地址
String path_lowerCase = getRequestURI.toLowerCase();
if (path_lowerCase.endsWith(".cur") || path_lowerCase.endsWith(".ico") || path_lowerCase.endsWith(".css") || path_lowerCase.endsWith(".htm") || path_lowerCase.endsWith(".png") || path_lowerCase.endsWith(".jpg") || path_lowerCase.endsWith(".gif")) {
if (path_lowerCase.endsWith(".cur") || path_lowerCase.endsWith(".ico") || path_lowerCase.endsWith(".css") || path_lowerCase.endsWith(".js") || path_lowerCase.endsWith(".htm") || path_lowerCase.endsWith(".png") || path_lowerCase.endsWith(".jpg") || path_lowerCase.endsWith(".gif")) {
// 如果发现是css或者js文件直接放行
isExcludedPage = true;
}
}
//bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage);
if (!isExcludedPage) {
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
if (loginuser == null) {
String uid = "";
String cookies = request.getHeader("cookie");
if (StringUtils.isNotEmpty(cookies)) {
String[] cookievals = cookies.split(";");
for (int i = 0; i < cookievals.length; i++) {
String cookval = cookievals[i];
if (!"".equals(cookval) && cookval.contains("=")) {
String key = cookval.substring(0, cookval.indexOf("="));
String value = cookval.substring(cookval.indexOf("=") + 1);
if ("SESSION".equals(key.trim()) || key.contains("SESSION")) {
uid = value;
}
if(isExcludedPage)
{
filterChain.doFilter(request, response);
}else{
String uid = "";
String cookies = request.getHeader("cookie");
if (StringUtils.isNotEmpty(cookies))
{
String[] cookievals = cookies.split(";");
for (int i = 0; i < cookievals.length; i++) {
String cookval = cookievals[i];
if (!"".equals(cookval) && cookval.contains("=")) {
String key = cookval.substring(0, cookval.indexOf("="));
String value = cookval.substring(cookval.indexOf("=") + 1);
if ("SESSION".equals(key.trim()) || key.contains("SESSION")) {
uid = value;
}
}
}
}
//ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996;
// ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca;
// areaId=731; userId=1; orgId=1;
// CLOUD_APP_NAME=dbeptest7_pot-uportal-core;
// CLOUD_APP_ID=44074
if (StringUtils.isNotEmpty(uid)) {
String url = bb.getPropValue("PORTAL_INFO", "portal_user_auth");
//String url = "http://172.16.25.133/portal-web/user/current" ;
//bb.writeLog("url:" + url);
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String, String> headMap = new HashMap<String, String>();
headMap.put("Cookie", "SESSION=" + uid);
String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8");
if (!"".equals(msg)) {
JSONObject jsonObject = JSONObject.parseObject(msg);
if ("1".equals(jsonObject.getString("resultCode"))) {
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
if (!"".equals(staffCode)) {
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
//ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996;
// ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca;
// areaId=731; userId=1; orgId=1;
// CLOUD_APP_NAME=dbeptest7_pot-uportal-core;
// CLOUD_APP_ID=44074
if(StringUtils.isNotEmpty(uid))
{
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
String weaver_uid = String.valueOf(request.getSession(true).getAttribute("weaver_uid"));
String portal_status = String.valueOf(request.getSession(true).getAttribute("portal_status"));
bb.writeLog("weaver_uid:"+weaver_uid);
bb.writeLog("uid:"+uid);
if(StringUtils.isNotEmpty(weaver_uid))
{
if(!uid.equals(weaver_uid))
{
bb.writeLog("weaver_uid <> uid portal_status:"+portal_status);
String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
if (!"".equals(msg))
{
JSONObject jsonObject = JSONObject.parseObject(msg);
if(jsonObject.containsKey("resultCode")){
String resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid);
}
//bb.writeLog("sql:" + sql);
rs.executeQuery(sql, new Object[]{staffCode});
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
Util.setCookie(response, "portalStatus", resultCode, -1);
}
// request.getSession(true).setAttribute("portal_status", resultCode);
}
}
}else{
bb.writeLog("weaver_uid == uid");
// String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
// if (!"".equals(msg))
// {
// JSONObject jsonObject = JSONObject.parseObject(msg);
// if(jsonObject.containsKey("resultCode")){
// String resultCode = jsonObject.getString("resultCode") ;
// request.getSession(true).setAttribute("portal_status", resultCode);
// }
// }
}
}
}else{
//用户session存在判断和接口中的codeshi是否一致
String uid = "";
String cookies = request.getHeader("cookie");
if (StringUtils.isNotEmpty(cookies)) {
String[] cookievals = cookies.split(";");
for (int i = 0; i < cookievals.length; i++) {
String cookval = cookievals[i];
if (!"".equals(cookval) && cookval.contains("=")) {
String key = cookval.substring(0, cookval.indexOf("="));
String value = cookval.substring(cookval.indexOf("=") + 1);
if ("SESSION".equals(key.trim()) || key.contains("SESSION")) {
uid = value;
}
}
}
}
if (StringUtils.isNotEmpty(uid)) {
String url = bb.getPropValue("PORTAL_INFO", "portal_user_auth");
//String url = "http://172.16.25.133/portal-web/user/current" ;
//bb.writeLog("url:" + url);
}else {
bb.writeLog("weaver_uid is null ");
String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
if (!"".equals(msg))
{
JSONObject jsonObject = JSONObject.parseObject(msg);
if(jsonObject.containsKey("resultCode")){
String resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid);
}
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String, String> headMap = new HashMap<String, String>();
headMap.put("Cookie", "SESSION=" + uid);
String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8");
if (!"".equals(msg)) {
JSONObject jsonObject = JSONObject.parseObject(msg);
if ("1".equals(jsonObject.getString("resultCode"))) {
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
String loginid = loginuser.getLoginid();
if (!(loginid.equals(staffCode))) {
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
}
Util.setCookie(response, "portalStatus", resultCode, -1);
rs.executeQuery(sql, new Object[]{staffCode});
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
// request.getSession(true).setAttribute("portal_status", resultCode);
}
}
}
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
// String portalCode = Util.null2String(request.getSession().getAttribute("portal_status"));
// if(StringUtils.isNotEmpty(portalCode)){
// if("0".equals(portalCode)){
// bb.writeLog("portalCode == 0");
// request.getRequestDispatcher("/bpm/spa/custom/static/index.html#/main/cs/app/7177140d879d4c4aa56dc6a3c1b65668_loginOutBom").forward(request,response);
// return;
// }
// }
// bb.writeLog(" portalCode:"+portalCode);
}
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
filterChain.doFilter(request, response);
}
}
}
}
}
}
}
filterChain.doFilter(request, response);
}
@Override

@ -1,6 +1,7 @@
package weaver.interfaces.filter;
import com.alibaba.fastjson.JSONObject;
import com.api.login.util.LoginUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.dubbo.common.utils.StringUtils;
@ -8,6 +9,7 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
@ -25,8 +27,7 @@ public class PortalLoginFilter implements Filter
private List<String> uncheck_sessionurl_custom_list = new ArrayList<String>();
private List<String> bpmHostList = new ArrayList<String>();
private String path = "/bpm" ;
private String portal_homepage = "" ;
private String portal_user_auth = "" ;
private String portalUserAuth = "" ;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
@ -34,8 +35,7 @@ public class PortalLoginFilter implements Filter
this.application = filterConfig.getServletContext();
BaseBean bb = new BaseBean();
portal_homepage = bb.getPropValue("PORTAL_INFO","portal_homepage");
portal_user_auth = bb.getPropValue("PORTAL_INFO","portal_user_auth");
portalUserAuth = PropBean.getUfPropValue("portal_user_auth");
String uncheck_init = bb.getPropValue("weaver_session_filter","uncheckurl");
if(!"".equals(uncheck_init)){
@ -74,7 +74,7 @@ public class PortalLoginFilter implements Filter
}
}
String bpm_host_array = bb.getPropValue("PORTAL_INFO","bpm_host_array");
String bpm_host_array = PropBean.getUfPropValue("bpm_host_array");
if(!"".equals(bpm_host_array))
{
String[] bpm_host_arr = bpm_host_array.split(";");
@ -131,33 +131,39 @@ public class PortalLoginFilter implements Filter
}
}
if(!isExcludedPage)
if(isExcludedPage)
{
//bb.writeLog("getRequestURI:"+getRequestURI+" isExcludedPage:"+isExcludedPage);
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
if (loginuser == null)
filterChain.doFilter(request, response);
}else{
String resultCode = "" ;
String uid = "" ;
String cookies = request.getHeader("cookie");
if(!"".equals(cookies))
{
//bb.writeLog("loginuser is null");
String uid = "" ;
String cookies = request.getHeader("cookie");
if(!"".equals(cookies))
String[] cookievals = cookies.split(";");
for(int i=0;i<cookievals.length;i++)
{
String[] cookievals = cookies.split(";");
for(int i=0;i<cookievals.length;i++)
String cookval = cookievals[i];
if(!"".equals(cookval) && cookval.contains("="))
{
String cookval = cookievals[i];
if(!"".equals(cookval) && cookval.contains("="))
{
String key = cookval.substring(0,cookval.indexOf("="));
String value = cookval.substring(cookval.indexOf("=")+1);
if("SESSION".equals(key.trim()) || key.contains("SESSION")){
uid = value;
}
String key = cookval.substring(0,cookval.indexOf("="));
String value = cookval.substring(cookval.indexOf("=")+1);
if("SESSION".equals(key.trim()) || key.contains("SESSION")){
uid = value;
}
}
}
}
//ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996;
//bb.writeLog("getRequestURI:"+getRequestURI+" isExcludedPage:"+isExcludedPage);
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
if (loginuser == null)
{
//bb.writeLog("loginuser is null");
// ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996;
// ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca;
// areaId=731; userId=1; orgId=1;
// CLOUD_APP_NAME=dbeptest7_pot-uportal-core;
@ -165,16 +171,13 @@ public class PortalLoginFilter implements Filter
if(StringUtils.isNotEmpty(uid))
{
//bb.writeLog("portal_user_auth:"+portal_user_auth);
//String url = "http://172.16.25.133/portal-web/user/current" ;
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String,String> headMap = new HashMap<String,String>();
headMap.put("Cookie","SESSION="+uid);
String msg = HttpRequestUtil.httpGet1(portal_user_auth,headMap,"UTF-8");
String msg = HttpRequestUtil.doGetHttp(portalUserAuth,uid);
if(!"".equals(msg))
{
JSONObject jsonObject = JSONObject.parseObject(msg);
if("1".equals(jsonObject.getString("resultCode")))
resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
@ -236,55 +239,104 @@ public class PortalLoginFilter implements Filter
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
}
}else{
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage);
return;
}
}else{
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage);
return;
}
}else{
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage);
return;
}
}else{
}
}else{
if (StringUtils.isNotEmpty(uid))
{
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
String msg = HttpRequestUtil.doGetHttp(portalUserAuth, uid);
if (!"".equals(msg)) {
JSONObject jsonObject = JSONObject.parseObject(msg);
resultCode = jsonObject.getString("resultCode") ;
if ("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
String loginid = loginuser.getLoginid();
if (!(loginid.equals(staffCode))) {
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
}
rs.executeQuery(sql, new Object[]{staffCode});
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
//bb.writeLog("uid-- is null");
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
response.sendRedirect(portal_homepage);
return;
}
}
}
}
}
}
if("0".equals(resultCode)){
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0.
response.setHeader("Expires", "0");
response.sendRedirect("http://172.16.25.133/portal-web/#");
return;
}else{
filterChain.doFilter(request, response);
}
}
filterChain.doFilter(request, response);
}
@Override

@ -0,0 +1,137 @@
package weaver.interfaces.job;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.*;
public class DeptManagerCronJob extends BaseCronJob {
@Override
public void execute() {
updateDeptManagerData();
}
/***
*
*/
public void updateDeptManagerData(){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String,String> map = null;
try{
String managerPostion = PropBean.getUfPropValue("managerPostion");
if(StringUtils.isNotEmpty(managerPostion)){
managerPostion = "'"+managerPostion.replace(",","','")+"'";
String deptsql = " select id,supdepid,departmentcode from hrmdepartment h where ifnull(canceled,0)=0 " ;
bb.writeLog("deptsql:"+deptsql);
rs.executeQuery(deptsql);
while (rs.next()){
map = new HashMap<String, String>();
String deptid = Util.null2String(rs.getString("id"));
String supdepid = Util.null2String(rs.getString("supdepid"));
String departmentcode = Util.null2String(rs.getString("departmentcode"));
map.put("deptid",deptid);
map.put("supdepid",supdepid);
map.put("departmentcode",departmentcode);
list.add(map);
}
bb.writeLog("list:"+list.size());
for(int i=0;i<list.size();i++)
{
Map<String,String> dataMap = list.get(i);
String deptid = dataMap.get("deptid");
String supdepid = dataMap.get("supdepid");
String departmentcode = dataMap.get("departmentcode");
String depid = supdepid;
if("0".equals(supdepid)){
depid = deptid ;
}
String userids = "" ;
String sql = " with recursive cte as\n" +
" (\n" +
" select d.id,d.supdepid,d.departmentname from hrmdepartment d\n" +
" where d.id = ? \n" +
" union all \n" +
" select a.id,a.SUPDEPID,a.DEPARTMENTNAME from hrmdepartment a\n" +
" inner join cte b on a.SUPDEPID = b.id\n" +
" )\n" +
" select h.id\n" +
" from hrmresource h where h.DEPARTMENTID in(select id from cte )\n" +
" and jobtitle in(select id from hrmjobtitles h2 where h2.jobtitlename in("+managerPostion+"))" ;
bb.writeLog("sql:"+sql);
rs.executeQuery(sql,new Object[]{depid});
while (rs.next()){
String userid = Util.null2String(rs.getString("id"));
userids += StringUtils.isEmpty(userid) ? userid : ","+userid ;
}
bb.writeLog("userids:"+userids);
if(StringUtils.isNotEmpty(userids)){
String departmentdefinedid = "" ;
sql = " select id from hrmdepartmentdefined h where deptid= ?";
rs.executeQuery(sql,new Object[]{deptid});
if (rs.next()){
departmentdefinedid = Util.null2String(rs.getString("id"));
}
bb.writeLog("departmentdefinedid:"+departmentdefinedid);
if(StringUtils.isNotEmpty(departmentdefinedid)){
sql = " update hrmdepartmentdefined set bmfzr = ? where deptid = ?" ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{userids,deptid});
}else{
sql = " insert into hrmdepartmentdefined(deptid,bmfzr) values(?,?) " ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{deptid,userids});
}
String uuid = "" ;
sql = " select uuid from matrixtable_2 m where m.id=? ";
bb.writeLog("sql:"+sql);
rs.executeQuery(sql,new Object[]{deptid});
if(rs.next()){
uuid = Util.null2String(rs.getString("uuid"));
}
if(StringUtils.isNotEmpty(uuid)){
sql = " update matrixtable_2 set bmfzr = ? where id = ?" ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{userids,deptid});
}else{
String randomUUID = UUID.randomUUID().toString();
int dataorder = 0;
sql = " select (max(CAST(DATAORDER as SIGNED INTEGER))+1) as cou from matrixtable_2 " ;
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if(rs.next()){
dataorder = Util.getIntValue(Util.null2String(rs.getString("cou"),"0"));
}
bb.writeLog("dataorder:"+dataorder);
sql = " insert into matrixtable_2(uuid,dataorder,id,matrix_code,bmfzr) values(?,?,?,?) " ;
bb.writeLog("dataorder:"+dataorder);
rs.executeUpdate(sql,new Object[]{randomUUID,dataorder,deptid,departmentcode,userids});
}
}
}
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
}

@ -11,6 +11,7 @@ import weaver.docs.docs.ImageFileIdUpdate;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import java.io.*;
@ -36,11 +37,11 @@ public class ESiginsCronJob extends BaseCronJob {
BaseBean bb = new BaseBean();
// String esiginsUrl = "http://172.16.25.133/portal-web/v1/esign/"+sysUserCode+"/esigns" ;
String esiginsUrl = bb.getPropValue("PORTAL_INFO","esiginsUrl");
String ecology_app_root = bb.getPropValue("PORTAL_INFO","ecology_app_root");
String esiginsUrl = PropBean.getUfPropValue("esiginsUrl");
String ecology_app_root = PropBean.getUfPropValue("ecology_app_root");
String username = bb.getPropValue("PORTAL_INFO","username");
String passwd = bb.getPropValue("PORTAL_INFO","passwd");
String username = PropBean.getUfPropValue("username");
String passwd = PropBean.getUfPropValue("passwd");
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String,String> map = null;

@ -10,6 +10,7 @@ import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.common.consumer.ConsumeFromWhere;
import com.alibaba.rocketmq.common.protocol.heartbeat.MessageModel;
import weaver.general.BaseBean;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@ -40,22 +41,22 @@ public class RocketmqServlet extends HttpServlet {
// consumer.subscribe("dataSync_topic_nj", "BPM");
// consumer.setInstanceName("dataSync_topic_nj");
String consumerGroup = bb.getPropValue("PORTAL_INFO","consumerGroup");
String consumerGroup = PropBean.getUfPropValue("consumerGroup");
bb.writeLog("consumerGroup:"+consumerGroup);
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerGroup);
String namesrvAddr = bb.getPropValue("PORTAL_INFO","namesrvAddr");
String namesrvAddr = PropBean.getUfPropValue("namesrvAddr");
bb.writeLog("namesrvAddr:"+namesrvAddr);
consumer.setNamesrvAddr(namesrvAddr);
String instanceName = bb.getPropValue("PORTAL_INFO","instanceName");
String instanceName = PropBean.getUfPropValue("instanceName");
bb.writeLog("instanceName:"+instanceName);
consumer.setInstanceName(instanceName);
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
//consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);
String topic = bb.getPropValue("PORTAL_INFO","topic");
String subExpression = bb.getPropValue("PORTAL_INFO","subExpression");
String topic = PropBean.getUfPropValue("topic");
String subExpression = PropBean.getUfPropValue("subExpression");
bb.writeLog("topic:"+topic);
bb.writeLog("subExpression:"+subExpression);

@ -11,6 +11,7 @@ import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.company.DepartmentComInfo;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.comInfo.PropBean;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -101,7 +102,7 @@ public class RocketmqUtil {
String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间
String jobTitleId = "" ;
String defaultJobCode = bb.getPropValue("PORTAL_INFO","defaultJobCode");
String defaultJobCode = PropBean.getUfPropValue("defaultJobCode");
if(StringUtils.isNotEmpty(defaultJobCode)){
String sql = " select id from hrmjobtitles where jobtitlecode = ?" ;
rs.executeQuery(sql,new Object[]{defaultJobCode});
@ -1078,7 +1079,7 @@ public class RocketmqUtil {
bb.writeLog("currentDate:"+currentDate);
String jobTitleId = "" ;
String defaultJobCode = bb.getPropValue("PORTAL_INFO","defaultJobCode");
String defaultJobCode = PropBean.getUfPropValue("defaultJobCode");
if(StringUtils.isNotEmpty(defaultJobCode)){
String sql = " select id from hrmjobtitles where jobtitlecode = ?" ;
rs.executeQuery(sql,new Object[]{defaultJobCode});

Loading…
Cancel
Save