En la siguiente funcion:
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
//Obtener el token del header
var token = request.getHeader("Authorization");
if(token == "" || token==null){
throw new RuntimeException("El token enviado no es valido o esta vacio");
}
if(token != null){
token = token.replace("Bearer ", "");
System.out.println(token);
System.out.println(tokenService.getSubject(token)); // Este usuario tiene session
filterChain.doFilter(request, response);
}
}
No entiendo por que segun el profesor hay un error logico aqui:
if(token == "" || token==null){
throw new RuntimeException("El token enviado no es valido o esta vacio");
}
Si lo pensamos detenidamente, antes de ejecutarse ese codigo declaramos:
var token = request.getHeader("Authorization");
Osea, ya obtenemos el token, por lo que el IF mencionado arriba en teoria no deberia ejecutarse. Entonces alguien me puede explicar por que se ejecuta ese RuntimeException, incluso cuando el token si viene correcto (El profesor es muy bueno, pero hay partes donde es medio vago explicando algunas cosas, he usando luri para ver si me puede explicar el problema, pero como luri esta entrenada con los videos de alura, me dice lo mismo que el profesor :v)