【问题标题】:siteminder sso and spring security testingsiteminder sso 和 spring 安全测试
【发布时间】:2013-09-23 19:13:38
【问题描述】:

我正在制作一个将通过 Siteminder 单点登录访问的 Java 门户应用程序。

我的应用程序目前使用以下 bean 拒绝任何没有 SM_USERID 的请求:

<bean id="siteminderFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter">
    <property name="principalRequestHeader" value="SM_USERID"/>
    <property name="authenticationManager" ref="authenticationManager" />
</bean>

<bean id="preauthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
    <property name="preAuthenticatedUserDetailsService">
        <bean id="userDetailsServiceWrapper"  class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
            <property name="userDetailsService" ref="ssoUserDetailsService"/>
        </bean>
    </property>
</bean>

我的 SSOUserDetailsS​​ervice 根据 SM_USERID 标头找到一个用户,并将其作为 spring 用户返回。

我的问题是我无法在本地完成这项工作。需要部署它,以便我可以获取 Siteminder 标头。

是否有任何解决方法可以将模拟 Siteminder 标头中的本地测试用户的用户名提交到我的 Siteminder 过滤器?

我正在考虑将每个用户作为一个按钮的页面。单击该按钮将发送带有 SM_USER 标头的请求。

问题在于过滤器根本不允许在没有 SM_USER 标头的情况下访问该站点,因此我无法访问该页面!

我该怎么办?

【问题讨论】:

    标签: java filter spring-security single-sign-on siteminder


    【解决方案1】:

    尝试使用以下值更新主机文件 http://www.xyz.com127.0.0.1:8080/yourappName

    【讨论】:

      【解决方案2】:

      创建一个过滤器,在标头中注入属性 SM_USERID,并将此过滤器放在 web.xml 中的 FilterChainProxy 声明之前。

      【讨论】:

        猜你喜欢
        • 2013-07-16
        • 2015-02-16
        • 1970-01-01
        • 2012-09-30
        • 2012-08-01
        • 2023-03-31
        • 2016-03-22
        • 2016-05-28
        • 1970-01-01
        相关资源
        最近更新 更多