为什么登录后Spring Security 5无法重定向回受保护的资源?

时间:2019-05-05 15:19:33

标签: spring-security spring-security-oauth2 netflix-zuul

将我们的身份验证服务器从Spring Boot 1.5.13升级到2.1.3之后,它在成功登录后停止了重定向。它尝试立即重新加载/ login页面。我在GitHub上创建了一个网站,代理服务器和身份验证服务以演示该问题。

对于此集成测试,创建一个包含服务注册表和这些微服务的PCF Space:

  • 角度示例-如果绕过代理并转到角度示例路由,则会加载页面。 TRY IT
  • 身份验证示例-如果绕过代理并转到身份验证服务器根目录,则可以登录并访问受保护的页面。 TRY IT
  • Zuul代理示例-如果您尝试通过代理访问角度示例,则不要登录后转发到角度示例。{{3 }}

如果您尝试访问身份验证服务器的根目录¨/¨,受保护的页面将正常加载,并且单元测试可以正常进行。

这是认证服务器配置。

  protected void configure(HttpSecurity http) throws Exception {

    // @formatter:off
    http
        .requestMatchers()
            .antMatchers("/", "/login", "/oauth/authorize", "/oauth/confirm_access")
            .and()
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .logout()
            .permitAll();
    // @formatter:on
  }

}

这是所有项目的所有代码:

预期结果

  1. 用户尝试通过启用了SSO的代理服务器访问Angular站点。
  2. 代理服务器上的Spring Security将用户的浏览器重定向到身份验证服务器上的“登录”页面。
  3. 用户登录并将“登录”表单发布到身份验证服务器。
  4. 认证服务器创建一个JWT oauth2令牌,并将用户转发到最初请求的Angular站点。

实际结果

认证服务器将用户转发回登录页面。

0 个答案:

没有答案