Метод getHeader () из интерфейса HttpServletRequest дал мне исключение нулевого указателя - PullRequest
0 голосов
/ 23 октября 2019

Я внедряю фильтры в шлюз API zuul. в предварительном фильтре я попытался выполнить процесс аутентификации, указав некоторые заголовки в запросе. Однако, когда я использую метод getHeader для заголовка, который не существует, он дал мне исключение nullpointer. Основываясь на документации, он должен дать мне нулевое значение.

в соответствии с этим сайтом, метод getHeader возвращает либо ноль, либо строку: https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader(java.lang.String)

Но если это так, он не должен давать мне исключение нулевой точки, не так ли?

Я тоже пытался это сделать

 RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();
        String authHeader = request.getHeader("Authorisation");
        System.out.println("below is header");
        System.out.println(authHeader);

Но println дал мне исключение нулевого указателя

public class PreFilter extends ZuulFilter {


    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 1;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();


            if(request.getHeader("Authorisation").equals("yes")){
            System.out.println("Authorisation is yes");
        }else if((request.getHeader("Authorisation"))==null || (request.getHeader("Authorisation")).equals("")){
                System.out.println("Authorisation is nullorempty");
            }
        else{
            System.out.println("Authorisation is no");
        }



        System.out.println("Request Method : " + request.getMethod() + " Request URL : " + request.getRequestURL().toString());
        return null;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...