Spring Boot CORS CrossOrigin Kullanım Uygulama Örneği
Spring Boot Dersleri‘ne devam ediyorum. Spring Boot uygulamamızda CORS desteğini @CrossOrigin anotasyonu kullanarak aktif etmeyi göstereceğim.
CORS kısaca kendi uygulamamızın başka bir uygulamaya bağlanma işleminin yönetilmesidir. Uygulamalar arası haberleşmenin istemci tarafından izin verilmesi gerekmektedir.
Spring Boot uygulamamızda oluşturduğumuz servislerin diğer uygulamalar ile haberleşebilmesi için CORS desteğini açmamız gerekiyor. Bu desteği ise @CrossOrigin anotasyonu ile sağlamaktayız.
Basit bir rest api yapalım ve basit bir front-end uygulaması oluşturup CORS desteğini sağlayınca ne oluyor sağlamayınca ne olmakta inceleyelim.
Uygulamamızın maven bağımlılığı aşağıdaki gibi olacak.
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Code language: HTML, XML (xml)
Merhaba Dünya mesajı verecek bir controller yapalım.
@RestController
public class HelloController {
@GetMapping("/")
public String mesaj(){
return "Merhaba Dünya https://blog.burakkutbay.com";
}
}
Code language: PHP (php)
Spring Boot uygulamamız hazır.
Yaptığımız bu uygulamaya bir Javascript kullanarak istek atalım. Bir hmtl sayfası yapalım.
<!doctype html>
<html lang="tr">
<head>
<title>Spring Boot Cors Uygulama Örneği</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
const Url = 'http://localhost:8080/';
$.get(Url, function (data, status) {
console.log(data);
});
});
</script>
</body>
</html>
Code language: HTML, XML (xml)
Şimdi bu sayfayı açalım ve consol ekranına bakalım.
Aldığımız hata yazının en başında bahsettiğimiz CORS erişim engellemesi. Bu engellemenin ortadan kalkması için gerekli metodun üstüne ya da rest controllerımız üzerine @CorsOrigin anotasyonu ekliyoruz ve Controllerimizin son hali aşağıdaki gibi olacak.
@RestController
public class HelloController {
@CrossOrigin
@GetMapping("/")
public String mesaj(){
return "Merhaba Dünya https://blog.burakkutbay.com";
}
}
Code language: PHP (php)
Tekrar html sayfamızı çalıştıralım ve console ekranına bakalım.
No Comment! Be the first one.