2014-01-13 3 views
0

원격 보안 사용자를 인증하기 위해 spring-security-kerberos를 사용하고 있습니다. 내가 가진 문제는 때때로 사용자가 kerberos 티켓을 가지고 있지 않아서 다른 인증 양식을 사용해야한다는 것입니다. 이 목적으로 자체 인증 공급자 (myCusomAuthenticationProvider)를 작성했습니다. 이 사용자 지정 공급자는 사용자에게 기본 인증을 요청하고 여러 LDAP 서버를 사용하여 사용자 이름과 암호를 기반으로 사용자를 인증해야합니다.spring-security-kerberos와 사용자 정의 인증 필터 결합

내가보기에 문제는 내 사용자 지정 인증 관리자가 항상 인증 토큰으로 KerberosServiceRequestToken을 가져오고 UsernamePasswordAuthenticationToken을 가져올 수 없다는 것입니다. 서버가 브라우저에 "Negotiate"및 "Basic"메소드를 모두 반환하도록하고 자체 공급자가 기본 인증을 처리하게하려면 어떻게해야합니까?

나는 spring-security-kerberos 코드에 몇 가지 수정을 가하는 방법을 찾았지만 이것을 수행하는 더 좋은 방법을 찾고있다.

의 web.xml : http://pastebin.com/embed.php?i=ZidnBMwZ

루트 상황에-krb.xml : http://pastebin.com/c8vfUZfV

답변

1

이 대답은 당신에게 Optional kerberos authentication

도움이 될 것입니다 그리고 당신이 더 많은 사용자 정의를 필요로하는 경우, 다음 를 확장 KerberosAuthenticationProvider 클래스로 MyCustomAuthenticationProvider을 입력하고 클래스 특성 (

)에 붙여 넣습니다.
<bean id="kerberosAuthenticationProvider" class="com.test.MyCustomAuthenticationProvider"> 
    <property name="kerberosClient"> 
     <bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosClient"> 
      <property name="debug" value="${krb.debug}"/> 
     </bean> 
    </property> 
    <property name="userDetailsService" ref="dummyUserDetailsService"/> 
</bean> 
+0

감사합니다. – nambar

+0

@nambar 대답이 명확하지 않거나 잘못 되었습니까? – 0x5a4d