2009-06-18 30 views

Trả lời

2

Từ 1.4 động ProtectionDomain s có thể ủy quyền cho Policy. Tự động xóa quyền từ mã sẽ không có ý nghĩa gì. Hai dạng đối số của AccessController.doPrivileged cũng có thể hữu ích.

+1

Chúng tôi đang phát triển một khung dựa trên OSGi, cần phải chạy dài và tránh khởi động lại càng nhiều càng tốt. Khung làm việc là SAAS, nhưng khách hàng có thể triển khai các gói (plugins) riêng cho hệ thống. Vì vậy, đối với chúng tôi nó sẽ được tốt đẹp để sửa đổi quyền trong thời gian chạy. –

2

Javadoc nói rằng Policy.refresh() cho chính sách dựa trên tệp sẽ đọc lại tệp. Do đó, có thể sửa đổi chính sách toàn hệ thống khi chạy bằng cách chỉnh sửa tệp chính sách và sau đó gọi Policy.refresh()

+2

Bạn sẽ thấy rằng các quyền đã được sao chép ra khỏi Chính sách và vào trong ProtectionDomains của Lớp và Lớp tải. –

+2

Điều này đã làm việc tốt cho tôi khi thiết lập chính sách thông qua '' System.setProperty ("java.security.policy", policyURL) '', sau đó làm mới '' Policy.policy.refresh() '' và sau đó cài đặt trình quản lý bảo mật '' System.setSecurityManager (new SecurityManager()); ''. – BenR

2

Có thể đặt triển khai Chính sách tùy chỉnh, sử dụng phương thức Policy.setPolicy(). Ví dụ: xem JAAS in Action cuốn sách.

Các vấn đề liên quan