[英]How to grant user permission in Policy?
我能夠連接到LDAP服務器並驗證用戶身份。 我還使用了一個如下所示的策略文件:
grant codeBase "file:/C:/Codebase/-",
principal java.security.Principal "john" {
permission java.util.PropertyPermission "user.home", "read";
permission java.util.PropertyPermission "java.home", "read";
permission javax.security.auth.AuthPermission "createLoginContext.TestLdap";
};
如果刪除行principal java.security.Principal "john"
,它將正常工作。 但是,當我指定Principal時,它將通過拋出AccessControlException
停止工作(即使我以“ john”身份登錄)。 我想授予某些用戶特定的特權,例如授予管理員對文件的讀寫權限。 為什么不起作用?
我試圖不使用證書,因為我不希望用戶與任何事物進行交互。
我發現我在閱讀個人信息之前正在以Java代碼注銷(忘記刪除測試的那一部分)。 另外,上面的代碼還有另一個錯誤。 應該是這樣的:
grant codeBase "file:/C:/Codebase/-" {
permission javax.security.auth.AuthPermission "doAsPrivileged";
permission javax.security.auth.AuthPermission "createLoginContext.TestLdap";
};
grant codeBase "file:/C:/Deveop/Codebase2/-",
principal com.sun.security.auth.UserPrincipal "john" {
permission java.util.PropertyPermission "user.home", "read";
permission java.util.PropertyPermission "java.home", "read";
};
另外,請確保調用Subject.doAsPrivileged(Subject subject, PrivilegedAction<Object> action, null)
並將PrivilegedAction
實現為您的操作類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.