我正在开发使用另一个服务的Web服务。要使用此其他服务进行身份验证,我必须使用SAML V2协议。如何在Java中以编程方式使用此服务?

我的代码没有SSO:

HttpClient client = builder.build();

URIBuilder uriBuilder = new URIBuilder();
uriBuilder.setScheme(test.getScheme());
uriBuilder.setHost(test.getHost());
uriBuilder.setPort(test.getPort());
uriBuilder.setPath("Path");
uriBuilder.addParameter("id","theID");
uriBuilder.addParameter("param", "param");
try {
  HttpUriRequest request = new HttpGet(uriBuilder.build());
  HttpResponse response = client.execute(request);
  return EntityUtils.toString(response.getEntity());
} catch (IOException | URISyntaxException e) {
  e.printStackTrace();
}

最佳答案

您需要构建一个满足目标服务要求的SAML响应,并将其包含在调用中。最好的选择是OpenSAML或在其之上构建的另一个“产品”,例如CXF。有关OpenSAML示例,请参见How to create a valid SAML 2.0 Assertion with OpenSAML library in Java。 CXF附带了很好的文档和示例。

关于java - 使用Java中的SSO认证来使用服务吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57924240/

10-12 22:24