【问题标题】:SAML 2.0 service provider implementationSAML 2.0 服务提供者实施
【发布时间】:2014-10-27 13:38:11
【问题描述】:

我正在使用 spring-security-saml-sample 代码在 java 中实现 SAML2.0 ServiceProvider。成功登录响应后重定向到应用程序的根路径(欢迎文件)。如何将其重定向到任何控制器?

谢谢, 光辉

【问题讨论】:

  • 我尝试添加 但它不起作用。

标签: saml service-provider


【解决方案1】:

您可以通过更改 bean successRedirectHandler 来自定义身份验证成功后将用户重定向到的 URL,例如:

<bean id="successRedirectHandler"
      class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
    <property name="defaultTargetUrl" value="/myControllerURL"/>
</bean>

【讨论】:

  • 我在securitycontext.xml文件中添加了上面的bean但是它不起作用。添加此代码后,它重定向到web.xml中提到的欢迎文件
  • 然后启用调试级别的日志记录,并将整个 SSO 进程的日志添加到问题中。
  • 我收到以下日志:- SAML 协议消息未签名,跳过 XML 签名处理 - AuthNResponse;SUCCESS;0:0:0:0:0:0:0:1;localhost:8080/ServiceProvider/saml/metadata;http://… ;身份验证 org.springframework.security.providers.ExpiringUsernameAuthenticationToken@4a5c013f:主体:tejas.chougule@xxxx.in;凭证:[受保护];已认证:真实;详细信息:空;未授予任何权限
  • 我要问的是启用了调试级别的完整日志,这只是有助于解决您的问题的信息的一小部分。您可以尝试的一件事是将 SavedRequestAwareAuthenticationSuccessHandler 类替换为 SimpleUrlAuthenticationSuccessHandler
【解决方案2】:

如果您正在寻找通过登录过程维护状态的一般方法,SAML2 预计会保留 RelayState 变量(将其与 SAMLRequest 一起传递)。把你喜欢的东西放进去。我喜欢 base64 的 json。

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2014-04-24
    • 2012-08-07
    • 2020-01-15
    相关资源
    最近更新 更多