Spring WS客户端使用kerberos进行身份验证

时间:2012-10-04 06:57:18

标签: spring spring-security kerberos spring-ws

如何设置spring ws客户端,即“WebServiceTemplate”,以便向服务发出请求并使用kerberos进行身份验证。该服务是tomcat上的一个spring ws端点,它是kerberized。

遇到以下帖子Spring Security Kerberos/SPNEGO Extension

此设置是否允许spring ws客户端使用kerberos进行身份验证?

<sec:http entry-point-ref="spnegoEntryPoint">
    <sec:intercept-url pattern="/secure/**" access="IS_AUTHENTICATED_FULLY" />
    <sec:custom-filter ref="spnegoAuthenticationProcessingFilter" position="BASIC_PROCESSING_FILTER" />
</sec:http>

<bean id="spnegoEntryPoint" class="org.springframework.security.extensions.kerberos.web.SpnegoEntryPoint" />

<bean id="spnegoAuthenticationProcessingFilter" class="org.springframework.security.extensions.kerberos.web.SpnegoAuthenticationProcessingFilter">
    <property name="authenticationManager" ref="authenticationManager" />
</bean>

<sec:authentication-manager alias="authenticationManager">
    <sec:authentication-provider ref="kerberosServiceAuthenticationProvider" />
</sec:authentication-manager>

<bean id="kerberosServiceAuthenticationProvider" class="org.springframework.security.extensions.kerberos.KerberosServiceAuthenticationProvider">
    <property name="ticketValidator">
        <bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator">
            <property name="servicePrincipal" value="HTTP/web.springsource.com" />
            <property name="keyTabLocation" value="classpath:http-web.keytab" />
        </bean>
    </property>
    <property name="userDetailsService" ref="dummyUserDetailsService" />
</bean>

<!-- Just returns the User authenticated by Kerberos and gives him the ROLE_USER -->
<bean id="dummyUserDetailsService" class="org.springframework.security.extensions.kerberos.sample.DummyUserDetailsService"/>

如果我可以使用它来使用kerberos对服务进行身份验证,有人可以告诉我以下行的目的。什么应该进入“dummyUserDetailsS​​ervice”的实现

<bean id="dummyUserDetailsService" class="org.springframework.security.extensions.kerberos.sample.DummyUserDetailsService"/>

另外,如何设置通过SSL进行这些调用

非常感谢,

1 个答案:

答案 0 :(得分:0)

您提到的Spring配置用于设置Web应用程序(服务器端),以便它可以处理Kerberos身份验证。您的问题实际上是关于如何使客户端使用可以执行Kerberos身份验证的服务器。我的建议是首先使您的服务器使用kerberos身份验证。您最初可以使用浏览器进行测试。

之后,您可以使用普通的Java客户端代码连接到服务器。有关详细信息,请参阅以下主题:Simple Kerberos client in Java?