2017-09-07 48 views
0

我正在写一个服务,使用Apache Chemistry opencmis库与Alfresco Core存储库进行对话,并需要通过SPNEGO进行身份验证。 Cmis库要求我提供自定义身份验证提供程序,目前为止我无法使用它。到目前为止,我想出了以下内容:什么是SPNEGO授权提供商的正确实施

公共类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

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