Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

04 Maret 2008

"Mengaktifkan" Multi ROLE pada Jasper Intelegence 1.01

Pada Jasper Intelegence 1.01 sebenarnya sudah support multi ROLE. Di situ kita bisa membuat banyak role dan banya user, serta mengaplikasikan pada hak akses tiap report, folder, input, dll.
Namun ada catatan kecil yang harus diperhatikan. Coba anda membuat role baru di jasper, contoh: "Gudang" dan buat user baru, contoh: "AdminGudang". Pasang role "Gudang" di user "AdminGudang". Sekarang coba login dengan user baru tersebut, anda akan mendapatkan pesan kesalahan:
HTTP Status 403

Kenapa bisa terjadi hal tersebut? Jawabannya, karena defaultnya Jasper Intelegence 1.01 hanya menyediakan tiga role standart yaitu: ROLE_USER, ROLE_ANONYMOUS, dan ROLE_ADMINISTRATOR. Ketiga role tersebut di definisikan di file applicationContext-security.xml

/login.html=ROLE_ANONYMOUS,ROLE_USER
/logout.html=ROLE_ANONYMOUS,ROLE_USER
/loginerror.html=ROLE_ANONYMOUS,ROLE_USER
/home.html=ROLE_USER
/flow.html=ROLE_USER
/loginsuccess.html=ROLE_USER
/listolapviews.html=ROLE_USER
/viewreport.html=ROLE_USER
/fillparams.html=ROLE_USER
/fileview/**=ROLE_USER
/xmla=ROLE_USER
/services/**=ROLE_USER
/service/axisservlet=ROLE_USER
/view-services/**=ROLE_USER
/soapmonitor=ROLE_ADMINISTRATOR
/*.html=ROLE_ADMINISTRATOR
/*.jsp=ROLE_ADMINISTRATOR

Ketika anda login dan jika sukses, maka anda akan mengakses /loginsuccess.html=ROLE_USER dan coba anda lihat, ternyata untuk mengakses halaman tersebut anda harus memiliki ROLE_USER.
Jadi, pada Jasper Intellegence 1.01, setiap user harus mengimplementasikan ROLE_USER, walaupun itu user admin. Sistem role tiap user adalah menggunakan relasi OR, jadi jika suatu report di blok untuk ROLE_USER tetapi allow untuk ROLE_GUDANG, maka user AdminGudang dapat tetap mengakses jika user tersebut mengimplementasikan ROLE_USER dan ROLE_GUDANG

Kita dapat memberikan hak akses pada tiap resource (folder, report, dll) pada level role atau pun pada level user. Sebaiknya, root folder di berikan akses not access untuk ROLE_USER, karena setiap user nantinya mengimplementasikan role tersebut.

Ada masalah lainnya yang mengganjal di jasper intelegence versi ini. Yaitu, adanya menu repository/reports . Menu ini akan menampilkan semua report tanpa foldernya, jadi jika kita sudah set hak akses untuk semua folder, maka hak akses tersebut akan di abaikan karena semua user dapat mengakses menu repository ini. Tidak ada setting untuk membatasi hak ini, satu-satunya cara adalah dengan mengubah JI-menu.xml menjadi:

Jadi nantinya hanya ROLE_ADMINISTRATOR yang dapat mengakses menu /repository/reports

Masalah "kecil" lainnya adalah tidak adanya fungsi ganti password untuk user, sehingga jika user ingin mengganti passwordnya, maka harus menghubungi administrator.

Kabar baiknya, masalah-masalah kecil tersebut sudah di perbaiki di versi terbaru.

Tidak ada komentar: