Giriş
Bu projeler maintenance moda alındılar. Dolayısıyla spring dokümantasyonunda
"No Authorization Server Support" deniliyor. Yani gidin gerçek bir Authorization Server sağlayıcısı kullanın deniliyor.
Maven
Şu satırı dahil ederiz.
- spring-boot-starter-web REST çağrılarına cevap vermek için lazım.
- spring-security-jwt bir JWT token dönmek için lazım
- spring-security-oauth2-autoconfigure otomatik konfigürasyon için lazım
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-jwt</artifactId><version>1.1.1.RELEASE</version></dependency><dependency><groupId>org.springframework.security.oauth.boot</groupId><artifactId>spring-security-oauth2-autoconfigure</artifactId><version>2.4.0</version></dependency>
1. Basit Kullanım - Client Credentials Grant
Client Credentials Grant (yani kullanıcı adı ve şifre ile token alma) için OAuth2 Grant Tipleri yazısına bakabilirsiniz.
Bu anotasyon şu adrese hizmet veriyor
localhost:8080/oauth/token?grant_type=client_credential&...
Postman ile token isterken şöyle yaparız
- Authorization sekmesinde Basic Auth seçilir. Username Password alanları doldurulur- Body sekmesinde x-www-formurl-encoded seçilir. Key olarak grant_type ve Value olarak client_credentials seçilir
veya şöyle yaparız
- Authorization sekmesinde Basic Auth seçilir. Username Password alanları doldurulur- URL olarak "localhost:8080/oauth/token?grant_type=client_credentials&scope=any" kullanılır
Basit kullanımda client bilgisi application.properties dosyasına giriliyor.
Örnek
Şöyle yaparız
@EnableAuthorizationServer@SpringBootApplicationpublic class SpringAuthorizationServerApplication {public static void main(String[] args) {SpringApplication.run(SpringAuthorizationServerApplication.class, args);}}
applicaton.yml dosyasına şöyle yaparız. Burada tek bir client tanımlanabiliyor.
security:oauth2:client:client-id: clientIdclient-secret: very-strong-secret
2. AuthorizationServerConfigurerAdapter İle Kullanım
Bu kullanımda "Authorization Code Grant" gerçekleştiriliyor. Yani önce
1. Authorization Request isteği Resource Owner'a gönderiliyor. O da Authorization Grant dönüyor.
2. Bu Authorization Grant ile Authorization Server'a gideriz. O da bir Access Token döner
AuthorizationServerConfigurerAdapter yazısına taşıdım
Hiç yorum yok:
Yorum Gönder