JBPM控制台远程认证通过java

我已经在我的localhost上部署了jbpm-cosole,并且我创建了一个java应用程序来为进程事务进行REST调用。 所以,我的问题是。

  1. 由于jbpm-console使用spring-security,如何向JBPM发送身份validation请求?

  2. 成功validation后,我想将身份validation令牌存储为java对象,以便在不登录的情况下进行进一步的事务

还是有其他方法可以告诉我。

这是一个返回用户任务列表的示例代码。 您只需在请求标头中设置身份validation详细信息,如此代码所示。 这适用于jbpm-6.1.0.Final

import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class JBPMRest { public static void getTaskSummaryList() throws Exception { String status = "Reserved"; String actor = "krisv"; String addr = "http://localhost:8080/jbpm-console/rest/task/query?status=" + status + "&potentialOwner=" + actor; try { HttpClient client = HttpClientBuilder.create().build(); HttpGet get = new HttpGet(addr); String authData = "krisv" + ":" + "krisv"; String encoded = new sun.misc.BASE64Encoder().encode(authData.getBytes()); get.setHeader("Content-Type", "application/json"); get.setHeader("Authorization", "Basic " + encoded); get.setHeader("ACCEPT", "application/xml"); HttpResponse cgResponse = client.execute(get); String content = EntityUtils.toString(cgResponse.getEntity()); System.out.println(content); } catch (Exception e) { throw new Exception("Error consuming service.", e); } } } 

您可以在REST调用的标头中发送基本身份validation信息(用户名+密码)。 例如,远程Java客户端实现也是这样做的。 如果使用远程Java客户端,则可以为后续调用重用相同的引擎。