Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java siteminder sso和spring安全测试_Java_Filter_Spring Security_Single Sign On_Siteminder - Fatal编程技术网

Java siteminder sso和spring安全测试

Java siteminder sso和spring安全测试,java,filter,spring-security,single-sign-on,siteminder,Java,Filter,Spring Security,Single Sign On,Siteminder,我正在制作一个Java门户应用程序,可以通过Siteminder单点登录进行访问 我让应用程序使用以下bean拒绝任何没有SM_用户ID的请求: <bean id="siteminderFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter"> <property name="principalRequestHeade

我正在制作一个Java门户应用程序,可以通过Siteminder单点登录进行访问

我让应用程序使用以下bean拒绝任何没有SM_用户ID的请求:

<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>

My SSOuserDetails服务根据SM_USERID头查找用户,并将其作为spring用户返回

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

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

我在想一个页面,每个用户都是一个按钮。单击该按钮将发送带有SM_用户标题的请求

问题是,如果没有SM_用户头,过滤器根本不允许访问该站点,因此我无法访问该页面


我该怎么办?

尝试用以下值更新主机文件
127.0.0.1:8080/yourappName

制作一个过滤器,在标题中注入属性SM_USERID,并将此过滤器放置在web.xml中的FilterChainProxy声明之前