如何在 Policy 中授予用户权限?

Posted

技术标签:

【中文标题】如何在 Policy 中授予用户权限?【英文标题】:How to grant user permission in Policy? 【发布时间】:2015-05-06 18:35:56 【问题描述】:

我能够连接到 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”)。我想授予某些用户特定的权限,例如授予管理员对文件的读写权限。为什么它不起作用?

我试图不使用证书,因为我不希望用户与任何东西交互。

【问题讨论】:

【参考方案1】:

我发现在阅读个人信息之前我正在退出 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 实现为您的操作类。

【讨论】:

以上是关于如何在 Policy 中授予用户权限?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 无法授予用户权限,出现错误:ERROR 1819 (HY000): Your password does not meet the current policy requirements

Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限

Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限

如何授予用户对 SQL Server 中数据库的读取权限?

MySQL 查看用户授予的权限

如何在 Keycloak 中授予部分用户部分用户管理权限?