All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.ibizsys.model.engine.cloud.service.CloudPSSubSysServiceAPIEngineBase Maven / Gradle / Ivy

The newest version!
package net.ibizsys.model.engine.cloud.service;

import java.io.IOException;

import org.springframework.util.StringUtils;

import com.fasterxml.jackson.databind.node.ObjectNode;

import net.ibizsys.model.IPSModelObjectRuntime;
import net.ibizsys.model.engine.PSModelEngineException;
import net.ibizsys.model.engine.cloud.sysutil.ICloudClientPSSysUtilEngine;
import net.ibizsys.model.engine.service.PSSubSysServiceAPIEngine;
import net.ibizsys.model.engine.service.PSSubSysServiceAPIEngineBase;
import net.ibizsys.model.engine.util.JsonUtils;
import net.ibizsys.model.service.IPSSubSysServiceAPI;

public abstract class CloudPSSubSysServiceAPIEngineBase extends PSSubSysServiceAPIEngineBase implements ICloudPSSubSysServiceAPIEngine {

	private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(CloudPSSubSysServiceAPIEngineBase.class);

	private IPSSubSysServiceAPI defaultPSSubSysServiceAPI = null;
	
//	private ISysUAAUtilRuntime iSysUAAUtilRuntime = null;

	@Override
	protected void onInit() throws Exception {

		super.onInit();
//		
//		if(this.getSysUAAUtilRuntime(true)==null){
//			this.prepareSysUAAUtilRuntime(!isPrepareSysUAAUtilRuntime());
//		}
	}
	
//	protected ISysUAAUtilRuntime getSysUAAUtilRuntime() {
//		return this.getSysUAAUtilRuntime(false);
//	}
//	
//	protected ISysUAAUtilRuntime getSysUAAUtilRuntime(boolean bTryMode) {
//		if(this.iSysUAAUtilRuntime != null || bTryMode) {
//			return this.iSysUAAUtilRuntime;
//		}
//		throw new SystemRuntimeException(this.getSystemRuntimeBase(), this, "未指定系统UAA功能组件");
//	}
//	
//	protected void setSysUAAUtilRuntime(ISysUAAUtilRuntime iSysUAAUtilRuntime) {
//		this.iSysUAAUtilRuntime = iSysUAAUtilRuntime;
//	}
//	
//	protected void prepareSysUAAUtilRuntime(boolean bTryMode) throws Exception {
//		this.setSysUAAUtilRuntime(this.getSystemRuntime().getSysUtilRuntime(ISysUAAUtilRuntime.class, bTryMode));
//	}
//	
//	protected boolean isPrepareSysUAAUtilRuntime() {
//		return true;
//	}
	
//	@Override
//	protected ISubSysServiceAPIDERuntime createSubSysServiceAPIDERuntime(IPSSubSysServiceAPIDE iPSSubSysServiceAPIDE) throws Exception {
//		if(iPSSubSysServiceAPIDE.getPSSysSFPlugin() == null) {
//			if(StringUtils.hasLength(iPSSubSysServiceAPIDE.getName()) && iPSSubSysServiceAPIDE.getName().indexOf("_CLOUD_") == 0) {
//				if(CLOUDSERVICE_AI.equalsIgnoreCase(iPSSubSysServiceAPIDE.getName())) {
//					return new CloudServiceAIClientRuntime();
//				}
//			}
//		}
//		return super.createSubSysServiceAPIDERuntime(iPSSubSysServiceAPIDE);
//	}
	
	

