You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JAAS授权:如何编写区分admin与clients的访问控制策略文件

JAAS权限控制方案及KerberosPrincipal解析

一、自定义角色的策略文件实现

针对你需要的admin和clients角色权限隔离,以下是适配的JAAS策略文件:

// 授权admin角色访问其专属文件
grant Principal javax.security.auth.Subject$Principal "admin" {
    permission java.io.FilePermission "${user.dir}/admin.java", "read,execute";
    permission java.io.FilePermission "${user.dir}/adminfunctions.java", "read,execute";
};

// 授权clients角色访问其专属文件
grant Principal javax.security.auth.Subject$Principal "clients" {
    permission java.io.FilePermission "${user.dir}/clientservlet.java", "read,execute";
    permission java.io.FilePermission "${user.dir}/reserve.java", "read,execute";
};

注意事项:

  • ${user.dir}会自动解析为当前程序运行的工作目录,若文件在固定路径,直接替换为绝对路径(如/usr/local/app/classes/admin.java)
  • 权限字段read,execute可按需调整,若不需要写入权限可移除write

二、KerberosPrincipal详解

1. 核心作用

javax.security.auth.kerberos.KerberosPrincipal是JAAS为Kerberos认证协议提供的专用Principal实现,仅用于基于Kerberos的企业级认证场景(比如域账号登录),用来标识通过Kerberos票据验证的用户或服务主体。

2. 示例占位符说明

示例中的your_user_name@your_realm:

  • your_user_name:Kerberos体系下的合法用户名(比如公司域账号john_doe)
  • your_realm:Kerberos的领域名称,通常是大写的域名(比如COMPANY.COM)

但你的场景是自定义的admin/clients角色,完全不需要依赖Kerberos,直接使用通用的Subject$Principal即可,避免引入不必要的Kerberos依赖。


内容的提问来源于stack exchange,提问作者hariharan baskaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:33:24