如果从MS Excel打开URL,则SavedRequestAwareAuthenticationSuccessHandler不起作用

时间:2017-07-11 14:28:16

标签: spring-saml

我与SAMLAzure AD进行了工作Spring Security/Spring Security SAML。这些URL就像https://<server>/report/123,在通过SAML成功验证后,Spring Security很好地重定向到它。

问题是当我的用户通过MS Excel点击URL时 - 保存的请求不再起作用。我发现MS Office在打开的'目录'上以HTTP OPTIONS开头,并从Spring Security http元素中排除了所请求的URL选项,试图避免任何干扰:

<security:http pattern="/reports/.*/" path-type="regex" security="none" />

<security:http pattern="/reports/.*/.*" authentication-manager-ref="samlAuthenticationManager" path-type="regex">
    <security:intercept-url pattern="**" access="ROLE_ACCESS_REPORTS_URL"/>
    <security:form-login login-page="/loginReports" login-processing-url="/reports/login"
                authentication-failure-handler-ref="reportsSecurityExceptionTranslationHandler"
                authentication-details-source-ref="authenticationDetailsSource"/>
    <security:remember-me key="xxx" services-ref="rememberMeServices" />
    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
</security:http>

仍然没有成功。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

也许对某些人有用(HTTP OPTIONS与它无关):

  1. MS Excel(不是浏览器)打开包含“ms-office”的用户代理的正确URL。它会重定向到登录页面
  2. MS Excel在浏览器中打开登录页面。此时,有关请求的URL的任何信息都将丢失
  3. 登录过程
  4. ...
  5. https://serverfault.com/questions/588604/office-for-mac-hyperlinks-that-redirect-to-https-fail-to-load-with-unable-to-op的启发,在nginx中添加重定向规则,如果用户代理包含'ms-office',则该规则始终返回200。这是一个黑客,但正如Office正在浏览器中打开请求的URL并且浏览器获得适当的重定向。