Proses Auditing dan Autentikasi yang dibuat diimplementasikan pada sebuah website bertemakan forum yang menggunakan Servlet, JSP, dan HTML dan diletakan pada webserver Tomcat. Adapun gambaran tahap filteringnya sebagai berikut :
Gambar 4 : Tahapan Filtering
Pusat dari kerja sistem terletak pada proses Filter untuk Auditing dan Autentikasi. Setelah user melewati proses Autentikasi akan dilanjutkan oleh proses Auditing kemudian proses filter yang lain, di mana pada proses auditing data diambil dan dimasukkan ke dalam database. Kemudian data diolah dan ditampilkan dalam bentuk tabel maupun grafik.
Proses Autentikasi ini berguna untuk melakukan pembatasan hak akses pada halaman–halaman web tertentu yang berada pada webserver Tomcat. Halaman yang dikenai proses Autentikasi tidak hanya berupa halaman dinamis yang menerapkan teknologi Servlet dan JSP saja, tetapi juga dimungkinkan untuk menerapkannya pada halaman statis berupa HTML saja.
Penerapan proses Autentikasi dilakukan dengan membuat sebuah servlet yang mengimplementasikan teknologi filtering dengan nama Authentic.java. Kemudian dilakukan proses konfigurasi pada file web.xml untuk mendaftarkan servlet filter yang kita buat, dan menentukan halaman mana yang akan kita filter dengan menuliskan alamat URLnya. Contoh konfigurasi file web.xml untuk mendaftarkan file Authentic.java sebagai berikut : <web-app> <filter> <filter-name>Authentic</filter-name> <filter-class>Authentic</filter-class> <init-param> <param-name>user</param-name> <param-value>erick</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>22002321</param-value> </init-param> </filter> <filter-mapping> <filter-name>Authentic</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>
File Authentic.java mengambil nilai username dan password dari file web.xml yang dibandingkan dengan masukan dari pengguna, jika benar maka pengguna akan diijinkan untuk mengakses halaman yang difilter. Dalam contoh di atas halaman yang difilter oleh Authentic.java adalah semua halaman yang mempunyai ekstensi .jsp atau semua halaman JSP, dapat dilihat dari tag <url-pattern> pada <filter-mapping>.
Proses Auditing berguna untuk mengambil semua informasi dari pengguna yang mengakses halaman website tertentu. Informasi yang diambil dapat berupa alamat IP komputer pengguna, alamat Host dari pengguna, asal negara pengguna, waktu akses pengguna, tanggal akses pengguna, alamat url dari halaman yang diakses oleh pengguna, informasi browser, dan masih banyak lagi.
Penerapan proses Auditing ini dilakukan dengan membuat sebuah servlet yang mengimplementasikan teknologi filter dengan nama Audit.java, kemudian kita juga harus mendaftarkan file tersebut sebagai filter dalam file web.xml, dan menentukan halaman mana saja yang akan difilter melalui file web.xml atau melaui database. Adapun contoh konfigurasi web.xml untuk Audit.java sebagai berikut:
<web-app> <filter> <filter-name>Audit</filter-name> <filter-class>Audit</filter-class> </filter> <filter-mapping> <filter-name>Audit</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>
Sebenarnya jika kita melakukan filter untuk proses Auditing maka biasanya informasi yang diambil tersimpan pada log file di webserver tomcat. Tetapi pada kasus ini data atau informasi yang didapatkan pada proses auditing disimpan dalam database PostgreSQL sehingga kita dapat mengolah dan memanipulasi data tersebut secara mudah .
Servlet Filter yang lain yang dibuat adalah TimeFilter.java. Servlet ini berfungsi untuk melakukan pembatasan akses pada halaman tertentu berdasarkan waktu yang telah ditetapkan. Misalnya kita dapat melakukan filter pada halaman tertentu agar halaman tersebut hanya dapat diakses pada pukul 6 sore sampai dengan pukul 9 malam, selain pada waktu yang ditentukan halaman tersebut tidak dapat diakses oleh pengguna. Setelah membuat TimeFilter.java kita juga harus mendaftarkan servlet tersebut sebagai filter pada file web.xml. Konfigurasi web.xml nya adalah sebagai berikut:
<web-app> <filter> <filter-name>TimeFilter</filter-name> <filter-class>TimeFilter</filter-class> <init-param> <param-name>starthour</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>stophour</param-name> <param-value>24</param-value> </init-param> </filter> <filter-mapping> <filter-name>TimeFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>
Waktu awal dan akhir yang telah ditentukan nilainya diambil dari file web.xml. Kita dapat merubah nilai dari parameter starthour dan stophour untuk mengganti waktu sesuai yang diinginkan.
b. Implementasi Sistem
Untuk menjalankan aplikasi yang telah dibuat maka kita perlu melakukan instalasi software yang diperlukan, yaitu J2SDK.1.4.1 for Linux, dan Apache Tomcat 4.0 for Linux, untuk menginstal Tomcat diperlukan beberapa modul yang harus diinstal terlebih dahulu, modul-modul ini berbentuk rpm diantaranya ant, Jakarta-commons-beanutils, jakarta-commons-collections, jakarta-commons-digester, jakarta-commons- modeler, jaas, jaf, jdbc-stdext, jndi, jaxp_parser_impl, servletapi4, tyrex setelah semua modul terinstal maka baru kita dapat menginstal modul tomcat4.0 yang juga berbentuk rpm. Secara default tomcat akan diinstal di direktori “/var/tomcat4/" dan direktori kerja kita terletak pada “/var/tomcat4/webapps/ROOT” tempat dimana kita menyimpan semua file servlet dan JSP yang digunakan dalam aplikasi ini.
Pada proses auditing kita membuat sebuah file bernama Audit.java yang akan mengambil informasi dari pengguna yang mengakses halaman yang telah difilter dengan filter Audit.java ini. Informasi yang diambil berupa alamat ip, alamat host, url yang diakses, asal negara, status, informasi browser yang digunakan untuk mengakses dan informasi penting lainnya, dan data-data tersebut akan diproses oleh filter Audit.java untuk kemudian data-data yang diambil disimpan dalam database PostgreSQL.
Data yang ada dalam database dapat ditampilkan dalam bentuk model tabel maupun grafik sesuai dengan kriteria dan range tanggal tertentu. Adapun tampilan untuk menampilkan hasil pemfilterannya sebagai berikut :
Gambar 5 : Tampilan Menu Hasil Auditing
Setelah kita tentukan kategori dan tanggalnya maka akan ditampilkan data yang diambil dari database berupa tabel, misalnya kita memilih kategori alamat host, dan alamat ip dengan range tanggal tertentu, akan tampil tabel sebagai berikut :
Gambar 6 : Tampilan Hasil Proses Auditing dalam Tabel
Selain bentuk tabel seperti diatas data tersebut juga dapat ditampilkan dengan menggunakan bentuk grafik, adapun macam grafik yang dapat ditampikan adalah pie chart, line chart, bar chart, dan column chart. Adapun contoh tampilannya :
Gambar 8 : Tampilan dalam bentuk Bar Chart
Untuk menerapkan proses autentikasi pertama kali dibuat sebuah file bernama AuthenticDb.java dan meregisterkannya pada file web.xml yang akan memfilter halaman yang sudah ditentukan.
Cara kerja filter ini adalah dengan mengambil header dari request pengguna, jika informasi authentic dari headernya masih null maka akan ditampilkan form yang meminta masukan username dan password dari pengguna dan dibandingkan dengan username dan password yang sudah ditentukan untuk halaman tersebut yang disimpan dalam database, jika user name dan password tersebut cocok maka pengguna berhak untuk mengakses halaman yang difilter tetapi jika masukan username dan password dari pengguna salah maka form masukan autentikasi diulang kembali. Contoh tampilan ketika pengguna mengakses halaman yang sudah difilter dapat dilihat dari gambar berikut:
Untuk menentukan url mana saja yang akan difilter dengan filter AuthenticDb.java ini, maka dibuat sebuah tool untuk menyimpan alamat url yang akan difilter beserta dengan user name dan passwordnya dalam database sehingga dapat ditambah dan diganti tanpa harus mengkonfigurasi file web.xml dan merestart web server. Adapun tampilan untuk pengaturan autentikasi sebagai berikut:
Gambar 10 : Tampilan Menu Autentikasi
Dengan menggunakan tool ini administrator dapat menentukan halaman mana saja yang akan difilter menggunakan AuthenticDb.java, serta dapat menentukan user name dan password dari tiap halaman yang difilter. Pada tool ini tersedia fasilitas untuk menambah, menghapus, dan mengganti data.
Untuk melakukan pembatasan waktu akses pada halaman web maka dibuat sebuah servlet bernama
TimeFilterDb.java yang telah diregister di file web.xml sebagai filter yang akan memfilter halaman yang
sudah ditentukan. Cara kerja dari filter ini adalah memproteksi halaman web berdasarkan batasan waktu tertentu yang sudah ditentukan. Jika pengguna mengakses halaman web yang diflter dan batasan waktunya sudah melebihi atau kurang dari yang ditentukan maka akan muncul pesan error dan halaman tersebut tidak dapat diakses. Adapun contohnya sebagai berikut:
Untuk mempermudah administrator dalam menentukan halaman mana saja yang akan difilter menggunakan TimeFilterDb.java ini maka dibuat sebuah tool untuk menyimpan alamat url beserta dengan parameter waktu mulai dan waktu akhir yang disimpan dalam database sehingga bisa ditambah, dihapus dan diubah dengan mudah. Tool ini dibuat dengan menggunakan JSP, adapun fasilitas yang disediakan adalah untuk menambah, menghapus, dan mengubah data tentang url, dan parameter waktunya. Dengan tool ini administrator tidak perlu lagi mengkonfigurasi file web.xml secara manual dan merestart web server untuk memfilter halaman tertentu. Adapun tampilannya sebagai berikut :
Gambar 12 : Tampilan Menu Set Waktu
c. Analisa Sistem
Pada proses autentikasi ketika pengguna mengakses halaman yang sudah di proteksi maka server akan mengambil informasi request yang diberikan pengguna dengan membuat kelas HttpServletRequest, adapun sintaksnya sebagai berikut :
import javax.servlet.*; import javax.servlet.http.*;
public class AuthenticDb implements Filter { ... <kode sebelumnya>
HttpServletRequest myReq = (HttpServletRequest) request; String authString = myReq.getHeader("Authorization"); if (authString == null) {
myResp.addHeader("WWW-Authenticate", "BASIC realm=\"Wong Java\""); myResp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return; }
else {
BASE64Decoder decoder =new BASE64Decoder(); String enString = authString.substring(6);
String decString = new String(decoder.decodeBuffer(enString)); int idx = decString.indexOf(":");
String uid = decString.substring(0, idx); String pwd = decString.substring(idx + 1); ... <kode selanjutnya> }
Setelah informasi request dari pengguna diambil kemudian diambil informasi headernya dengan perintah myReq.getHeader("Authorization") jika menghasilkan nilai null maka akan ditambahkan informasi ke headernya dan status requestnya dirubah menjadi SC_UNAUTHORIZED sehingga muncul tampilan pemasukan username dan password. Setelah itu informasi header dibaca kembali, informasi username dan password dari header sudah disndikan menjadi Base64 kode contohnya “Basic ZXJpY2s6a2FrYQ==” kemudian kode tersebut didecodekan kembali dan informasi username dan passwordnya dibandingkan dengan informasi yang tersimpan dalam database, jika benar maka halaman yang diproteksi akan ditampilkan, jika salah akan kembali ditampilkan form masukan username dan password.
Pada proses auditing ketika pengguna mengakses halaman yang sudah difilter maka informasi pengguna akan diambil dan dimasukan kedalam database dengan cara mengambil request dari pengguna dengan membuat kelas HttpServletRequest kemudian informasi yang diperlukan dapat diambil, adapun source codenya sebagai berikut :
import javax.servlet.http.HttpServletRequest; import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class Audit implements Filter { ... <kode sebelumnya>
HttpServletRequest hreq = (HttpServletRequest)servletRequest; String remoteAddr = hreq.getRemoteAddr(); String remoteHost = hreq.getRemoteHost(); String url = hreq.getRequestURI(); String protokol = hreq.getProtocol(); String method = hreq.getMethod(); ... <kode selanjutnya>
}
Setelah membuat kelas HttpServletRequest maka informasi request dari pengguna dapat diambil, misalnya kita dapat mengambil alamat ip dari pengguna dengan perintah hreq.getRemoteAddr(), setelah informasi yang diperlukan dapat diambil kemudian dimasukan kedalam database agar dapat ditampilkan dan diolah menjadi bentuk tabel maupun grafik.
Aplikasi web yang dihasilkan dan diimplementasikan telah mampu melakukan proses filtering pada proses auditing dan autentikasi secara baik, dengan menggunakan filter pada proses auditing kita dapat mengetahui informasi yang penting dari pengguna yang mengakses web sites, sehingga dapat dilihat statistiknya dalam periode tertentu, dengan filtering kita tidak perlu menambahkan kode program tertentu untuk mengambil informasi tersebut pada setiap halamannya, kita hanya perlu membuat sebuah filter untuk semua halaman. Pada proses autentikasi kita juga tidak perlu membuat kode program tertentu di setiap halaman yang akan diproteksi cukup hanya membuat satu filter untuk semua halaman.
Di samping itu aplikasi ini masih mempunyai kekurangan yaitu tidak dapat memfilter halaman yang tidak berada pada direktori /ROOT/ pada web server Apache Tomcat, jadi kita tidak dapat memfilter halaman PHP yang juga berada pada web server Apache tetapi tidak berada di bawah direktori /ROOT/. Jadi aplikasi filter ini dikhususkan untuk website yang mengimplementasikan teknologi JSP, Servlet dan HTML saja.
KESIMPULAN
Dengan menggunakan teknologi servlet filtering ini kita dapat memanipulasi request sebelum mencapai resource. Sehingga kita dapat mendapatkan informasi yang diperlukan dari pengguna, dan juga dapat memperbaiki masukan dari pengguna sehingga setelah mencapai resource data yang dikirimkan benar- benar valid.
Pada proses auditing kita dapat mengambil informasi yang kita perlukan dari pengguna yang mengakses website. Dengan filter auditing ini kita dapat mengembangkannya ke arah web mining sehingga data yang telah didapat dan disimpan dalam database dapat diolah menjadi data statistik yang lengkap.
Pada proses autentikasi kita dapat memproteksi halaman tertentu sehingga user yang akan mengakses halaman tersebut harus memasukan kata sandi yang tepat untuk dapat mengakses halaman yang dimaksud, dan untuk pengaturannya disediakan fasilitas administrator.
Pada implementasi servlet filtering ini masih memiliki keterbatasan yaitu tidak adanya program yang dapat mengkonfigurasi file web.xml secara otomatis yang dapat membuat servlet filter dan mendefinisikannya lewat program tertentu, tidak secara manual.
Pada proses auditing data-data yang diambil dapat ditambah lagi misalnya untuk mengetahui berapa lama seseorang mengakses halaman tertentu, dan informasi lainnya, pada tampilan grafik juga dapat ditambah dengan model sumbu xy atau model lainnya.
DAFTAR PUSTAKA
1. Budi Kurniawan, Java for the Web with Servlets, JSP, and EJB, New Riders, First Edition 2002. 2. Deitel, Java How To Program. Pretice Hall Ptr, USA, Fifth Edition 2003.
3. Marty Hall, Larry Brown, Core Web Programming. Pretice Hall Ptr, USA, First Edition 2001. 4. Marty Hall, Core Servlet and Java Server Pages, Pretice Hall Ptr, USA, First Edition 2000.
IMPLEMENTASI TEKNOLOGI SINGLE SIGN ON DENGAN STUDI KASUS JURUSAN