Commit 54c1c5fc authored by gaoyingwei's avatar gaoyingwei

update:新增一个系统到OA

parent 6cd9d9b6
...@@ -3970,128 +3970,148 @@ public class CollaborationController extends BaseController { ...@@ -3970,128 +3970,148 @@ public class CollaborationController extends BaseController {
return mav; return mav;
} }
public ModelAndView index(HttpServletRequest request, public ModelAndView index(HttpServletRequest request,
HttpServletResponse response) throws Exception { HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView("apps/collaboration/index"); ModelAndView modelAndView = new ModelAndView("apps/collaboration/index");
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
String decodeRs = null ; String decodeRs = null ;
String code = request.getParameter("code"); String code = request.getParameter("code");
modelAndView.addObject("code", code); modelAndView.addObject("code", code);
String filePath = SystemEnvironment.getApplicationFolder() + File.separator + "fkmap" + File.separator + "url.properties" ; String filePath = SystemEnvironment.getApplicationFolder() + File.separator + "fkmap" + File.separator + "url.properties" ;
InputStream in = new BufferedInputStream(new FileInputStream(filePath)); InputStream in = new BufferedInputStream(new FileInputStream(filePath));
Properties p = new Properties(); Properties p = new Properties();
p.load(in); p.load(in);
//oa的统一认证编码 //oa的统一认证编码
String oaAppCode = p.getProperty("oaAppCode"); String oaAppCode = p.getProperty("oaAppCode");
//门户的统一认证编码 //门户的统一认证编码
String menghuAppCode = p.getProperty("menghuAppCode"); String menghuAppCode = p.getProperty("menghuAppCode");
//erp的统一认证编码 //erp的统一认证编码
String erpAppCode = p.getProperty("erpAppCode"); String erpAppCode = p.getProperty("erpAppCode");
//数字文档的统一认证编码 //数字文档的统一认证编码
String docAppCode = p.getProperty("docAppCode"); String docAppCode = p.getProperty("docAppCode");
//数字文档的统一认证编码
//获取权限url String edmsAppCode = p.getProperty("edmsAppCode");
String getQXUrl = p.getProperty("getQXUrl");
//获取权限url
String getQXUrl = p.getProperty("getQXUrl");
// String userAuthorizedApps = ""; // String userAuthorizedApps = "";
User user = AppContext.getCurrentUser(); User user = AppContext.getCurrentUser();
//用户登录后的权限 //用户登录后的权限
String quanXian = getQuanXian(user.getLoginName(), getQXUrl); LOG.info("userName:"+user.getLoginName()+" /-------" + getQXUrl);
//获取后判断是否成功 String quanXian = getQuanXian(user.getLoginName(), getQXUrl);
if (StringUtils.isBlank(quanXian)) { //获取后判断是否成功
LOG.error("获取认证权限失败"); if (StringUtils.isBlank(quanXian)) {
return modelAndView; LOG.error("获取认证权限失败");
} return modelAndView;
//用户截取权限 }
String[] split = quanXian.split("\\|"); //用户截取权限
List<String> list = new ArrayList(); String[] split = quanXian.split("\\|");
//遍历截取#号前面的有用信息 List<String> list = new ArrayList();
for (String s : split) { //遍历截取#号前面的有用信息
int end = s.indexOf("#"); for (String s : split) {
String substring = s.substring(0, end); int end = s.indexOf("#");
list.add(substring); String substring = s.substring(0, end);
} list.add(substring);
boolean isErp = false; }
boolean isDoc = false; boolean isErp = false;
if (code.equals("erp")) { boolean isDoc = false;
for (String s : list) { boolean isEdms = false;
if (erpAppCode.equals(s)) { if (code.equals("erp")) {
isErp = true; for (String s : list) {
break; if (erpAppCode.equals(s)) {
} isErp = true;
} break;
if (!isErp) { }
LOG.info("该用户没有印刷管理权限!"); }
return modelAndView; if (!isErp) {
} LOG.info("该用户没有印刷管理权限!");
}else if (code.equals("doc")){ return modelAndView;
for (String s : list) { }
if (docAppCode.equals(s)) { }else if (code.equals("doc")){
isDoc = true; for (String s : list) {
break; if (docAppCode.equals(s)) {
} isDoc = true;
} break;
if (!isDoc) { }
LOG.info("该用户没有印刷管理权限!"); }
return modelAndView; if (!isDoc) {
} LOG.info("该用户没有数字文档权限!");
} return modelAndView;
String getTicketUrl = p.getProperty("getTicketUrl"); }
String map = ""; }else if (code.equals("edms")){
LOG.info("当前登录人:"+user.getLoginName()); for (String s : list) {
if (code.equals("erp")) { if (edmsAppCode.equals(s)) {
//如果存在erp权限,则获取token isEdms = true;
map = getTicket(getTicketUrl, erpAppCode, user.getLoginName()); break;
}else if (code.equals("doc")){ }
//如果存在doc权限,则获取token }
map = getTicket(getTicketUrl,docAppCode,user.getLoginName()); if (!isEdms) {
} LOG.info("该用户没有文档管理权限!");
if(StringUtils.isNotBlank(map)){ return modelAndView;
decodeRs = URLDecoder.decode(map, "UTF-8"); }
jsonObject = JSONObject.fromObject(decodeRs.replace("\r\n","")); }
} String getTicketUrl = p.getProperty("getTicketUrl");
String token = ""; String map = "";
if(jsonObject.get("status").equals("0")){ LOG.info("当前登录人:"+user.getLoginName());
token = (String) jsonObject.get("token"); if (code.equals("erp")) {
LOG.info("token:"+token); //如果存在erp权限,则获取token
}else { map = getTicket(getTicketUrl, erpAppCode, user.getLoginName());
LOG.error(jsonObject.get("errorMsg")); }else if (code.equals("doc")){
return modelAndView; //如果存在doc权限,则获取token
} map = getTicket(getTicketUrl,docAppCode,user.getLoginName());
}else if (code.equals("edms")){
//如果存在doc权限,则获取token
map = getTicket(getTicketUrl,edmsAppCode,user.getLoginName());
}
if(StringUtils.isNotBlank(map)){
decodeRs = URLDecoder.decode(map, "UTF-8");
jsonObject = JSONObject.fromObject(decodeRs.replace("\r\n",""));
}
String token = "";
if(jsonObject.get("status").equals("0")){
token = (String) jsonObject.get("token");
LOG.info("token:"+token);
}else {
LOG.error(jsonObject.get("errorMsg"));
return modelAndView;
}
// String token = (String) map.get("token"); // String token = (String) map.get("token");
modelAndView.addObject("token", token); modelAndView.addObject("token", token);
return modelAndView; return modelAndView;
} }
//获取用户登录后的权限 //获取用户登录后的权限
private String getQuanXian(String userName, String getQuanXianUrl) throws UnsupportedEncodingException { private String getQuanXian(String userName, String getQuanXianUrl) throws UnsupportedEncodingException {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
String decodeRs = null ; String decodeRs = null ;
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("loginName",userName); map.put("loginName",userName);
//发送请求 //发送请求
getQuanXianUrl = getQuanXianUrl+"?loginName={loginName}"; getQuanXianUrl = getQuanXianUrl+"?loginName={loginName}";
RestTemplate rest = new RestTemplate(); RestTemplate rest = new RestTemplate();
List<HttpMessageConverter<?>> list = rest.getMessageConverters(); List<HttpMessageConverter<?>> list = rest.getMessageConverters();
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
HttpMessageConverter<?> httpMessageConverter = list.get(i); HttpMessageConverter<?> httpMessageConverter = list.get(i);
if (httpMessageConverter.getClass().equals(StringHttpMessageConverter.class)) { if (httpMessageConverter.getClass().equals(StringHttpMessageConverter.class)) {
list.set(i, new StringHttpMessageConverter(Charset.forName("utf-8"))); list.set(i, new StringHttpMessageConverter(Charset.forName("utf-8")));
} }
} }
String respnose = rest.getForObject(getQuanXianUrl, String.class,map); LOG.info("getQuanXianUrl:"+getQuanXianUrl+" /-------" );
String code = ""; String respnose = rest.getForObject(getQuanXianUrl, String.class,map);
if(StringUtils.isNotBlank(respnose)){ String code = "";
decodeRs = URLDecoder.decode(respnose, "UTF-8"); if(StringUtils.isNotBlank(respnose)){
jsonObject = JSONObject.fromObject(decodeRs.replace("\r\n","")); decodeRs = URLDecoder.decode(respnose, "UTF-8");
} jsonObject = JSONObject.fromObject(decodeRs.replace("\r\n",""));
if(jsonObject.get("status").equals("0")){ }
code = (String) jsonObject.get("userAuthorizedApps"); if(jsonObject.get("status").equals("0")){
LOG.info("userAuthorizedApps:"+code); code = (String) jsonObject.get("userAuthorizedApps");
}else { LOG.info("userAuthorizedApps:"+code);
LOG.error(jsonObject.get("errorMsg")); }else {
} LOG.error(jsonObject.get("errorMsg"));
return code; }
} return code;
}
//获取token //获取token
private String getTicket(String url, String appCode,String loginName) { private String getTicket(String url, String appCode,String loginName) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment