package com.infosec.resource.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.infosec.sms.bean.PropertiesBean;
public class ResSynchUserBusinessPermissToSys extends IResouceImplClassBaseInterface {
@Override
public List<PropertiesBean> getProperties() {
List<PropertiesBean> properties = new ArrayList<PropertiesBean>();
properties.add(new PropertiesBean("datebaseName", "数据库名称", "mysql","isNull", true));
properties.add(new PropertiesBean("datebaseUser", "用户名", "user", "isNull", true));
properties.add(new PropertiesBean("datebasePassword", "密码", "123456", "isNull", true));
return properties;
}
@Override
public int asignUser2Roles(String userid, String[] roleids) {
// TODO Auto-generated method stub
return 0;
}
}
package com.infosec.resource.service;
import java.util.List;
import com.infosec.sms.bean.PropertiesBean;
/**
*
* <p>
* 业务权限数据同步实现类父类
* </p>
*
* <p>
* 版权所有:北京信安世纪科技股份有限公司(c) 2020
* </p>
*
* @author: jlcui
* @date: 2021年8月23日下午2:12:41
*
*/
public interface IResouceImplClassBaseInterface {
/**
* 获取所有需要配置的属性.
*
* @return
*/
public List<PropertiesBean> getProperties();
/**
*
* 用户业务权限同步到业务系统
* @param userid
* @param roleids
* @return
* @return int
* @author jlcui
* @date 2021年8月23日下午2:25:00
*/
public int asignUser2Roles(String userid,String[] roleids);
}
/**
*
* 加载用户的权限信息推送到业务系统实现类
*
* @param impleClassName
* @param request
* @return
* @return JsonResult
* @author jlcui
* @date 2021年8月23日下午2:42:03
*/
@GetMapping("/get/engine/loadtoresourceclass")
public JsonResult load(
@Length(min = 1, max = 100, message = ValidatedMsgConst.LENGTH_LIMIT_HUNDRED_MSG) @ApiParam(value = "实现类,"
+ ValidatedApiParamConst.LENGTH_LIMIT_HUNDRED_MSG, required = true) @RequestParam("impleClassName") String impleClassName,
HttpServletRequest request) {
JsonResult jsonResult = JsonResultUtils.getFailObj();
// 进行输入检测.
String error = this.saveValid(impleClassName);
if (error != null && !"".equals(error)) {
jsonResult.setMsg(error);
return jsonResult;
}
try {
IResouceImplClassBaseInterface api = (IResouceImplClassBaseInterface) Class.forName(impleClassName)
.newInstance();
jsonResult.setResult(api.getProperties());
jsonResult.setCode(JsonErrotCode.SUCCESS_CODE);
return jsonResult;
} catch (Exception e) {
e.printStackTrace();
}
return jsonResult;
}
//校验实现类是否存在
private String saveValid(String implClass) {
// 加载类.
Object object = null;
String info = "";
try {
object = Class.forName(implClass).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSINITIALIZATIONFAILED);
} catch (IllegalAccessException e) {
e.printStackTrace();
info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSNOTACCESSIBLE);
} catch (ClassNotFoundException e) {
e.printStackTrace();
info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSNOWASFOUND);
} catch (Exception e) {
e.printStackTrace();
info = localeMessageSourceService.getMessage(ResourceInterKeyConst.EXTAUTH_INSTANT_LOAD_FAIL);
}
if (!"".equals(info)) {
return info;
}
if (!(object instanceof IResouceImplClassBaseInterface)) {
info = ResourceInterKeyConst.SYNCONFIGFAILEDTOLOADNEED;
return info;
}
return "";
}