1

我们目前正在完成的 Java EE 应用程序使用 JBoss PicketLink 和 Apache DeltaSpike 作为其安全框架。所有身份验证和授权决策都是使用这些库完成的。由于我们的安全性要求很高,我们的大多数 EJB 服务方法都有授权检查。在某些情况下,非特权用户需要执行特权操作。例如,仅允许具有 Admin 角色的用户创建用户帐户。但是,在用户自行注册期间,需要创建用户帐户。通常,我们会为这个敏感操作使用类似“Run As”的东西,这样对于单个调用,非特权用户将有权执行特权操作。

但是,我没有在 PicketLink 文档或示例中看到任何表明 PicketLink 支持此功能的内容。我知道其他安全框架可以这样做。Java EE 甚至通过 @RunAs 注释支持这一点。但是,我们不希望使用注释来执行此操作,因为我们希望对可以应用的位置进行非常细粒度的控制。

谁能指出我可以解释如何执行此操作的任何文档或示例?PicketLink 是否支持此功能?还是我们运气不好?您是否有我们可以用来解决此类情况和要求的不同方法?

4

1 回答 1

0

应该不需要运行方式。如果允许未经身份验证的用户自行注册,那么您不应将用户创建一揽子限制为管理员。根据定义,非特权用户可以做的任何事情都不是敏感操作。如果管理员在创建用户帐户方面具有更大的灵活性,则编写两种服务方法:管理员用于为他人创建用户帐户的一种方法,以及未经身份验证的用户用于自助注册的一种更受限制的方法。

于 2016-02-10T04:10:29.907 回答