Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Micronaut Http基本身份验证提示符_Java_Micronaut - Fatal编程技术网

Java Micronaut Http基本身份验证提示符

Java Micronaut Http基本身份验证提示符,java,micronaut,Java,Micronaut,我一直在寻找一种方法,告诉Micronaut(1.3.5)添加“WWW Authenticate”头,以防http基本身份验证设置中的身份验证失败。 默认情况下,缺少此标题,只返回状态代码401。答案是提供一个自定义异常处理程序,如下所示: /** * AuthorizationException Handler, which adds header for showing browser basic auth dialogue. */ @Singleton @Primary public

我一直在寻找一种方法,告诉Micronaut(1.3.5)添加“WWW Authenticate”头,以防http基本身份验证设置中的身份验证失败。
默认情况下,缺少此标题,只返回状态代码401。

答案是提供一个自定义异常处理程序,如下所示:


/**
 * AuthorizationException Handler, which adds header for showing browser basic auth dialogue.
 */
@Singleton
@Primary
public class HttpBasicAuthorizationExceptionHandler
        implements ExceptionHandler<AuthorizationException, MutableHttpResponse<?>> {


    @Override
    public MutableHttpResponse<?> handle(HttpRequest request, AuthorizationException exception) {
        return Flowable.fromPublisher(reject(exception.isForbidden())).blockingFirst();
    }

    /**
     * @param forbidden true if the status is HttpStatus.FORBIDDEN, HttpStatus.UNAUTHORIZED otherwise.
     * @return the http response.
     */
    private Publisher<MutableHttpResponse<?>> reject(boolean forbidden) {
        if (forbidden) {
            return Publishers.just(HttpResponse.status(HttpStatus.FORBIDDEN));
        }
        return Publishers.just(
                HttpResponse.status(HttpStatus.UNAUTHORIZED)
                        .header(HttpHeaders.WWW_AUTHENTICATE, "Basic")
        );
    }

}

/**
*AuthorizationException处理程序,它添加用于显示浏览器基本身份验证对话的标题。
*/
@独生子女
@初级的
公共类HttpBasicAuthorizationExceptionHandler
实现ExceptionHandler句柄(HttpRequest请求、AuthorizationException异常){
返回Flowable.fromPublisher(拒绝(exception.isForbidden()).blockingFirst();
}
/**
*如果状态为HttpStatus.forbidden,则@param forbidden true;否则为HttpStatus.UNAUTHORIZED。
*@返回http响应。
*/
私人出版商