我正在编写一个使用Apache Chemistry opencmis库与Alfresco Core存储库对话的服务,需要通过SPNEGO进行身份验证。 Cmis图书馆要求我提供自定义身份验证提供程序,到目前为止这对我来说并不起作用。到目前为止,我想出了以下内容:
公共类KerberosAuthProvider扩展了AbstractAuthenticationProvider {
@Override
public Map<String, List<String>> getHTTPHeaders(String url) {
try {
String authToken = …. // generate token
Map<String, List<String>> headers = Maps.newHashMap();
headers.put("Authorization", Lists.newArrayList("Negotiate " + authToken));
return headers;
} catch (Exception ex) {
throw new IllegalStateException("Couldn't get token", ex);
}
}
}
我将不胜感激任何建议。
答案 0 :(得分:0)
这是正确的实施。我没有正确生成令牌,因此被拒绝访问。我使用WireShark确认已将授权标头添加到cmis请求中。