Commit 54c1c5fc authored by gaoyingwei's avatar gaoyingwei

update:新增一个系统到OA

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