Spring mvc 使用Spring重定向到sso/login的单页应用程序上的KeyClope身份验证:未找到页面

Spring mvc 使用Spring重定向到sso/login的单页应用程序上的KeyClope身份验证:未找到页面,spring-mvc,authentication,single-page-application,keycloak,Spring Mvc,Authentication,Single Page Application,Keycloak,我使用extjs和Spring 4.3.4将KeyClope身份验证添加到单页应用程序中 当我尝试登录app_url时,它会将我重定向到app_url/sso/login。因此,我没有找到404页 它应该重定向到KeyClope登录页面 keydape.json: { "realm" : "realm_name", "resource" : "resource_name", "aut

我使用extjs和Spring 4.3.4将KeyClope身份验证添加到单页应用程序中

当我尝试登录app_url时,它会将我重定向到app_url/sso/login。因此,我没有找到404页

它应该重定向到KeyClope登录页面

keydape.json:

{
    "realm" : "realm_name",
    "resource" : "resource_name",
    "auth-server-url" : "keycloak_auth_url",

    "principal-attribute": "preferred_username",
    "public-client": true,
    "enable-cors" : false
  }
web.xml中的配置:


    <listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>


org.springframework.security.web.session.HttpSessionEventPublisher
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
要求
钥匙斗篷配置:

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider ref="keycloakAuthenticationProvider" />
    </security:authentication-manager>

    <security:http use-expressions="true" entry-point-ref="keycloakAuthenticationEntryPoint">
        <security:intercept-url pattern="/index.html" access="authenticated"/>
        <security:intercept-url pattern="/" access="permitAll"/>
        <security:logout logout-success-url="/logout.php"/>
        <security:csrf disabled="true"/>
        <security:headers>
            <security:frame-options policy="SAMEORIGIN" />
        </security:headers>
    </security:http>

    <bean id="adapterDeploymentContext" class="org.keycloak.adapters.springsecurity.AdapterDeploymentContextFactoryBean">
        <constructor-arg value="/WEB-INF/spring/keycloakconfig/keycloak.json" />
    </bean>

    <bean id="keycloakAuthenticationEntryPoint" class="org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationEntryPoint">
        <constructor-arg name="adapterDeploymentContext" ref="adapterDeploymentContext" />
    </bean>
    <bean id="keycloakAuthenticationProvider" class="org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider" />
    <bean id="keycloakPreAuthActionsFilter" class="org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter" />
    <bean id="keycloakAuthenticationProcessingFilter" class="org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticationProcessingFilter">
        <constructor-arg name="authenticationManager" ref="authenticationManager" />
    </bean>

    <bean id="keycloakLogoutHandler" class="org.keycloak.adapters.springsecurity.authentication.KeycloakLogoutHandler">
        <constructor-arg ref="adapterDeploymentContext" />
    </bean>

    <bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
        <constructor-arg name="logoutSuccessUrl" value="/" />
        <constructor-arg name="handlers">
            <list>
                <ref bean="keycloakLogoutHandler" />
                <bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
            </list>
        </constructor-arg>
        <property name="logoutRequestMatcher">
            <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
                <constructor-arg name="pattern" value="/sso/logout**" />
                <constructor-arg name="httpMethod" value="GET" />
            </bean>
        </property>
    </bean>