第三方调用匿名请求获取组织任务
设置为匿名的请求在访问的时候不需要登录就可以,到要获取任务就需要登录,因此可以在匿名API的实现中做登录
登录后获取到user_session放到Cookie中在调用获取任务的API时作为header传递
登录是用的credentialToken,credentialToken的获取可以参考[第三方使用token打开指定的页面]
获取任务调用的是工作流提供的/wf/biz/task/queryByOrg这个API,API的具体说明可以参考“流程专题——流程API——任务相关接口(新)”中的说明
匿名请求的具体实现如下:
public String thirdGetTask() throws Exception {
//请添加你的业务代码
String credentialToken ="wqqbpGEz_55";
String token = ServiceUtil.post(SpringWebUtil.getRequest(), "entry", "/uaa/sso/token?username=t13001010001&credentialToken=" + credentialToken, null,String.class);
String session = AuthUtil.tokenLogin(ServiceUtil.getServiceUrl("entry"), token);//调用登录返回的user_session的值
String user_session = "";
if (StringUtils.isNotEmpty(session)) {
user_session = "user_session=" + session;
} else {
throw new BaseRuntimeException("001", HttpStatus.UNAUTHORIZED.value(), "申请外部用户账号 登录失败", null);
}
HttpServletRequest request = SpringWebUtil.getRequest();
Map<String, String> headers = ServiceUtil.getExtHeaders(request);
headers.put("Cookie",user_session);
String gatewayName = RequestUtil.getServiceGatewayHostname();
String serviceUrl = "http://"+RequestUtil.getServiceGatewayHostname()+"/wf/biz/task/queryByOrg";//http请求的具体服务的url
//API的相关参数说明
/**
参数名称 必选 类型 描述
filter 否 String 过滤条件,例如 SA_Task.sName='张三' AND SA_Task.sProcess='xx'
offset 否 Int 偏移量,默认值是0
limit 否 Int 分页大小,默认值20,-1表示所有数据
distinct 否 Boolean 去除重复行,默认值false
columns 否 String 返回列,默认所有列
orderBy 否 String 排序方式,例如 sName DESC,sProcess ASC
variabels 否 JSONObject 变量,例如 {"justep.shard": "histroy"}
status 否 String 任务状态,取值范围["waiting"、 "finished"、 "submited"],默认值"waiting";允许多值,使用“,”分隔
org 否 String 组织范围,可以是组织的ID或FID,默认是当前人;允许多值,使用“,”分隔
*/
//通过参数设置查当前人最近20条待办任务
Map<String, String> params = new HashMap();
params.put("distinct", "true");
params.put("limit","20");//
params.put("orderBy","sCreateTime DESC");
params.put("status","waiting");
JSONArray array = ServiceUtil.get(serviceUrl, params, headers,JSONArray.class);//返回的是json数组
return array.toString();
}
请求所在的应用发布注册后到“应用资源管理中”把请求分给匿名角色
如请求的访问路径是/main/fuwu/thirdgettask,就可以直接用:门户域名/应用服务名/main/fuwu/thirdgettask获取需要的任务数据