ERRO INTERCEPT IONIC / ANGULAR
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
Curtidas 0