Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

132
Vistas
Las restricciones de origen permitido de CORS no hacen que el servidor rechace las solicitudes

Estoy usando Spring Boot v1.5.1 y parece que mi restricción en el origen de CORS no funciona.

Mi archivo application.properties tiene la siguiente línea ( ref1 ref2 ).

 endpoints.cors.allowed-origins=http://mydomain.io

Mi controlador REST tiene el siguiente aspecto.

 @RestController @CrossOrigin @RequestMapping("/api/car") public class CarCtrl { @Autowired private CarService carService; @GetMapping public Car get() { return carService.getLatest(); } }

Sin embargo, cuando abro un navegador y escribo http://localhost:8080/api/car todavía puedo acceder al punto final REST.

También traté de cambiar mi anotación de la siguiente manera, pero eso no funciona.

 @CrossOrigin("${endpoints.cors.allowed-origins}")

¿Alguna idea sobre lo que estoy haciendo mal?

Tenga en cuenta que no estoy usando WebMvcConfigurerAdapter como esta publicación . ¿Realmente necesito extender esta clase para controlar explícitamente el origen? Pensé que la anotación @CrossOrigin además de la configuración del archivo de propiedades podría controlar los orígenes permitidos (en lugar de tener que hacerlo mediante programación).

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Sin embargo, cuando abro un navegador y escribo http://localhost:8080/api/car todavía puedo acceder al punto final REST.

La configuración de orígenes permitidos de CORS no hace que los servidores bloqueen las solicitudes.

Y debido a que el servidor no bloquea la solicitud, eso no le impide abrir la URL directamente en un navegador.

La política del mismo origen es lo que impone restricciones de origen cruzado, y la política del mismo origen solo se aplica a JavaScript frontend en aplicaciones web que se ejecutan en un navegador web y usan XHR o Fetch o jQuery $.ajax(…) o lo que sea para realizar solicitudes de origen cruzado.

Entonces, CORS no es una forma de hacer que los servidores bloqueen las solicitudes. Y, por lo tanto, tampoco es una forma de evitar que los usuarios puedan navegar directamente a una URL, y no es una forma de evitar que cualquier herramienta que no sea una aplicación web, como curl o Postman o lo que sea, acceda a la URL.

over 4 years ago · Santiago Trujillo Denunciar

0

La especificación explícita del dominio como cadena en @CrossOrigin(" http://mydomain.io ") funcionará. No creo que esto funcione @CrossOrigin("${endpoints.cors.allowed-origins}").

over 4 years ago · Santiago Trujillo Denunciar

0

En cuanto a mí, estoy agregando s CrossRef Filter en mis aplicaciones.

 package com.alexfrndz.filter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.filter.GenericFilterBean; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class SimpleCORSFilter extends GenericFilterBean { /** * The Logger for this class. */ private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) resp; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type"); //response.setHeader("Access-Control-Allow-Credentials", "true"); chain.doFilter(req, resp); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda