Đề tài Enterprice Java Bean (EJB)

Mục Lục

Bảng phân chia công việc nhóm . 5

I. Message Driven Bean . 6

1.1. Một số khái niệm liên quan . 6

1.1.1. Message . 6

1.1.2. Đồng bộ và bất đồng bộ . 6

1.1.3. Hệ thống EMS – Enterprise Message System . 7

1.1.4. Hệ thống JMS - Java Message Service (Producer) . 7

1.2. Message Driven Bean (Consumer) .11

1.2.1. Giới thiệu .11

1.2.2. Chu kỳ của Message Driven Bean .12

1.2.3. Consumer cho Topic Destination .13

1.2.4. Consumer cho Queue Destination .14

1.2.5. Producer cho Topic Destination .14

1.2.6. Producer cho Queue Destination .16

II. JAVA PERSISTENCE API .17

2.1. JDBC và ORM .17

2.1.1. JDBC là gì? .17

2.1.2. ORM là gì? .17

2.2. JPA là gì? .18

2.3. Entity .19

2.3.2. Entity .19

2.4. Persistence Context.24

2.5. Entity Manager .25

2.5.1. Thao tác với Entity .25

2.5.2. Persistence Unit .27

2.6. Java Persistence Query Language .27

2.6.1. JPQL là gì .27

2.6.2. Cấu trúc truy vấn JPQL .28

2.6.3. Các kiểu query .30

III. Transaction trong EJB .34

3.1. Transactions .34

3.2. Container – managed transaction .34

3.2.1. Khái niệm .34

3.2.2. Transaction attribute .36

3.2.3. Thiết lập transaction attribute .38

3.3. Bean – managed transaction .40

3.3.1. Khái niệm .40

4 | T r a n g

3.3.2. Các method hỗ trợ .41

3.3.3. Thiết lập transaction timeout với bean – managed transaction .41

3.4. Xử lý exception .42

3.4.1. Trường hợp EJB với bean – managed transaction .42

3.4.2. Trường hợp EJB với container – managed transaction .42

IV. EJB Security .43

4.1. Các khái niệm cơ bản .44

4.1.1. Tổng quan .44

4.1.2. Các cơ chế áp dụng trong Security .44

4.2. Mô hình J2EE Security .45

4.3. JAAS Framework .46

4.4. Security trên EJB .50

V. Tài liệu tham khảo .53

pdf53 trang | Chuyên mục: Xử Lý Phân Bố | Chia sẻ: dkS00TYs | Lượt xem: 2170 | Lượt tải: 4download
Tóm tắt nội dung Đề tài Enterprice Java Bean (EJB), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ay thành phần Web module truy cập 
middleware qua browser), Middleware – application server (chứa các Web 
Container xử lý Web và EJB Container xử lý các nghiệp vụ của ứng dụng) và 
CSDL (dùng để chứa và xử lý các dữ liệu). 
Client truy cập vào middleware phải được xác thực để truy cập vào container 
tuân theo qui luật của từng container. 
46 | T r a n g 
Trên middleware, các thành phần container thực hiện cơ chế xác thực để truy 
cập lẫn nhau đảm bảo ứng dụng có tính bảo mật cao. 
Middleware trong quá trình xử lý phải thực hiện truy cập vào CSDL với sự 
xác thực của CSDL và quyền hạn thao tác trên CSDL để lấy dữ liệu về xử lý 
Cơ chế bảo mật trong J2EE đảm bảo cho ứng dụng có tính bảo mật cao nhất. 
Mô hình J2EE Sercurity 
4.3. JAAS Framework 
Java Authentication and Authorization Services (JAAS) là framework cung 
cấp Authencation và Authorizaion cho các ứng dụng của Java. 
Cơ chế bảo mật trong JAAS 
- Xác định tài nguyên – resources cần bảo mật 
- Xác định provider phù hợp cho tài nguyên cần bảo mật. 
- Dùng các phương thức security của provider trên resources để thực hiện bảo 
mật. 
- Cung cấp các cơ chế để với client sử dụng tài nguyên đã được bảo mật. 
Một số cách thức bảo mật 
Basic Authentication 
Client 
Authorization 
Databas
e 
Authentication/ 
Authorization 
Servlets 
JSPs Browse
r 
Web 
Authentiaction 
Server 
Web Container 
Sercurity 
47 | T r a n g 
- Sử dụng cơ chế người dùng muốn truy cập client phải nhập username và 
password thông qua cửa số popup sercurity được hỗ trợ từ cửa sổ web 
browser. 
- Nếu xác thực đúng người dùng sẽ truy cập Web, ngược lại browser sẽ hiển 
thị trang web không tồn tại hay không load được trang web này. 
Form-based Authentication 
- Tương tự như cơ chế Basic authentication nhưng developers thực hiện tạo 
các form của web (html, jsp …) với các control để tiếp nhận username và 
password để đón nhận giá trị nhập của người dùng và thực hiện xác thực (có 
thể bằng code hay container hỗ trợ). 
Digest Authentication 
- Hệ thống yêu cầu thông tin xác thực 
- Client cung cấp thông tin để chuyển tới server 
- Server xác định thông tin, nếu đúng, sẽ tạo token chứa các thông tin mã hóa 
và gửi cho client 
- Client nhận được token phải dùng các cách giải mã tương ứng, nếu thực hiện 
được, thông tin sẽ gửi lại server và client được phép truy cập hệ thống 
- Bất kỳ giai đoạn nào có lỗi phát sinh thì việc authentication được coi là không 
hiệu lực. 
- Cơ chế có tính bảo mật cao vì thông tin đã được mã hóa 
Certificate based Authentication 
- Sử dụng dạng xác thực của một trung tâm chứng thực có uy tín để xác thực 
- Dữ liệu được mã hóa và truyền đi trên kênh đặc biệt và được server xác thực, 
nếu kênh này không được mở thì dữ liệu sẽ không bao giờ đến được server 
- Áp dụng SSL hay HTTPS 
- Các thành phần của JAAS 
- Login module: thực hiện cơ chế authentication và authorization qua việc xác 
thực username hay password. Đối tượng tương tác trực tiếp với client. 
- Login context: client sử dụng đối tượng này để cung cấp thông tin trong quá 
trình login 
48 | T r a n g 
- CallbackHandler và Callback: 
 Hỗ trợ tương tác giữa client và Login module. 
 Loginmodule dùng Callback để lấy thông tin của Client và 
