我正在 Java EE 6 中构建一个 Web 应用程序,该应用程序部署到 JBoss AS 7.1
我在 bean 级别(使用@RolesAllowed({ "useradmin", "usernormal" })
注释)和前端级别(保护 web.xml 中的 xthtm 页面)使用安全性。
身份验证在 JBoss 中完成,使用其用户管理或 LDAP(只是standalone.xml 中的配置更改)。
整个安全框架运行良好,甚至可以说是太好了……
问题
我还有一个使用 Java EE 的调度程序TimerService
。它可以接受不同类型的作业,可以稍后安排(调度程序的原始功能......)。
当调度程序需要运行使用某些业务逻辑 bean 的作业时,我开始遇到问题,这些业务逻辑 bean 使用@RolesAllowed
注释进行保护。在这种情况下,安全框架会完成它的工作并拒绝访问调度程序。
问题
有没有办法以编程方式为包含调度程序的 bean 提供安全特权?
是否可以为调度程序伪造一个 http 会话?
如果是这样,存储登录名/密码的最佳做法是什么?我想在静态变量中硬编码它们会很糟糕......