Session Filter di Tomcat 5.5
Saat itu waktu sudah menunjukkan jam 19 lewat sekian dan saat itu pula aku masih stay di offis untuk ngurusin yg namanya user management pada sebuah aplikasi Content Provider. Schema sudah ada, prototype sudah disiapkan, business flow sudah pernah dibahas sebelumnya, tapi sekarang masalah security, antara Authentication dan Authorization. Aplikasi yang didevelop memakai teknologi struts v.1.3 sebagai frontend nya dengan iBatis untuk level persistence. Cuman diantara kedua layer itu ga dikasih jembatan EJB. Ini langsung maen tembak dari struts Action ke Business Object. Baru dari Business Object langsung nembak ke DAO.
Terbayang dibenakku, hendak memakai framework Acegi. Tapi koq sepertinya ga sebanding dengan aplikasi yang dikembangkan. Soalnya, yg dibutuhkan cuman security untuk user login dengan hak akses berdasar role yg dimiliki setiap user. Saya cuman butuh URL filter, user session, dan hak akses. Ga sampai pada security method ataupun class. Jadi saya rasa ga butuh Acegi.
Untuk URL Filter, tinggal dibuat session filter yg dimapping pada sebuah class.
Untuk user session, tinggal membuat session sesaat setelah user berhasil login.
Untuk hak akses, dibuat dengan cara sederhana, maen if-then-else di file menu.jsp. Jika user yg login punya hak akses pada screen yg bersangkutan maka link pada menu itu ditampakkan dan seandainya ga punya role, yaa link nya ga ditunyukkan.
Masalah baru muncul tatkala session filter yg saya buat, ternyata belum bisa jalan di Tomcat 5.5 dengan JDK1.4.2. Session filter itu running cukup baik di tomcat 6 dengan jdk1.5. Kenapa yaa..apa yg terjadi? Koq bisa begitu?
Java2 Platforms, Enterprise Edition (J2EE)
Untuk bisa memahami tentang Java2 Platforms, Enterprise Edition (J2EE), pertama-tama kita pahami dulu apa arti J2EE dan layanan apa saja yang disediakan olehnya.
Java2 Platforms, Enterprise Edition (J2EE) adalah kumpulan dari berbagai macam Application Programmable Interface (API) yang didesain untuk mengembangkan system enterprise berbasis teknologi java. Sebetulnya, J2EE itu bukanlah single produk ataupun single komponen tetapi ia mendefinisikan hubungan antara berbagai macam teknologi dan menyediakan framework bagi pengembangan sistem enterprise.
Lalu apakah enterprise system itu?
Enterprise system adalah system yang sangat besar atau katakanlah berskala besar (large scale), menerapkan sistem komputasi terdistribusi (distributed computing) pada platform yang berbeda-beda (multiplatform).
Enterprise sistem ini bersifat accessibility (bisa diakses oleh banyak user dari lokasi yang berbeda-beda dimana saja ia berada di muka bumi ini), availability (dapat diakses oleh banyak user dalam waktu yang bersamaan tanpa terjadi penurunan performa). Selain itu, sistem enterprise harus bisa memberi jaminan keamanan (security granted), memiliki integritas (integrity) dengan kapasitas kemampuan yang teruji serta bersifat interaktif terhadap user (response time).
Beberapa bagian dari sistem enterprise ini bisa berupa sistem lama yang sudah ada pada platform yang lebih tua (legacy system) sebelum aplikasi baru muncul. Nah, sistem-sistem yang sudah ketinggalan seperti ini sedapat mungkin digunakan lagi untuk mengembangkan sistem yang lebih baru. Hal ini dimungkinkan karena J2EE sifatnya reusable komponen ataupun objek. Manfaatnya adalah bisa mengurangi biaya dan waktu pengembangan.
Apa yang akan dilakukan oleh J2EE? Dari berbagai macam sistem yang sifatnya heterogen akan dikombinasikan oleh J2EE kedalam sebuah struktur tunggal (single structure) termasuk didalamnya adalah komponen dan fasilitas yang disediakan oleh sistem-sistem tersebut.
J2EE yang digunkan untuk membangun aplikasi client-server yang bersifat multitier ini, mendukung beberapa hal berikut ini :
- Komunikasi terdistribusi, menggunakan Remote Method Invocation (RMI), interoperability dengan CORBA melalui Internet Inter-ORB Protokol (IIOP), dan interface dengan Java Naming and Directory Interface (JNDI).
- Aplikasi berbasis web, yang biasanya dengan Servlet, JSP, JSF, maupun JSTL yang mendukung XML.
- Pemrosesan database dan transaksi dengan Java Database Connectivity (JDBC), Java Transaction API (JTA), dan layanan untuk transaksi terdistribusi.
- Manajemen, control, persistence, dan security dari objek teknologi java dalan lingkungan terdistribusi.
- Komunikasi secara asynchronous antar objek – Java Messaging Service (JMS) dan JavaMailTM.