CallbackHander sẽ cung cấp các thông tin cho Loginmodule. 
- Principal and Group: class để Login module chứa thông tin của 
authentication (Principal) và authorization (group) 
- Subject: đối tượng chứa các thông tin liên quan đến client sau khi login thành 
công để sử dụng cho authentication. 
- Một số đối tượng khác: 
 Principal: thông tin xác định đối tượng (ví dụ: username) 
 Credenticals: thông tin cung cấp thuộc tính liên quan đến đối tượng được 
bảo mật (ví dụ: password) 
Cơ chế thực hiện Authentication: client truy cập resource bảo mật trên Server 
có các bước xử lý như sau: 
- Client gửi các thông tin có liên quan đến việc login đến CallbackHandler (ví 
dụ: username, password) để thực hiện khởi tạo và lưu trữ giá trị để sử dụng 
trong các bước tiếp theo. 
- CallbackHandler đưa thông tin đến Login Context để khởi tạo cho quá trình 
thực hiện authentication 
- Login Context thực hiện tạo instance LoginModule, thông báo cho Login 
Context và Login Context đưa đối tượng cho Client (tương tự như cơ chế 
client truy cập EJB thông quan EJBObject) 
- Client gọi phương thức Login trên đối tượng Login Module 
- Login module yêu cầu thông tin xác thực từ CallbackHandle để lấy thông tin 
mà client đã cung cấp trong quá trình khởi tạo. 
- Login module thực hiện xử lý xác thực. Nếu xác thực sai, sẽ đưa ra exception 
còn đúng sẽ thông báo cho user. 
- Việc xác thực thành công, thông tin của client sẽ được lưu trữ trong đối tượng 
Subject thông qua Login Context. 
49 | T r a n g 
Cơ chế thực hiện authorization: Client hay user truy cập các phương thức trên 
Server. Thông tin của user trong Subject được cung cấp để xác định role tương 
ứng. Nếu không được truy cập sẽ thông báo lỗi, ngược lại gọi phương thức thực 
thi 
Có 02 cách thức để thực hiện authorization: 
Declarative: 
- Không cần lập trình mà chỉ mô tả thông tin qua deployment descriptor. 
- Deployment descriptor mô tả và thông báo cho container các roles về security 
và security constraints để client truy cập các phương thức phải tuân theo qui 
tắc bảo mật. Đặc biệt container sẽ hỗ trợ cơ chế security cho các ứng dụng 
được deploy vào container 
- Cấu hình security cho ứng dụng EJB deploy trên server Jboss. 
Programmatic: 
- Lập trình bảo mật trực tiếp trong Bean 
- Các phương thức xử lý business sẽ được tích hợp với các kiểm tra bảo mật 
- Có khả năng kết hợp với declarative để tăng tính uyển chuyển trong việc vận 
dụng bảo mật 
Việc xác thực và phân quyền của JAAS trên mô hình J2EE/JavaEE được 
container kiểm tra trên ACL – Access Control List 
50 | T r a n g 
- ACL là một tập tin tài nguyên chứa đựng thông tin liên quan đến quyền xác 
thực và nhóm user được phân quyền 
- Khi có một request gửi đến server thì lời yêu cầu bắt buộc được container 
kiểm tra trên ACL, nếu như tồn tại thành viên sẽ tiếp tục kiểm tra quyền để 
thành viên được cấp quyền truy cập tài nguyên hay bị từ chối không có phép 
truy cập 
4.4. Security trên EJB 
Login module trong JBoss được thể hiện qua security domain với JNDI có cú 
pháp java:/jaas/. JBoss đã hỗ trợ sẵn một domain mặc định là others 
JBoss cung cấp UserRolesLoginModule nhằm lấy username, password và role từ 
tập tin ACL, cụ thể ACL được thể hiện qua các tập tin properties trong ejb package 
users.properties: Chứa các username và password theo từng hàng một với dạng 
username=password (lưu ý: không có khoảng cách trong các thành phần khai báo) 
Ví dụ: users.properties 
 admin=123456 
 guest=123456 
