解决了!
感谢以下关于如何在 JBoss EAP 6.4 上介绍安全管理器的文章。
问题是必须在 JBoss 中配置安全管理器。您需要打开standalone.conf(或standalone.conf.bat),取消注释并添加以下内容:
rem # Uncomment this to run with a security manager enabled
set "SECMGR=true"
rem # Using == when setting -Djava.security.policy specifies that the security manager
rem # will use only the specified policy file. Using = specifies that the security
rem # manager will use the specified policy combined with the policy set in the policy.url
rem # section of JAVA_HOME/lib/security/java.security.
set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.policy==%JBOSS_HOME%\bin\server.policy"
这将启用安全管理器并使其指向自定义 server.policy,我有以下示例:
grant {
permission java.security.AllPermission;
};
这将授予任何模块操作的所有权限。当然,如果您想加强安全性,您需要编辑策略文件。
检索Subject
也很容易:
Subject.getSubject(AccessController.getContext());
就是这样!我希望它也对你们有用。