Tôi cần gọi một số mã Java bán đáng tin cậy và muốn vô hiệu khả năng sử dụng phản chiếu trong suốt thời gian thực thi mã đó.Tắt phản chiếu Java cho chủ đề hiện tại
try{
// disable reflection somehow
someObject.method();
}
finally{
// enable reflection again
}
Điều này có thể được thực hiện với Quản lý bảo mật không và nếu có thì làm cách nào?
Làm rõ/Bối cảnh: Đây là phần tiếp theo để another question giới hạn các gói có thể được gọi từ JavaScript/Rhino. Câu trả lời được chấp nhận tham chiếu đến một mục blog về cách thực hiện điều đó và nó đòi hỏi hai bước, cái đầu tiên sử dụng API Rhino (ClassShutter), thứ hai tắt tính năng phản chiếu và Class.forName(). Tôi đã nghĩ rằng tôi có thể thực hiện bước thứ hai đó một cách rõ ràng hơn bằng cách sử dụng SecurityManager (tìm hiểu về SecurityManager, như đã được chỉ ra, là một con thú phức tạp, trên đường đi).
Để tổng hợp, tôi muốn (từ mã, không đặt tệp) để tắt Class.forName() và mọi quyền truy cập vào toàn bộ gói phản chiếu.
im không chắc chắn về cách SecurityManager hoạt động, nhưng hãy kiểm tra câu hỏi này: [http : //stackoverflow.com/questions/762459/how-to-disable-java-security-manager] (http://stackoverflow.com/questions/762459/how-to-disable-java-security-manager) –