2010-03-23 11 views
5

Có bất kỳ triển khai nào khác (ví dụ: trong dự án PMNM) của Java SecurityManager có sẵn trong đó có nhiều tính năng hơn so với một trong JDK không?Các triển khai bảo mật khác có sẵn?

Tôi đang tìm các tính năng như

  • cấu hình khi chạy chính sách
  • updateable khi chạy, đọc từ các nguồn dữ liệu khác hơn là một tập tin security.policy
  • Chủ đề nhận thức, ví dụ các chính sách khác nhau theo Chủ đề
  • Chính sách cấp cao hơn, ví dụ: "Tắt chức năng mạng nhưng cho phép lưu lượng truy cập JDBC"
  • Chính sách được xác định trước phổ biến, ví dụ: "Cho phép truy cập đọc vào các thuộc tính hệ thống thông thường như file.encoding hoặc line.separator, nhưng không cho phép truy cập đọc vào người dùng.home"
  • Theo dõi và ghi nhật ký theo dõi kiểm tra, ví dụ: "Đăng nhập tất cả các truy cập tập tin, đăng nhập tất cả các truy cập mạng sẽ KHÔNG knownhost.example.org"
  • Chặn việc "yêu cầu" một sự cho phép cho đến khi một quản trị viên cấp phép, cho phép các chủ đề/công việc tiếp tục
  • ...

Tôi khá chắc chắn rằng các máy chủ ứng dụng (ít nhất là các máy chủ thương mại) có thực hiện riêng SecurityManager hoặc ít nhất cấu hình chính sách của riêng chúng. Tôi tự hỏi nếu có bất kỳ dự án miễn phí với các yêu cầu tương tự.

+0

Bạn đã từng "tìm" giải pháp chưa? –

+0

Không, tôi đã không thực sự tìm thấy một thư viện phù hợp mà cung cấp một thực hiện tinh vi của một SecurityManager – mhaller

Trả lời

2
  • Động ProtectionDomains (được giới thiệu trong 1.4 IIRC), ủy quyền cho có thể sửa đổi Policy.
  • Xác định quyền theo chủ đề là, erm, phức tạp. Người quản lý bảo mật applet làm điều đó bằng cách ThreadGroup, thường được coi là một điều xấu.
  • Bạn có thể cho phép kết nối với các cổng cụ thể. Tương tự như vậy bạn có thể có một trình điều khiển JDBC đặc quyền mà có lẽ proxy trên một trình điều khiển khác xác nhận các đặc quyền cụ thể thông qua AccessController.doPrivileged.
  • Quyền đối với thuộc tính hệ thống có thể được chỉ định cho từng khóa riêng lẻ.
  • AccessController trong triển khai Sun/Oracle không có tính năng theo dõi.
  • Applet/WebStart sẽ hiển thị hộp thoại, ví dụ như in. Nhưng cách tiếp cận dịch vụ JNLP tốt hơn nhiều.

"Glossitope" đã cố gắng có một hệ thống xuất hiện hộp thoại mỗi lần được yêu cầu. Tất nhiên, yêu cầu không có ý nghĩa với người dùng chỉ muốn nhìn thấy những con lợn nhảy múa. (Glossitope là một nỗ lực ở phiên bản Java của bảng điều khiển phía Vista) Các tính năng được thêm vào 6u10 (cài đặt kéo và thả, cửa sổ không phải hình chữ nhật, biểu tượng cảnh báo thay vì biểu ngữ, dịch vụ JNLP) làm cho nó dư thừa.)

2

Tôi không biết về dự án SecurityManager độc lập. Bất kỳ máy chủ ứng dụng nào (JBoss, Glassfish) sẽ chứa một máy chủ để kiểm soát những gì một ứng dụng đã tải có thể làm.

Dưới đây là một số liên kết tôi tìm thấy trên chủ đề của cán của riêng bạn: