Java 有没有办法解决RatpackPac4j#requireAuthor不设置WWW身份验证标头的问题?

Java 有没有办法解决RatpackPac4j#requireAuthor不设置WWW身份验证标头的问题?,java,groovy,ratpack,www-authenticate,Java,Groovy,Ratpack,Www Authenticate,在Ratpack(1.5.x)应用程序的上下文中测试Pac4j(2.x)身份验证时,我发现使用此处理程序时: all RatpackPac4j.requireAuth(HeaderClient) …未经授权的请求将被正确拒绝,状态为401,并声明应添加WWW-Authenticate头,而不是 我在RatpackPac4j跟踪器上提出了一个问题,但它被关闭了,因为(我推断)“无法修复”,因为Pac4jv3正确地实现了这一点。RatpackPac4j尚未升级到与Pac4jv3一起使用 那么:是否

在Ratpack(1.5.x)应用程序的上下文中测试Pac4j(2.x)身份验证时,我发现使用此处理程序时:

all RatpackPac4j.requireAuth(HeaderClient)
…未经授权的请求将被正确拒绝,状态为401,并声明应添加
WWW-Authenticate
头,而不是

我在RatpackPac4j跟踪器上提出了一个问题,但它被关闭了,因为(我推断)“无法修复”,因为Pac4jv3正确地实现了这一点。RatpackPac4j尚未升级到与Pac4jv3一起使用

那么:是否可以插入一些对所有响应进行后期处理的内容,例如,根据响应有条件地添加一个头

旁白-我在gradle配置中使用了以下版本:

    compile group: 'io.ratpack', name: 'ratpack-groovy', version: '1.5.4'
    compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'
//    compile ratpack.dependency('pac4j') // Don't use this, because we need the org.pac4j version
    compile group: 'org.pac4j', name: 'ratpack-pac4j', version: '2.0.0'
    compile group: 'org.pac4j', name: 'pac4j-core', version: '2.2.1'
    compile group: 'org.pac4j', name: 'pac4j-jwt', version: '2.2.1'
    compile group: 'org.pac4j', name: 'pac4j-http', version: '2.2.1'

感谢Ratpack Slack频道的John Engelman,这里有一个解决方法:在发送之前使用
Response

handlers {
  all {
    response.beforeSend { response ->
      if (response.status.code == 401) {
        response.headers.set('WWW-Authenticate', 'bearer realm="authenticated api"')
      }
    }
  }
}
请注意,此处理程序必须在可能生成401响应的任何其他处理程序之前插入,否则在触发回调时将不绑定回调