Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] Sobre el token

Hola buenas tardes, vengo arrastrado este error, pero no veo la solución."mensaje de advertencia "Encoded password does not look like BCrypt" indica que el sistema no puede reconocer la contraseña codificada como un hash válido de BCrypt. "Estoy usando

               <dependency>
                    <groupId>com.auth0</groupId>
                    <artifactId>java-jwt</artifactId>
                    <version>4.2.0</version>
                </dependency>

Imagen de Postman Imagen consola

2 respuestas

¡Hola Christian, espero que estés bien!

Entiendo que estás teniendo un problema con el mensaje de advertencia "Encoded password does not look like BCrypt" al intentar reconocer la contraseña codificada como un hash válido de BCrypt. Parece que estás utilizando la dependencia com.auth0:java-jwt:4.2.0 para manejar tu token en tu API Rest con Spring Boot.

Para solucionar este problema, es posible que necesites ajustar la configuración de tu aplicación para que utilice BCrypt para codificar y decodificar las contraseñas. En Spring Security, puedes configurar el PasswordEncoder para que utilice BCrypt de la siguiente manera:

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

// ...

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}

Asegúrate de que estás utilizando esta configuración en tu aplicación para que las contraseñas se codifiquen y decodifiquen correctamente.

Espero que esta información te sea útil para resolver tu problema. Si necesitas más ayuda, no dudes en preguntar.

¡Espero haber ayudado y buenos estudios!

Hola @Scuba, ya lo pude solucionar, desde el foro, estaba la respuesta esperandome ja ja.

   @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        System.out.println("El filtro esta siendo llamado");
        var authHeader = request.getHeader("Authorization");
        if (authHeader != null) {
            var token = authHeader.replace("Bearer ", "");
            var subject = service.getSubject(token);
            if (subject != null) {
                var user = userRepository.findByLogin(subject);
                var authentication = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities());
                SecurityContextHolder.getContext().setAuthentication(authentication);
            }
        }
        filterChain.doFilter(request, response);
    }

Era el espacio en blanco de => "Bearer " <= me estaba causando, que no me reconocia el token, muchas gracias por la ayuda y paciencia.