JAAS授权策略文件配置报错:期望[option key]却找到[null]
解决JAAS策略文件配置错误
错误原因分析
你遇到的Configuration Error: Line 1: expected [option key], found [null]是因为策略文件语法完全不符合JAAS授权策略规范,核心问题包括:
- grant语句的条件部分误用大括号包裹,且缺失
codeBase、principal等必填关键字 - Principal配置错误,指定的是.java文件路径而非类的全限定名
- 权限的action参数格式错误,多了不必要的引号
- 多余的
"Admin"写法不符合语法规范
修正后的策略文件代码
grant codeBase "file:C:/Program Files/Apache Software Foundation/Tomcat 9.0/webapps/doctor/-", principal com.yourpackage.DaPrincipal "admin" { permission java.io.FilePermission "C:/Program Files/Apache Software Foundation/Tomcat 9.0/webapps/doctor/admin.html", "read,write"; };
关键修正点说明
- codeBase规范:必须用
codeBase关键字指定代码来源,路径末尾加-表示包含该目录下所有文件;若仅针对单个html文件,也可写完整路径 - Principal规范:格式为
principal 全限定类名 "主体标识",需替换com.yourpackage.DaPrincipal为你编译后DaPrincipal类的实际全限定包名,"admin"是该主体的业务标识(可根据需求调整) - 权限配置:
FilePermission目标路径建议用绝对路径避免歧义,action部分合并为"read,write"(单引号包裹,逗号分隔无空格) - 语法结构:grant后的条件用逗号分隔,权限块用大括号包裹,语句结尾必须加分号
内容的提问来源于stack exchange,提问作者Hari haran s
相关产品推荐
相关产品推荐

