我正在 Java EE 6 中构建一个 Web 应用程序,该应用程序部署到 JBoss AS 7.1
我在 beans 级别(使用 @RolesAllowed({ "useradmin", "usernormal" })
注释)和前端级别(保护 web.xml 中的 xthtm 页面)使用安全性。
身份验证是在 JBoss 中使用其用户管理或 LDAP 完成的(只需在standalone.xml 中更改配置)。
整个安全框架运行完美,如果敢说的话甚至是太好了......
问题
我还有一个使用 Java EE 的调度程序 TimerService
。它可以接受不同类型的作业,可以稍后安排这些作业(调度程序的原始功能......)。
当调度程序需要运行使用某些业务逻辑 bean 的作业时,我开始遇到问题,这些业务逻辑 bean 受到 @RolesAllowed
的保护。注解。在这种情况下,安全框架将完成其工作并拒绝对调度程序的访问。
问题
有没有办法以编程方式向包含调度程序的 Bean 授予安全权限?
是否可以为调度程序伪造一个 http session ?
如果是这样,存储登录名/密码的最佳做法是什么?我想将它们硬编码在静态变量中会很糟糕......
最佳答案
看起来您正在寻找类似@RunAs的东西 查看本教程,看看它是否对您有帮助:http://docs.oracle.com/cd/E19226-01/820-7627/bnbyr/index.html
关于java - 为 Java EE 6 中的调度程序授予安全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683914/