我正在开发使用另一个服务的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/