如何在策略中授予用户权限?
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
作为您的操作 class。
我能够连接到 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
作为您的操作 class。