Wednesday, June 15, 2016

Teori Implementasi JWT pada Spring Security

Bagaimana mengimplementasi JWT menggunakan Spring Security?


Setelah mempelajari JWT pada blog, saya mencoba untuk mengimplementasikan JWT menggunakan Spring Security. Google sana-sini, akhirnya berhasil juga. :)

Secara umum teori untuk dapat mengimplementasikan JWT pada Spring Security, kita memerlukan modul-modul :
  • spring-security-oauth2
  • <dependency>
       <groupId>org.springframework.security.oauth</groupId>
       <artifactId>spring-security-oauth2</artifactId>
       <version>2.0.9.RELEASE</version>
    </dependency>
  • spring-security-jwt
  • <dependency<
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-jwt</artifactId>
       <version>1.0.4.RELEASE</version>
    </dependency>

Sedangkan untuk konfigurasi Authorization Server, minimal kita harus mengimplementasi interface berikut :
  • org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurer
  • Interface ini berguna untuk mengkonfigurasi dan mendefinisikan bean-bean yang dibutuhkan sebagai Authorization Server untuk meng-authentikasi Client Detail seperti :
    • AuthenticationManager
    • PasswordEncoder
    • ClientDetailsService
    • TokenStore
    • TokenEnhancer
    • AccessTokenConverter
    • dll
  • org.springframework.security.oauth2.provider.ClientDetailsService
  • Interface ini berguna untuk mendefinisikan Client Detail yang digunakan untuk Authorization Server.
  • org.springframework.security.core.userdetails.UserDetailsService
  • Interface ini berguna untuk mendefinisikan User yang digunakan untuk Authorization Server.
  • org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
  • Interface ini berguna untuk mengkonfigurasi dan mendefinisikan bean-bean yang dibutuhkan sebagai Authorization Server untuk meng-authentikasi User seperti :
    • AuthenticationManager
    • PasswordEncoder
    • UserDetailsService
    • HttpSecurity
    • dll

Apabila ingin menjadikan sebagai Resource Server, maka perlu mengimplementasi interface :
  • org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurer
  • Interface ini berguna untuk mengkonfigurasi dan mendefinisikan bean-bean yang dibutuhkan sebagai Resource Server untuk meng-authentikasi User seperti :
    • TokenStore
    • AccessTokenConverter
    • HttpSecurity
    • dll

Sekian sharing tentang JWT + Spring Security, pada blog selanjutnya saya akan share implementasi(source code) JWT pada Spring Security. Semoga bermanfaat. :)

No comments:

Post a Comment