我们目前正在完成的Java应用程序使用JBoss PicketLink和Apache作为其安全框架。所有身份验证和授权决策都是使用这些库完成的。由于我们的高安全性要求,我们的大多数EJB服务方法都有授权检查。在某些情况下,非特权用户需要执行特权操作。例如,只允许具有管理员角色的用户创建用户帐户。但是,在用户自助注册期间,需要创建一个用户帐户。通常,对于此敏感操作,我们会使用类似"Run As“的内容,以便对于单个调用,非特权用户将具有执行特权操作的权限。
但是,我在PicketLink文档或示例中没有看到任何表明PicketLink支持此功能的内容。我知道有其他的安全框架是这样做的。Java EE甚至通过@RunAs注释支持这一点。然而,我们不希望用注解来做这件事,因为我们想要对它的应用位置进行非常细粒度的控制。
有没有人能给我指点一些文档或例子来解释如何做到这一点?PicketLink中是否支持此功能?还是我们不走运?你有没有不同的方法,我们可以用来解决这种情况和需求?
发布于 2016-02-10 12:10:30
应该不需要Run As。如果允许未经身份验证的用户自行注册,那么您就不应该将用户创建限制为管理员。根据定义,非特权用户可以执行的任何操作都不是敏感操作。如果管理员可以更灵活地创建用户帐户,则可以编写两种服务方法:一种是管理员用来为其他用户创建用户帐户的方法,另一种是限制更严格的方法,供未经身份验证的用户自行注册。
https://stackoverflow.com/questions/35205320
复制相似问题