0
我設計一個JAAS認證和授權application.In認證部分,由用戶輸入的用戶名和密碼對從database.There檢索的值對每個用戶三位校長匹配的是(用戶名,密碼,位置)。成功驗證後,主體將被添加到主題。此部分工作正常。訪問JAAS授權否認
問題出在授權部分(當我設置SecurityManager時),根據授予的職位(經理或員工)的權限。
策略文件是
grant codebase "/home/esamsar/NetBeansProjects/JAAS/*"
{
permission javax.security.auth.AuthPermission "createLoginContext.Sample";
permission javax.security.auth.AuthPermission "doAsPrivileged";
}
grant Principal PositionPrincipal "manager"
{
permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "user.home", "read,write";
permission java.io.FilePermission "topsecurity.txt", "read";
};
grant Principal PositionPrincipal "employee"
{
permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "user.home", "read,write";
};
在添加以下代碼行我遇到「無法創建LoginContext的。拒絕訪問(」 java.util.PropertyPermission」‘java.security.auth.login.config’ 「寫」)」
System.setSecurityManager(new SecurityManager());
System.setProperty("java.security.auth.login.config", configFile);
System.setProperty("java.security.policy", policyFile);
CONFIGFILE和policyFile分別JAAS配置文件和政策文件。 我可以在策略文件中添加什麼來解決該問題。提前感謝。
當我設置的系統屬性後,設置安全管理器,後來我遇到一個不同的錯誤「無法創建LoginContext.access denied(」java.util.PropertyPermission「」user.dir「」read「)」System.setProperty(「java.security.auth.login.config」,path); System.setProperty(「java.security.policy」,policy); System.setSecurityManager(新的SecurityManager()); –
我已經在策略文件中授予了更多權限,現在沒有任何錯誤。我正在使用JDBC連接數據庫。我還沒有授予SQLPermission。將應用程序連接到數據庫的代碼將在沒有任何SecurityException的情況下以靜默方式跳過。 –