0

springrest client를 사용하여 kerberos SPNEGO 인증 된 리소스에 액세스하는 동안 문제가 발생합니다. KerberosRestTemplate을 사용하고 있습니다.spring rest 템플릿을 사용하여 kerberos SPNEGO 인증 된 리소스에 액세스하는 방법

문서에서 "캐시 된 티켓"을 사용하려면 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) 

내가 잘못 여기서 뭐하는 거지?

답변

0

시도해보십시오. spring-security-kerberos 나는 당신이 xml 또는 자바 구성 기반을 통해 얻을 수있는 기본 구성이 누락 된 것 같아요.

또한 옵션 다음 시도 할 수

  1. 사용 loginOptions 당신이 Krb5LoginModule의 옵션을 사용자 정의하려는 경우.
  2. 사용자 지정된 httpClient를 사용하십시오.
+0

을 티켓". 어떤 로그인 옵션을 사용자 정의해야합니까? –

0

그냥 같이, keyTabLocation에 대한 널 (null)과 userPrincipal에 대한 비어 있지 않은 문자열로 생성자를 호출 : 워드 프로세서 "휴가 keyTabLocation 및 userPrincipal 빈 당신이 캐시를 사용하려는 경우 문서 당으로

KerberosRestTemplate restTemplate = new KerberosRestTemplate(null,"-");