ERRO INTERCEPT IONIC / ANGULAR

08/07/2020

3

Bom dia! estou com um erro macabro no HttpInterceptordo Ionic.
Implementei um sistema de HttpInterceptor igual ao do Angular CLI.
O estranho é que nas primeiras requisições, ele funciona normalmente.

O que está acontecendo?
Ele envia uma primeira requisição com o Token.
E envia uma segunda requisição sem o Token.
Só que preciso que a segunda requisição seja enviado o Token também


Código do HttpInterceptor

 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>  
  {  
    const loginService = this.injector.get(LoginService);

    let token = loginService.token? loginService.token: "no_token" 
    req = req.clone({ headers: req.headers.set(''Authorization'', ''Bearer '' + token) });      
    if (!req.headers.has(''Content-Type''))   req = req.clone({ headers: req.headers.set(''Content-Type'', ''application/json'') });
      
    return next.handle(req);  
  }



Código do Filter


@Override
	public void doFilter(ServletRequest requestServlet, ServletResponse responseServlet, FilterChain chain) throws IOException, ServletException 
	{	
		HttpServletRequest request = (HttpServletRequest) requestServlet;
		HttpServletResponse response = (HttpServletResponse) responseServlet;

//utilizado para exibir o header para tentar encontrar o problema
        Enumeration headerNames = request.getHeaderNames(); 

        while (headerNames.hasMoreElements()) 
        {
            String key = (String) headerNames.nextElement();
            String value = request.getHeader(key);
           
            System.err.println(key + " : " + value);
        }
		
		response.setHeader("server-header", "WildFly/19");
		response.setHeader("x-powered-by-header", "Undertow/1");		
		response.setHeader("Access-Control-Allow-Origin", "*");
		response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT");
		response.setHeader("Access-Control-Allow-Headers", "accept, authorization, content-type, x-requested-with");
		response.setHeader("Access-Control-Allow-Credentials", "true");
		response.setHeader("Access-Control-Max-Age", "1");	

		try
		{		
			if(	request.getRequestURI().contains("/diarista/rest/usuario/participate") || 
				request.getRequestURI().contains("/diarista/rest/usuario/invitation")  || 
				request.getRequestURI().contains("/diarista/rest/login/authenticate")  ||			
				request.getRequestURI().contains("/diarista/rest/model")  
			  ) 
			{
				chain.doFilter(request,response);	
				return;
			}		
			else
			{				
				if(token == null) 		
				{
					response.setStatus(401);
					return;
				}
				else if(token.trim().isEmpty()) 
				{
					response.setStatus(401);	
					return;
				}
				else if(!token.equals(UsuarioBusiness.getToken()))
				{
					response.setStatus(401);	
					return;					
				}
				
				chain.doFilter(request,response);		
			}

		}
		catch (Exception e) 
		{
			e.printStackTrace();			
			response.setStatus(401);
			return;
		}
	}

Rodrigo

Rodrigo

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar