Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Tengo un error 403 intentar entrar a http://localhost:8080/swagger-ui.html

http://localhost:8080/v3/api-docs no hay problema pero al intentar acceder http://localhost:8080/swagger-ui.html me da un error 403, no se a que se debe si todo esta literalmente como el instructor ademas de tener la misma version porque pense que podia ser eso, adjunto el bloque de codigo donde podria haber incoveniente

return http
                .csrf(csrf -> csrf.disable())
                // Configura la política de creación de sesiones para que sea sin estado (stateless)
                .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                // Configura las reglas de autorización de solicitudes HTTP
                .authorizeHttpRequests(auth -> auth
                        // Permite todas las solicitudes POST a la ruta /login sin autenticación
                        .requestMatchers(HttpMethod.POST, "/login").permitAll()
                        .requestMatchers("/v3/api-docs/**","/swagger-ui.html","/swagger-ui/**").permitAll()
                        // Permite todas las solicitudes GET a las rutas de documentación de Swagger sin autenticación
//                        .requestMatchers(HttpMethod.POST, "/medicos").hasRole("ADMIN")// Requiere rol ADMIN para solicitudes POST a la ruta /medicos
//                        .requestMatchers(HttpMethod.DELETE, "/pacientes").hasRole("ADMIN")// Requiere rol ADMIN para solicitudes DELETE a la ruta /pacientes
                        // Requiere autenticación para cualquier otra solicitud
                        .anyRequest().authenticated())
                .addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)// Agrega el filtro de seguridad personalizado
                // Construye y retorna la cadena de filtros de seguridad configurada
                .build();
1 respuesta

¡Hola Adrian, espero que estés bien!

El error 403 al intentar acceder a http://localhost:8080/swagger-ui.html generalmente está relacionado con la configuración de seguridad de Spring.

Según el código que has compartido, parece que estás utilizando Spring Security para gestionar la autorización de las solicitudes HTTP.

En la configuración de authorizeHttpRequests, debes permitir el acceso a las URLs que mencionas, como /v3/api-docs/** y /swagger-ui.html. Puedes hacerlo utilizando el método requestMatchers sin especificar un método HTTP, ya que quieres liberar todos los métodos utilizando un patrón.

Aquí tienes un ejemplo de cómo podrías modificar la configuración para permitir el acceso a esas URLs:

.authorizeHttpRequests(auth -> auth
    // ... otras configuraciones
    .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
    .antMatchers("/v3/api-docs/**", "/swagger-ui.html", "/swagger-ui/**").permitAll()
    // ... otras configuraciones
)

Después de realizar estos cambios, detén el servidor, reinícialo y verifica si ahora puedes acceder a las URLs sin el error 403.

Espero que esta información te sea de ayuda. ¡Buena suerte con tu proyecto!

Espero haber ayudado y buenos estudios!