Java EE WebLogic和带SSO的Spring

时间:2013-03-25 01:38:22

标签: java spring javabeans single-sign-on waffle

我正在尝试在我在WebLogic 11上部署的Spring应用程序中运行SSO。我正在使用Waffle实现。

我设定:
    entry-point-ref="negotiateSecurityFilterEntryPoint"
和     <custom-filter ref="waffleNegotiateSecurityFilter" position="BASIC_AUTH_FILTER" />

我还添加了

<beans:bean id="waffleWindowsAuthProvider" class="waffle.windows.auth.impl.WindowsAuthProviderImpl" />

<beans:bean id="negotiateSecurityFilterProvider" class="waffle.servlet.spi.NegotiateSecurityFilterProvider">
    <beans:constructor-arg ref="waffleWindowsAuthProvider" />
</beans:bean>

<beans:bean id="basicSecurityFilterProvider" class="waffle.servlet.spi.BasicSecurityFilterProvider">
    <beans:constructor-arg ref="waffleWindowsAuthProvider" />
</beans:bean>

<beans:bean id="waffleSecurityFilterProviderCollection" class="waffle.servlet.spi.SecurityFilterProviderCollection">
    <beans:constructor-arg>
        <beans:list>
            <beans:ref bean="negotiateSecurityFilterProvider" />
            <beans:ref bean="basicSecurityFilterProvider" />
        </beans:list>
    </beans:constructor-arg>
</beans:bean>

<beans:bean id="negotiateSecurityFilterEntryPoint" class="waffle.spring.NegotiateSecurityFilterEntryPoint">
    <beans:property name="Provider" ref="waffleSecurityFilterProviderCollection" />
</beans:bean>

<beans:bean id="waffleNegotiateSecurityFilter" class="com.myapp.security.CustomNegotiateSecurityFilter">
    <beans:property name="Provider" ref="waffleSecurityFilterProviderCollection" />
</beans:bean>

我的CustomNegotiateSecurityFilter只是标准Waffle类的副本,所以没有任何影响。

当我使用IP地址访问应用程序时,此配置正常工作,但是当使用主机名(使用域)时,我无法使SSO工作 - 401未经授权的响应。

也许有人可以告知这种行为的原因。

1 个答案:

答案 0 :(得分:0)

由于使用IP工作,但使用名称不起作用,这很可能是SPN的问题。您将需要使用setspn来修复它。从标准故障排除开始:https://github.com/dblock/waffle/blob/master/Docs/Troubleshooting.md