roles.properties: Chứa nội dung phân quyền cho các user, thông tin được lưu trữ 
thành từng hàng có dạng username=roles[, role2][,…][, rolen] (lưu ý: tên username 
phải tồn tại trong tập tin users.property và các role có thể có nhiều hơn 1 và cách 
nhau bằng dấu phẩy). 
Ví dụ: roles.properties 
admin=admin,manager 
guest=user 
51 | T r a n g 
 Các bước xây dựng ứng dụng EJB có áp dụng Security 
Bước 1: Tạo đối tượng ứng dụng hỗ trợ EJB 
Bước 2: cấu hình LoginModule với các file properties đặt tại thư mục của application 
 users.properties 
 roles.properties 
Bước 3: bổ sung cấu hình security các tập tin deployment descriptor các thành phần 
element hỗ trợ khai báo security. 
Bổ sung việc xác định domain trong tập tin jboss.xml 
java:/jaas/tên domain 
.... 
Bổ sung các thành phần resource, phương thực cần hỗ trợ security trong tập tin ejb-
jar.xml 
.... 
tên role trong file roles</security-
role> 
các security role khác 
 tên role trong file roles 
tên ejb 
tên method 
loại dữ liệu 
… 
52 | T r a n g 
Cấu hình nhiều hơn một phương thức, để cấu hình toàn bộ phương thức dùng 
dấu * 
... 
Bước 4: xây dựng client truy cập vào ứng dụng thông qua các xác thực 
Đối với ứng dụng web – bổ sung cấu ứng authentication và authorization trên tập tin 
web.xml 
 (xác định tài nguyên được security) 
tên resource 
/* hay tên tài nguyên/thư mục 
HEAD (xác định các phương thức HTTP được 
security) 
GET 
PUT 
POST 
DELETE 
 (xác định các roles được phép truy cập tài nguyên) 
tên role – tồn tại trong file roles 
các role khác 
 (xác định cơ chế mã hóa dữ liệu để truyền đi) 
NONE|INTEGRITY|CONFIDENTIAL</transport-
guarantee> (NONE: không mã hóa; INTEGRITY: mã hóa; CONFIDENTIAL: mã hóa và 
truyền kênh riêng) 
 (xác định cơ chế authentication) 
BASIC|FORM|DIGEST 
 (xác định các roles được security để truy cập ứng dụng) 
tên role 
53 | T r a n g 
các security role khác 
Bước 5: Đóng gói ứng dụng, deploy và testing ứng dụng 
Một số thông tin hay phương thức hỗ trợ xử lý security trong Bean của EJB 
EJB Context là gateway đến container và có khả năng truy cập từ bên trong bean. Do 
vậy, các phương thức callbacks hoạt động trên EJB Context để tương tác với container 
một cách dễ dàng. 
EJB Context sử dụng javax.ejb.EJBContext với các chức năng hỗ trợ 
Methods Mô tả 
getHome() Sử dụng để lấy đối tượng Home Object. 
getCallerPrincipal() 
Sử dụng để lấy định danh bảo mật của client đang truy 
cập vào hệ thống để có thể xác định vai trò của client 
trong việc truy cập các chức năng của EJB 
isCallerInRole(String role) Xác định client có được phân quyền – role hay không 
setRollbackOnly() 
Thiết lập chế độ rollback trong transaction hiện hành 
cho instance bean 
getRollbackOnly() 
Xác định xem transaction có được đánh dấu rollback 
không 
getUserTransaction() Lập trình để thực hiện điều khiển transaction 
Session – Entity Context Interface được extends từ EJBContext, do vậy, session bean có 
thể truy cập tất cả các phương thức của EJBContext. 
V. Tài liệu tham khảo 
1)  
2)  
3)  
4)  
5)  
6)  
7) sách Manning - EJB 3 in Action, Debu Panda - Reza Rahman - Derek Lane 

File đính kèm:

  • pdfĐề tài Enterprice Java Bean (EJB).pdf
Tài liệu liên quan