package com.infosec.resource.service.impl; import java.util.ArrayList; import java.util.List; import com.infosec.sms.bean.PropertiesBean; public class ResSynchUserBusinessPermissToSys implements 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 ""; }