データベースに対してユーザーの詳細を検証する春のセキュリティ基本認証を使用するアプリケーションがあります。SSO データベースに対して検証される特定のユーザー セットがあります。SAML を使用して、SSO データベースに対して検証できました。
しかし問題は、基本認証と SAML 認証の両方を 1 つのアプリケーションに統合し、ユーザーを特定の認証に誘導する方法です。もう 1 つの理由は、両方が異なる認証プロバイダーを使用していることです。
spring-saml の例を使用して SAML を構成しました。
別の問題は、intercept-url パターンにあります。以下の構成では、両方のセキュリティ構成が PATTERN 属性にマップされていません。これは、/** (任意の要求) にマップされる構成が 2 つあるため、サーバーの起動時に例外が発生するためです。この例外を解決するにはどうすればよいですか?
例:
<security:http access-denied-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="/login" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/logout" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/home" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
</security:http>
<security:http pattern="/saml/mysignin" entry-point-ref="samlEntryPoint">
<security:intercept-url pattern="/saml/mysignin" access="IS_AUTHENTICATED_FULLY"/>
<security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
<security:custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
</security:http>
<bean id="samlFilter" class="org.springframework.security.web.FilterChainProxy">
<security:filter-chain-map request-matcher="ant">
<security:filter-chain pattern="/saml/login/**" filters="samlEntryPoint"/>
<security:filter-chain pattern="/saml/logout/**" filters="samlLogoutFilter"/>
<security:filter-chain pattern="/saml/metadata/**" filters="metadataDisplayFilter"/>
<security:filter-chain pattern="/saml/SSO/**" filters="samlWebSSOProcessingFilter"/>
<security:filter-chain pattern="/saml/SSOHoK/**" filters="samlWebSSOHoKProcessingFilter"/>
<security:filter-chain pattern="/saml/SingleLogout/**" filters="samlLogoutProcessingFilter"/>
<security:filter-chain pattern="/saml/discovery/**" filters="samlIDPDiscovery"/>
</security:filter-chain-map>
</bean>