Berkenalan dengan SLF4J

Simple Logging Facade for Java (SLF4J) adalah sebuah façade atau abstraksi untuk banyak logging framework. Konfigurasi dilakukan saat deployment, slf4j akan mencoba binding ke logging framework yang digunakan memanfaatkan Java ServiceLoader. 

Jika binding tidak ditemukan (tidak ada logging framework lib jar) maka digunakan implementasi default (no-operation). Untuk mengganti binding, cukup dengan mengganti logging framework library (jar) yang digunakan. 

Lanjutkan membaca “Berkenalan dengan SLF4J”

Logging di Java

Java memiliki standard output dan error, yaitu: 

  • System.out 
  • System.err 
  • Exception.printStackTrace() 

Tapi ketiganya memiliki kekurangan: 

  • Selalu “on”, kita tidak bisa kontrol kapan logging tersebut mati atau nyala. 
  • Kita tidak bisa kontrol kemana logging akan ditulis, semuanya ke console. 
  • Kita tidak bisa kontrol isi log berdasarkan dimana aplikasi dijalankan, semuanya akan sama di semua environtment. 
Lanjutkan membaca “Logging di Java”

Attention to Detail!

Kejadian lucu sore ini saat saya bermain dengan OAuth 2 di Spring Security, tepatnya saat mencoba password grant type. Semuanya tampak normal sampai pada saat mencoba get access token, saya mendapat error seperti ini

{
    "error": "server_error",
    "error_description": "Internal Server Error"
}

Dimana stacktracenya adalah

2020-12-14 17:53:46.502  WARN 8132 --- [nio-8080-exec-2] o.s.s.o.provider.endpoint.TokenEndpoint  : Handling error: NestedServletException, Handler dispatch failed; nested exception is java.lang.StackOverflowError
Lanjutkan membaca “Attention to Detail!”

Refresh Token

OAuth 2 tidak memiliki spesifikasi tentang token seperti apa yang digunakan. Token digunakan untuk authentication dan merupakan bagian dari request (sebagai httpp header), oleh karena itu ada resiko keamanan. Bagaimana bila token berhasil diambil? Oleh karena itu token sebaiknya memiliki masa hidup (lifespan).

Bagaimana jika masa hidup token berakhir? Tentu saja kita harus mengulangi langkah yang dilakukan saat meminta access token. Tapi ini aneh karena kita perlu melakukan reauthenticate. Ini akan menjadi bad experience bagi user. Untuk menghindari reauthenticate, authorization server dapat memberikan token khusus, refresh token. Token ini digunakan oleh client saat meminta access token yang baru.

Lanjutkan membaca “Refresh Token”