|
|
|
@ -16,15 +16,14 @@ import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
{
|
|
|
|
|
public class PortalLoginBeforeFilter implements Filter {
|
|
|
|
|
private List<String> bpmHostList = new ArrayList<String>();
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void init(FilterConfig filterConfig) throws ServletException {
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
String bpm_host_array = bb.getPropValue("PORTAL_INFO", "bpm_host_array");
|
|
|
|
|
if(!"".equals(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]);
|
|
|
|
@ -33,8 +32,7 @@ public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException
|
|
|
|
|
{
|
|
|
|
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
|
@ -65,21 +63,16 @@ public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
|
|
|
|
|
bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage);
|
|
|
|
|
|
|
|
|
|
if(!isExcludedPage)
|
|
|
|
|
{
|
|
|
|
|
if (!isExcludedPage) {
|
|
|
|
|
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
|
|
|
|
|
if (loginuser == null)
|
|
|
|
|
{
|
|
|
|
|
if (loginuser == null) {
|
|
|
|
|
String uid = "";
|
|
|
|
|
String cookies = request.getHeader("cookie");
|
|
|
|
|
if(StringUtils.isNotEmpty(cookies))
|
|
|
|
|
{
|
|
|
|
|
if (StringUtils.isNotEmpty(cookies)) {
|
|
|
|
|
String[] cookievals = cookies.split(";");
|
|
|
|
|
for(int i=0;i<cookievals.length;i++)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < cookievals.length; i++) {
|
|
|
|
|
String cookval = cookievals[i];
|
|
|
|
|
if(!"".equals(cookval) && cookval.contains("="))
|
|
|
|
|
{
|
|
|
|
|
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")) {
|
|
|
|
@ -95,8 +88,7 @@ public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
// CLOUD_APP_NAME=dbeptest7_pot-uportal-core;
|
|
|
|
|
// CLOUD_APP_ID=44074
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotEmpty(uid))
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
@ -105,11 +97,9 @@ public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
Map<String, String> headMap = new HashMap<String, String>();
|
|
|
|
|
headMap.put("Cookie", "SESSION=" + uid);
|
|
|
|
|
String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8");
|
|
|
|
|
if(!"".equals(msg))
|
|
|
|
|
{
|
|
|
|
|
if (!"".equals(msg)) {
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(msg);
|
|
|
|
|
if("1".equals(jsonObject.getString("resultCode")))
|
|
|
|
|
{
|
|
|
|
|
if ("1".equals(jsonObject.getString("resultCode"))) {
|
|
|
|
|
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
|
|
|
|
|
String staffCode = resultObject.getString("staffCode");
|
|
|
|
|
if (!"".equals(staffCode)) {
|
|
|
|
@ -122,6 +112,100 @@ public class PortalLoginBeforeFilter implements Filter
|
|
|
|
|
sql = " select * from HrmResource where loginid =? ";
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}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);
|
|
|
|
|
|
|
|
|
|
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 =? ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.executeQuery(sql, new Object[]{staffCode});
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
user_new = new User();
|
|
|
|
|