在Spring SAML SSO上跳过某个路径

时间:2016-03-17 00:17:46

标签: spring-security spring-saml

网站contextPath是root,http://localhost:8080,使用Spring安全SAML实现单点登录。无论url在localhost:8080根路径下输入什么,它都将指向IDP提供者进行身份验证,这是正确的。

我想要的是localhost:8080 / unsecure目录,用户可以访问而无需重定向到IDP进行身份验证。我不知道在哪里配置告诉SAML跳过某个路径。

由于

1 个答案:

答案 0 :(得分:0)

在security-applicationContext.xml文件中,配置spring-security-saml时必须有类似的映射URL:

<!-- Unsecured pages -->
<security:http security="none" pattern="/favicon.ico"/>
<security:http security="none" pattern="/images/**"/>
<security:http security="none" pattern="/css/**"/>
<security:http security="none" pattern="/logout.jsp"/>

<!-- Security for the administration UI -->
<security:http pattern="/saml/web/**" use-expressions="false">
    <security:access-denied-handler error-page="/saml/web/metadata/login"/>
    <security:form-login login-processing-url="/saml/web/login" login-page="/saml/web/metadata/login" default-target-url="/saml/web/metadata"/>
    <security:intercept-url pattern="/saml/web/metadata/login" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <security:intercept-url pattern="/saml/web/**" access="ROLE_ADMIN"/>
    <security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
</security:http>

<!-- Secured pages with SAML as entry point -->
<security:http entry-point-ref="samlEntryPoint" use-expressions="false">
    <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
    <security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
</security:http>

这里我们允许图像,css,favicon等无需登录即可使用。因此,可以向不安全的映射列表添加更多URL ,如果您希望它在没有身份验证的情况下可用。