Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Chapter 9 Adding Functionality to Your Beans [menambahkan fungsi-fungsi pada Bean] Sumber : Ed Roman, Scott Ambler, Tyler Jewell, Mastering Enterprise.

Presentasi serupa


Presentasi berjudul: "Chapter 9 Adding Functionality to Your Beans [menambahkan fungsi-fungsi pada Bean] Sumber : Ed Roman, Scott Ambler, Tyler Jewell, Mastering Enterprise."— Transcript presentasi:

1 Chapter 9 Adding Functionality to Your Beans [menambahkan fungsi-fungsi pada Bean] Sumber : Ed Roman, Scott Ambler, Tyler Jewell, Mastering Enterprise JavaBeans TM 2 nd.

2 Objectives Bagaimana memanggil Bean dari Bean yang lain Bagaimana menggunakan properti environment untuk memodifikasi Bean dan mengaksesnya Bagaimana mengakses resource (seperti JDBC dan JMS) dari sebuah Bean Bagaimana menggunakan model keamanan pada Bean Bagaimana menggunakan EJB object dan EJB home

3 Memanggil Bean dari Bean yang lain Contoh implementasi –Bean teller Bank memanggil sebuah Bean rekening nasabah –Bean konsumen memanggil Bean kartu kredit Contoh implementasi dalam bahasan ini adalah –Mesin harga (Pricer), yang mengkalkulasi harga produk-produk termasuk properti di dalamnya, seperti diskon, pajak, dan ongkos kirim  Pricing bean –Mesin katalog produk (Catalog), yang memberikan informasi produk dari database  Catalog bean Mesin harga memerlukan mesin katalog

4 Memanggil Bean dari Bean yang lain 1.Mencari home object dari bean lain melalui JNDI (Java Naming and Directory Interface) 2.Memanggil create() di home object 3.Memanggil method business pada objek EJB 4.Memanggil remove() di home object

5 Memanggil Bean dari Bean yang lain Contoh: // Obtain the DEFAULT JNDI initial context by calling the no // argument constructor Context ctx = new Initialcontext(); // Look up the home interface Object result = ctx.lookup(“java:comp/env/ejb/CatalogHome”); // Convert the result to the proper type, RMI-IIOP style CatalogHome home= (CatalogHome) javax.rmi.PortableRemoteObject.narrow(result, CatalogHome.class); // Create a Bean Catalog c = home.create(... );

6 Memanggil Bean dari Bean yang lain EJB References Latar belakang: pencarian dalam JNDI tidak selalu berhasil Reference ini menggunakan semacam “nickname” yang merepresentasikan home sebuah bean Representasi ini di-pass ke JNDI

7 Memanggil Bean dari Bean yang lain : EJB References; Membuat EJB References [Source 9.1] Declaring EJB References –Nickname yang digunakan oleh Pricer untuk mencari Catalog, bukan lokasi sebenarnya pada JNDI Local interface vs Remote interface

8 Resource Factories Resource Factories  penyedia sumber daya, misalnya JDBC (Java Database Connectivity), JMS (Java Message Service), JCA (J2EE Connector Architecture) Resource Factories: pengendali yang mengontrol koneksi, misalnya JDBC yang memberikan koneksi database.

9 Resource Factories Menggunakan Resource Factories 1.Mengetahui lokasi Resource Factories –menggunakan JNDI, sama dengan mencari EJB home object [gunakan misalnya java:comp/env/jdbc/ejbPool ] 2.Autentifikasi pengguna ke resource - self-authentication - via deployer

10 Resource Factories Contoh Deklarasi dalam Deployment Descriptor [source 9.2]

11 Environment Properties Bagaimana melakukan customization pada bean? –Customization : Pricing bean memiliki beberapa algoritma penghitungan, maka pengguna Pricing bean dapat memilih salah satunya untuk digunakan Environment properties : properties yang memberikan spesifikasi aplikasi, dibaca oleh bean sewaktu dijalankan Properties ini digunakan untuk customization

12 Environment Properties Deklarasi Environment Properties dalam Deployment Descriptor [source 9.3]

