我们已经建立了Hybris C4C和Hybris Commerce(ASM)之间的SSO,MS-ADFS作为IDP。整个流程工作正常。
有一个特定的用例,如果在任何情况下C4C代理都没有以 asagent 的身份访问ASM的权限,则必须将它们重定向到激活了asm组件的主页。他们可能会尝试单独访问ASM。
由于最佳实践的限制,我们没有更改 samlsinglesignon RedirectionController ,但是我编写了自己的控制器。
要重定向到新控制器,我在spring-security-config.xml中注入了以下属性
<bean id="successRedirectHandler"
class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
<property name="defaultTargetUrl" value="https://domain/sso/adfs"/>
</bean>
问题是,从IDP成功进行身份验证之后,每当将呼叫重定向到新控制器时,就会出现空指针异常-身份验证属性为空。
我无法理解,如果我重定向到原始控制器,则身份验证不为null,但是如果我重定向到新控制器,则身份验证不存在。
在这方面的任何帮助将不胜感激。