第三方调用匿名请求获取组织任务

设置为匿名的请求在访问的时候不需要登录就可以,到要获取任务就需要登录,因此可以在匿名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获取需要的任务数据

results matching ""

    No results matching ""

    results matching ""

      No results matching ""