什么是SPNEGO auth提供程序的正确实现

时间:2017-09-07 17:28:24

标签: alfresco opencmis

我正在编写一个使用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);
    }
}

}

我将不胜感激任何建议。

1 个答案:

答案 0 :(得分:0)

这是正确的实施。我没有正确生成令牌,因此被拒绝访问。我使用WireShark确认已将授权标头添加到cmis请求中。