Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

126
Views
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).

about 4 years ago · Santiago Trujillo
3 answers
Answer question

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.

about 4 years ago · Santiago Trujillo Report

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}").

about 4 years ago · Santiago Trujillo Report

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); } }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!