1 / 25

Chapter 9

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. Objectives . Bagaimana memanggil Bean dari Bean yang lain

eryk
Télécharger la présentation

Chapter 9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 • Mencari homeobject dari bean lain melalui JNDI (Java Naming and Directory Interface) • Memanggil create() di homeobject • Memanggil method business pada objek EJB • Memanggil remove() di homeobject

  5. Memanggil Bean dari Bean yang lain Contoh: // Obtain the DEFAULT JNDI initial context by calling the no // argument constructor Context ctx = newInitialcontext(); // 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 lainEJB 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 • Mengetahui lokasi Resource Factories –menggunakan JNDI, sama dengan mencari EJB home object [gunakan misalnya java:comp/env/jdbc/ejbPool ] • Autentifikasi pengguna ke resource - self-authentication - via deployer

  10. Resource FactoriesContoh 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 PropertiesDeklarasi Environment Properties dalam Deployment Descriptor • [source 9.3]

  13. Environment PropertiesContoh 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 EJBJAAS (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 EJBProsedur Authentication dalam JAAS

  18. Keamanan pada EJBProsedur Authentication dalam JAAS • Client melakukan instantiate login context • Login context melakukan instantiate konfigurasi objek, mekanisme Authentication yang akan digunakan • Login context meminta pada konfigurasi objek mekanisme Authentication yang akan digunakan • Mengembalikan mekanisme Authentication sebagai login modul, bagaimana Authentication dilakukan • Login context instantiate login modul-nya

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

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

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

  22. Keamanan pada EJBAuthorization • 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 • Write the programmatic security logic • Declare the abstract security roles your bean uses • Map abstract roles to actual roles Declarative authorization steps • Declare method permissions • 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 handlesdigunakan 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.

More Related