Я делаю приложение портала Java, доступ к которому будет осуществляться через единый вход Siteminder.
У меня есть приложение, которое в настоящее время отклоняет любые запросы без 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>
Мой SSOUserDetailsService находит пользователя на основе заголовка SM_USERID и возвращает его как Spring User.
Моя проблема в том, что я не могу заставить это работать локально. Его нужно будет развернуть, чтобы я мог получить заголовок Siteminder.
Есть ли обходной путь, позволяющий отправить имя пользователя локального тестового пользователя в ложном заголовке Siteminder в мой фильтр Siteminder?
Я думал о странице с каждым пользователем как о кнопке. При нажатии на кнопку будет отправлен запрос с заголовком SM_USER.
Проблема в том, что фильтр вообще не разрешает доступ к сайту без заголовка SM_USER, поэтому я не мог попасть на эту страницу!
Что я делаю?