EJB - Bảo mật
Bảo mật là mối quan tâm chính của bất kỳ ứng dụng cấp doanh nghiệp nào. Nó bao gồm nhận dạng (các) người dùng hoặc hệ thống đang truy cập ứng dụng. Dựa trên nhận dạng, nó cho phép hoặc từ chối quyền truy cập vào các tài nguyên trong ứng dụng. Vùng chứa EJB quản lý các mối quan tâm về bảo mật tiêu chuẩn hoặc nó có thể được tùy chỉnh để xử lý bất kỳ mối quan tâm cụ thể nào về bảo mật.
Điều khoản bảo mật quan trọng
Authentication - Đây là quá trình đảm bảo rằng người dùng truy cập vào hệ thống hoặc ứng dụng được xác minh là xác thực.
Authorization - Đây là quá trình đảm bảo rằng người dùng đích thực có quyền cấp quyền truy cập tài nguyên hệ thống.
User - Người dùng đại diện cho máy khách hoặc hệ thống truy cập ứng dụng.
User Groups - Người dùng có thể là một phần của nhóm có quyền hạn nhất định Ví dụ nhóm của quản trị viên.
User Roles - Vai trò xác định mức độ quyền hạn, người dùng có hoặc quyền truy cập tài nguyên hệ thống.
Bảo mật được quản lý vùng chứa
EJB 3.0 đã chỉ định các thuộc tính / chú thích bảo mật sau đây mà các vùng chứa EJB triển khai.
DeclareRoles- Cho biết lớp sẽ chấp nhận các vai trò đã khai báo. Các chú thích được áp dụng ở cấp lớp.
RolesAllowed- Chỉ ra rằng một phương thức có thể được truy cập bởi người dùng có vai trò được chỉ định. Có thể được áp dụng ở cấp độ lớp, kết quả là tất cả các phương thức của lớp có thể được truy cập mua người dùng có vai trò được chỉ định.
PermitAll- Chỉ ra rằng một phương pháp kinh doanh có thể truy cập được cho tất cả mọi người. Nó có thể được áp dụng ở cấp độ lớp học cũng như cấp độ phương pháp.
DenyAll - Cho biết rằng một phương thức nghiệp vụ không thể truy cập được đối với bất kỳ người dùng nào được chỉ định ở lớp hoặc ở cấp phương thức.
Thí dụ
package com.tutorialspoint.security.required;
import javax.ejb.*
@Stateless
@DeclareRoles({"student" "librarian"})
public class LibraryBean implements LibraryRemote {
@RolesAllowed({"librarian"})
public void delete(Book book) {
//delete book
}
@PermitAll
public void viewBook(Book book) {
//view book
}
@DenyAll
public void deleteAll() {
//delete all books
}
}
Cấu hình bảo mật
Ánh xạ các vai trò và nhóm người dùng trong tệp cấu hình.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<ejb-jar>
<security-role-mapping>
<role-name>student</role-name>
<group-name>student-group</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>librarian</role-name>
<group-name>librarian-group</group-name>
</security-role-mapping>
<enterprise-beans/>
</ejb-jar>