Spring boot 无形弹簧

Spring boot 无形弹簧,spring-boot,spring-security,spnego,spring-security-kerberos,Spring Boot,Spring Security,Spnego,Spring Security Kerberos,我有一些关于在不使用表单后退的情况下设置SPNEGO的问题 我正在编写一个web服务,它使用SPNEGO身份验证并为经过身份验证的主体返回一个签名的JWT。我对表单没有任何用处(例如,不能使用仅具有身份验证主体的表单) 我是否可以跳过spring SPNEGO引用中所示的formLogin()和logout()部分,并使用零参数SpnegoEntryPoint构造函数 从中可以看出,如果缺少授权标头,那么过滤器实际上不会向调用者返回带有WWW-Authenticate:agreement质询的4

我有一些关于在不使用表单后退的情况下设置SPNEGO的问题

我正在编写一个web服务,它使用SPNEGO身份验证并为经过身份验证的主体返回一个签名的JWT。我对表单没有任何用处(例如,不能使用仅具有身份验证主体的表单)

  • 我是否可以跳过spring SPNEGO引用中所示的formLogin()和logout()部分,并使用零参数SpnegoEntryPoint构造函数
  • 从中可以看出,如果缺少授权标头,那么过滤器实际上不会向调用者返回带有WWW-Authenticate:agreement质询的401 Unauthorized响应。也就是说,第135行的支票没有
    else
    。我读对了吗?RFC声明 如果服务器收到访问保护对象的请求,以及 如果尚未发送可接受的授权标头,则服务器 以“401未经授权”状态代码和“WWW- 验证:“头

  • 如果上述情况正确,是否希望客户端以抢先方式发送授权标头
  • 谢谢

    编辑(可能已解决):我原来的安全配置有:

    http.exceptionHandling()
        .authenticationEntryPoint(spnegoEntryPoint())
        .and()
    .authorizeRequests()
        .antMatchers("/v1/**").permitAll()
        .anyRequest().authenticated()
        .and()
    .addFilterBefore()...`
    
    当我删除
    .antMatchers(“/v1/**”).permitAll()
    时,SpnegoEntryPoint启动,现在我看到一个带有WWW-Authenticate:congregate响应的401

    当然,现在我得到了一个Kerberos数据库中找不到的
    服务器
    gss_init_sec_context()故障,但我怀疑这与SPN设置或主机名解析(因为我正在Macbook上本地测试)有关,而不是与Spring应用程序有关

    当我开始工作时,将最终更新一次

  • 是的,零参数协构造函数是正确的
  • 过滤器不负责设置状态和标题。SpnegoEntryPoint是。org.springframework.security.kerberos.web.authentication.SpnegoEntryPoint.comment(HttpServletRequest、HttpServletResponse、AuthenticationException)
  • 不,见第2条

  • 那么,什么时候调用入口点呢?只有在例外情况下?我正在尝试一步一步地通过入口点以及过滤器,并且在请求时执行不会到达入口点。