我在尝试使用 spring rest 客户端访问经过 kerberos SPNEGO 身份验证的资源时遇到问题。我正在使用KerberosRestTemplate
.
从文档
如果要使用缓存票证,
keyTabLocation
请留空。userPrincipal
但是当我尝试调用无参数构造函数时
this.kerberosRestTemplate = new KerberosRestTemplate();
并尝试访问它失败的受保护资源并出现以下错误:
org.springframework.web.client.RestClientException: Error running rest call; nested exception is java.lang.IllegalArgumentException: Null name not allowed
at org.springframework.security.kerberos.client.KerberosRestTemplate.doExecute(KerberosRestTemplate.java:196)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:538)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:245)
Caused by: java.lang.IllegalArgumentException: Null name not allowed
at sun.security.krb5.PrincipalName.<init>(PrincipalName.java:356) ~[?:1.7.0_67]
at javax.security.auth.kerberos.KerberosPrincipal.<init>(KerberosPrincipal.java:123) ~[?:1.7.0_67]
at org.springframework.security.kerberos.client.KerberosRestTemplate.doExecute(KerberosRestTemplate.java:182)
我在这里做错了什么?