我与SAML
和Azure 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>
仍然没有成功。有什么想法吗?
答案 0 :(得分:0)
也许对某些人有用(HTTP OPTIONS
与它无关):
受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并且浏览器获得适当的重定向。