ERRO INTERCEPT IONIC / ANGULAR
08/07/2020
0
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
Código do Filter
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)