	protected IPSSubSysServiceAPI getDefaultPSSubSysServiceAPI() {
		if (this.defaultPSSubSysServiceAPI == null) {
			String strFullModelPath = "/net/ibizsys/model/engine/cloud/sysmodel/PSSUBSYSSERVICEAPIS/CloudClient.json";
			ObjectNode objectNode;
			try {
				objectNode = (ObjectNode) JsonUtils.getMapper().readTree(this.getClass().getResourceAsStream(strFullModelPath));
				this.defaultPSSubSysServiceAPI = this.getPSModelEngineHolder().getPSSystemService().createAndInitPSModelObject((IPSModelObjectRuntime) this.getPSModelEngineHolder().getPSSystemService().getPSSystem(), IPSSubSysServiceAPI.class, objectNode);
			} catch (IOException ex) {
				throw new PSModelEngineException(this, String.format("获取默认外部服务接口模型发生异常,%1$s", ex.getMessage()), ex);
			}
		}
		return this.defaultPSSubSysServiceAPI;
	}

//	@Override
//	public Map getHeaders() {
//		IEmployeeContext employeeContext = EmployeeContext.getCurrent();
//		if (employeeContext == null) {
//			return super.getHeaders();
//		}
//		
//		Map map = new HashMap();
//		
//		IAuthenticationUser authenticationUser = AuthenticationUser.getCurrent();
//		if(authenticationUser != null) {
//			//认证用户非API用户,使用当前用户Token
//			if(authenticationUser.getApiuser() == 0
//					&& StringUtils.hasLength(authenticationUser.getToken())
//					&& StringUtils.hasLength(authenticationUser.getUserid())
//					&& StringUtils.hasLength(employeeContext.getUaauserid())
//					&& authenticationUser.getUserid().equals(employeeContext.getUaauserid())) {
//				String strTokenHeader = this.getSysUAAUtilRuntime().getTokenHeader();
//				if(StringUtils.hasLength(strTokenHeader)) {
//					String strTokenPrefix = this.getSysUAAUtilRuntime().getTokenPrefix();
//					if(StringUtils.hasLength(strTokenPrefix)) {
//						map.put(strTokenHeader, String.format("%1$s%2$s", strTokenPrefix, authenticationUser.getToken()));
//					}
//					else {
//						map.put(strTokenHeader,  authenticationUser.getToken());
//					}
//					map.put(ISysUAAUtilRuntime.HEADER_SYSTEMID, employeeContext.getSystemid());
//					if(StringUtils.hasLength(employeeContext.getOrgid())) {
//						map.put(ISysUAAUtilRuntime.HEADER_ORGID, employeeContext.getOrgid());
//					}
//					return map;
//				}
//			}
//		}
//		
//		// 补充用户上下文
//		Map globalHeader = super.getHeaders();
//		if (globalHeader != null) {
//			map.putAll(globalHeader);
//		}
//
//		map.put(ISysUAAUtilRuntime.HEADER_DCID, employeeContext.getTenant());
//		map.put(ISysUAAUtilRuntime.HEADER_DCSYSTEMID, employeeContext.getDcsystemid());
//		map.put(ISysUAAUtilRuntime.HEADER_SYSTEMID, employeeContext.getSystemid());
//		if(StringUtils.hasLength(employeeContext.getOrgid())) {
//			map.put(ISysUAAUtilRuntime.HEADER_ORGID, employeeContext.getOrgid());
//		}
//		
//		map.put(ISysUAAUtilRuntime.HEADER_USERID, employeeContext.getUserid());
//		if(StringUtils.hasLength(employeeContext.getUsername())) {
//			try {
//				map.put(ISysUAAUtilRuntime.HEADER_USERNAME, URLEncoder.encode(employeeContext.getUsername(), "UTF-8"));
//			} catch (Exception ex) {
//				log.error(ex);
//				map.put(ISysUAAUtilRuntime.HEADER_USERNAME, employeeContext.getUsername());
//			}
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getUsercode())) {
//			map.put(ISysUAAUtilRuntime.HEADER_USERCODE, employeeContext.getUsercode());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getOrgcode())) {
//			map.put(ISysUAAUtilRuntime.HEADER_ORGCODE, employeeContext.getOrgcode());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getDeptid())) {
//			map.put(ISysUAAUtilRuntime.HEADER_DEPTID, employeeContext.getDeptid());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getDeptcode())) {
//			map.put(ISysUAAUtilRuntime.HEADER_DEPTCODE, employeeContext.getDeptcode());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getPorg())) {
//			map.put(ISysUAAUtilRuntime.HEADER_PORGIDS, employeeContext.getPorg());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getSorg())) {
//			map.put(ISysUAAUtilRuntime.HEADER_SORGIDS, employeeContext.getSorg());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getPdept())) {
//			map.put(ISysUAAUtilRuntime.HEADER_PDEPTIDS, employeeContext.getPdept());
//		}
//		
//		if(StringUtils.hasLength(employeeContext.getSdept())) {
//			map.put(ISysUAAUtilRuntime.HEADER_SDEPTIDS, employeeContext.getSdept());
//		}
//		
//		return map;
//	}

	@Override
	protected String getMethodScriptCode() {
		String strMethodScriptCode = super.getMethodScriptCode();
		if (StringUtils.hasLength(strMethodScriptCode)) {
			return strMethodScriptCode;
		}
		return this.getDefaultPSSubSysServiceAPI().getMethodScriptCode();
	}

	@Override
	protected String getAuthScriptCode() {
		String strAuthScriptCode = super.getAuthScriptCode();
		if (StringUtils.hasLength(strAuthScriptCode)) {
			return strAuthScriptCode;
		}
		
		//使用认知模式
		return this.getDefaultPSSubSysServiceAPI().getAuthScriptCode();
	}

	@Override
	public String getAccessTokenUrl() {
		String strAccessTokenUrl = super.getAccessTokenUrl();
		if (StringUtils.hasLength(strAccessTokenUrl)) {
			return strAccessTokenUrl;
		}
		return this.getPSModelEngineHolder().getParam(ICloudClientPSSysUtilEngine.CLOUDCLIENTUTIL_CONFIGFOLDER + ".accesstokenurl", null);
	}

	@Override
	public String getClientId() {
		String strClientId = super.getClientId();
		if (StringUtils.hasLength(strClientId)) {
			return strClientId;
		}

		// 如外部已经定义了认证路径,则以外部配置为主
		String strAccessTokenUrl = super.getAccessTokenUrl();
		if (StringUtils.hasLength(strAccessTokenUrl)) {
			return strClientId;
		}

		return this.getPSModelEngineHolder().getParam(ICloudClientPSSysUtilEngine.CLOUDCLIENTUTIL_CONFIGFOLDER + ".clientid", null);
	}

	@Override
	public String getClientSecret() {
		String strClientSecret = super.getClientSecret();
		if (StringUtils.hasLength(strClientSecret)) {
			return strClientSecret;
		}

		// 如外部已经定义了认证路径,则以外部配置为主
		String strAccessTokenUrl = super.getAccessTokenUrl();
		if (StringUtils.hasLength(strAccessTokenUrl)) {
			return strClientSecret;
		}

		return this.getPSModelEngineHolder().getParam(ICloudClientPSSysUtilEngine.CLOUDCLIENTUTIL_CONFIGFOLDER + ".clientsecret", null);
	}
	
	
	@Override
	protected long getRenewTokenInterval() {
		return 600000l;
	}
	
	
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy