![](/img/trans.png)
[英]Spring Security Kerberos/SPNEGO Extension Error "Access is denied"
[英]How to access kerberos SPNEGO authenticated resource using spring rest template
嘗試使用Spring Rest客戶端訪問經過kerberos SPNEGO認證的資源時遇到問題。 我正在使用KerberosRestTemplate
。
來自文檔
如果要使用緩存的票證,請將
keyTabLocation
和userPrincipal
保留keyTabLocation
空。
但是當我嘗試調用無參數構造函數時
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)
我在這里做錯了什么?
請嘗試使用這些spring-security-kerberos 。 我認為您缺少基本配置,可以通過xml或基於Java的配置來實現。
也可以嘗試以下選項:
只需使用keyTabLocation的null以及userPrincipal的任何非空字符串調用構造函數,如下所示:
KerberosRestTemplate restTemplate = new KerberosRestTemplate(null,"-");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.