Spring security 当身份验证服务器重定向到SSO代理服务器时,它不会';我不知道登录成功了

Spring security 当身份验证服务器重定向到SSO代理服务器时,它不会';我不知道登录成功了,spring-security,single-sign-on,spring-security-oauth2,Spring Security,Single Sign On,Spring Security Oauth2,成功登录到身份验证服务器后,它会重定向回启用SSO的代理服务器,但代理服务器无法识别用户已通过身份验证,因此它会弹出第三方权限页,而不是将用户转发到最初请求的受保护资源。单击“第三方权限”页面上的“接受”后,将重定向到最初请求的受保护资源 得到302 响应标题:位置: 响应头:设置Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3;路径=/;HttpOnly 得到302 请求Cookie:JSESSIONID=15F0789B7182469477

成功登录到身份验证服务器后,它会重定向回启用SSO的代理服务器,但代理服务器无法识别用户已通过身份验证,因此它会弹出第三方权限页,而不是将用户转发到最初请求的受保护资源。单击“第三方权限”页面上的“接受”后,将重定向到最初请求的受保护资源

  • 得到302 响应标题:位置: 响应头:设置Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3;路径=/;HttpOnly
  • 得到302 请求Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3 响应标题:位置:
  • 得到302 请求头:Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3 响应标题:位置: 响应头:设置Cookie:SESSION=ZJK5Y2Y5YTETMJE2OC00MTRKLTHNGUTNGZLODFKOTI4MWNJ;路径=/;HttpOnly;SameSite=Lax
  • 拿200 请求头:Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3;会话=ZJK5Y2Y5YTEMJE2OC00MTRKLTHNGUTNGZLODFKOTI4MWNJ
  • 拿200 请求头:Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3;会话=MMVHodcymmTzDC0MS00NJK3LTK4MTKTYTG4MMJY4YMQ2
  • 职位 请求头:Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3;会话=MMVHodcymmTzDC0MS00NJK3LTK4MTKTYTG4MMJY4YMQ2 响应标题:位置: 响应头:设置Cookie:SESSION=;最大年龄=0;Expires=1970年1月1日星期四00:00:00 GMT;路径=/;HttpOnly;SameSite=Lax
  • 得到302 请求头:Cookie:JSESSIONID=15F0789B7182469477E5F713D64A9BF3 响应标题:位置: 响应头:设置Cookie:JSESSIONID=C201DF4673C664D0B62F166481386C3;路径=/;HttpOnly
  • 拿200
  • 这是一个Spring Boot 2.1.8.0版本的Zuul代理服务器和一个Spring Boot 2身份验证服务器,配置得尽可能靠近工作的Spring Boot 1.5.x身份验证服务器

    安装程序
  • 克隆
  • mvn spring启动:运行
  • 克隆
  • mvn spring启动:运行
  • 克隆
  • ng serve--baseHref=/角度示例/
  • 复制步骤:
  • 导航到
  • 以“用户”/“密码”身份登录
  • 此时会出现第三方身份验证页面。单击“同意”
  • 此时将显示Angular主页
  • 代理服务器 身份验证服务器配置 总之,我想理解为什么身份验证没有返回相同的状态参数,这会阻止代理服务器知道以前重定向到身份验证服务器的操作成功

    下面是我们的Spring Security 4身份验证服务器的单点登录,该服务器正在工作:

  • 获取路径]/302 响应标题:位置: 响应头:服务器:cloudflare 响应头:设置cookie:uu cfduid=dd164391fe59500752e3500ab3de6a23c1569423515;expires=周四,20年9月24日14:58:35格林威治标准时间;路径=/;域=[hostname].com;HttpOnly;稳妥
  • 得到301 请求头:Cookie:JSESSIONID=C0C62552AAE5F7E8A420EEDD1869AA2AVCAP_ID=b87f667f-ec72-4a1d-6265-5979 响应标题:位置: 响应头:服务器:cloudflare
  • 得到302 请求头:Cookie:cfduid=dd164391fe59500752e3500ab3de6a23c1569423515;JSESSIONID=C0C62552AAE5F7E8A420EEDD1869AA2A__VCAP_ID=b87f667f-ec72-4a1d-6265-5979 响应标题:位置:
  • 得到302 响应标题:位置: 响应头:设置Cookie:SESSION=4d4be900-b461-4a57-b18b-c5e073e04b25;路径=/;保护HttpOnly
  • 得到 请求头:Cookie:SESSION=4d4be900-b461-4a57-b18b-c5e073e04b25
  • 邮政200 请求头:Cookie:SESSION=4d4be900-b461-4a57-b18b-c5e073e04b25 响应标题:位置: 响应头:设置Cookie:SESSION=661f73be-a34a-4d3a-83d7-c8a8c682d392;路径=/;保护HttpOnly
  • 得到302 请求头:Cookie:SESSION=661f73be-a34a-4d3a-83d7-c8a8c682d392 响应标题:位置: 响应头:设置Cookie:SESSION=;最大年龄=0;Expires=1970年1月1日星期四00:00:10 GMT;路径=/;保护HttpOnly
  • 得到301 请求头:Cookie:JSESSIONID=C0C62552AAE5F7E8A420EEDD1869AA2AVCAP_ID=b87f667f-ec72-4a1d-6265-5979 响应标题:位置:
  • 得到302 请求头:cookie:cfduid=dd164391fe59500752e3500ab3de6a23c1569423515;JSESSIONID=C0C62552AAE5F7E8A420EEDD1869AA2A__VCAP_ID=b87f667f-ec72-4a1d-6265-5979 响应头:设置cookie:JSESSIONID=8B0E676E8BFE337A598BE060EEA76126;路径=/;HttpOnly 响应头:设置cookie:VCAP_ID=b87f667f-ec72-4a1d-6265-5979;路径=/;HttpOnly
  • 获取路径]/200

  • 可以在代理中进行修复:

    auto-approve-scopes: '.*' # <-- Not for production.
    
      @Override
      protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
            .authorizeRequests()
                .antMatchers("/*.css","/*.js","/favicon.ico","/*.map","/robots.txt")
                .permitAll()
            .anyRequest().authenticated()
                .and()
            .logout()
                .invalidateHttpSession(true).permitAll()
                .logoutSuccessUrl("http://localhost:8085/angular-example/")
                .and()
            .csrf()
                .disable();
        // @formatter:on
      }
    
    server:
      port: 8084
    spring:
      datasource:
        url: jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
      jpa:
        generate-ddl: true
        hibernate:
          ddl-auto: create
        open-in-view: false
    
      protected void configure(HttpSecurity http) throws Exception {
        // @formatter:off
        http
            .requestMatchers()
                .antMatchers("/",  "/oauth", "/login",  "/api/authenticate", "/oauth/authorize")
                .and()
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage( "/login")
                .permitAll()
                .and()
            .logout()
                .permitAll()
            .and()
                .addFilter(new JwtAuthenticationFilter(privateKey, authenticationManager()))
                .addFilter(new JwtAuthorizationFilter(privateKey, authenticationManager()));
        // @formatter:on
      }
    
    auto-approve-scopes: '.*' # <-- Not for production.
    
    clientDetails.setAutoApproveCsv("true");