13 Environment Properties Contoh mengakses Environment Properties // 1 : acquire the initial context Context initCtx = new InitialContext(); // 2 : use the initial context to look up the // environment properties // String taxAlgorithm = (String) initCtx.lookup(“java:comp/env/Pricer/algorithm”); // 3 : do what you want with the properties if ( !taxAlgorithm.equals(“NoTaxes”) ) { // add text }

14 Keamanan pada EJB Menambahkan properti keamanan pada enterprise bean Dua parameter keamanan yang harus ada, di mana client harus melewatinya, –Authenticated  memperoleh hak akses –Authorized  memperoleh hak melakukan operasi atau perintah Authenticated, first step, then Authorization Menggunakan JAAS (Java Authentication and Authorization Service)

15 Keamanan pada EJB JAAS ( Java Authentication and Authorization Service) Portable, powerful Dua kemungkinan pengguna JAAS, yaitu Web browser (Web-based application) dan User (standalone application) Web browser melakukan Authentication melalui –Basic Authentication, via password & username –Form-based Authentication, basic authentication yang menggunakan customizable form –Digest Authentication, uses mathematical transformation on username & password –Certificate Authentication, via X.509 certificates

16 JAAS ( Java Authentication and Authorization Service)

17 Keamanan pada EJB Prosedur Authentication dalam JAAS

18 1.Client melakukan instantiate login context 2.Login context melakukan instantiate konfigurasi objek, mekanisme Authentication yang akan digunakan 3.Login context meminta pada konfigurasi objek mekanisme Authentication yang akan digunakan 4.Mengembalikan mekanisme Authentication sebagai login modul, bagaimana Authentication dilakukan 5.Login context instantiate login modul-nya

19 Keamanan pada EJB Prosedur Authentication dalam JAAS 6.Login context menginisialisasi login modul 7.Client mencoba login dengan memanggil method login() pada login context 8.Login context mengirimkan login() kepada login modul, bagaimana Authentication dilakukan 9.Login modul melakukan Authentication melalui pemiliknya (mis. J2EE server) 10.Jika berhasil login modul akan commit(), jika tidak abort()

20 Keamanan pada EJB Prosedur Authentication dalam JAAS 11.Subjek baru dikirim kepada client. Subjek ini adalah sesuatu yang telah authenticated. 12.Client instantiate aksi selanjutnya, misalnya memanggil komponen EJB 13.Subjek diminta melakukan aksi tersebut, via method doAs() 14.Subject menjalankan method run() 15.Aksi dikerjakan; masuk ke tahap Authorization

21 Keamanan pada EJB Contoh Implementasi Kode JAAS Program berikut mencoba authenticate dan memanggil method “HelloWord” pada bean. –HelloClient.java –PasswordConfig.java –PasswordLoginModule.java –CallHelloWord.java

22 Keamanan pada EJB Authorization Diperlukan sebelum bisa memanggil method-method dalam beans Dua cara melakukan authorization : –Programmatic authorization, dicek dalam kode bean –Declarative authorization, container yang melakukan semua pengecekan Security Roles

23 Keamanan pada EJB: Authorization Programmatic authorization steps 1.Write the programmatic security logic 2.Declare the abstract security roles your bean uses 3.Map abstract roles to actual roles Declarative authorization steps 1.Declare method permissions 2.Declare security roles

24 Keamanan pada EJB: Authorization Programmatic or Declarative? Declarative memisahkan bean dari kebijakan (policy) keamanan tertentu, sehingga bean lebih sederhana dan variasi kebijakan (policy). Tetapi EJB belum menyediakan cukup fasilitas untuk itu. Programmatic bisa mencukupi untuk digunakan.

25 Handles Aplikasi EJB kadang meminta pemutusan dan penyambungan kembali koneksi ke Beans. Object handles, proxy untuk objek EJB yang long-live Object handles digunakan dalam koneksi kembali agar informasi atau status tidak hilang atau dapat dilanjutkan kembali Home handles adalah varian dari EJB object handles. Home handles dapat menunjuk ke sebuah home object, dan dapat menggunakannya kembali tanpa mengetahui lokasi JNDI dari home object.


Download ppt "Chapter 9 Adding Functionality to Your Beans [menambahkan fungsi-fungsi pada Bean] Sumber : Ed Roman, Scott Ambler, Tyler Jewell, Mastering Enterprise."

Presentasi serupa


Iklan oleh Google