Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为ApacheShiro中的角色创建访问策略的更好方法是什么_Java_Shiro - Fatal编程技术网

Java 为ApacheShiro中的角色创建访问策略的更好方法是什么

Java 为ApacheShiro中的角色创建访问策略的更好方法是什么,java,shiro,Java,Shiro,我使用的是ApacheShiro安全框架,我必须对角色应用不同的访问策略(如effectiveFrom date,这意味着该角色仅在特定日期之后才处于活动状态) 考虑到API,实现这一点的最佳方法是过度绑定受保护的用户\u角色\u查询字符串,只返回符合此“生效日期”的角色 我将这个“effectiveFrom”字段添加到ROLES\u PERMISSIONS表中 有没有其他更有效的方法来实现这一点?我假设您正在使用自定义领域来处理此问题?您的域应该能够使用当前日期和生效日期验证角色。是的,我已创

我使用的是ApacheShiro安全框架,我必须对角色应用不同的访问策略(如effectiveFrom date,这意味着该角色仅在特定日期之后才处于活动状态)

考虑到API,实现这一点的最佳方法是过度绑定受保护的用户\u角色\u查询字符串,只返回符合此“生效日期”的角色

我将这个“effectiveFrom”字段添加到ROLES\u PERMISSIONS表中


有没有其他更有效的方法来实现这一点?

我假设您正在使用自定义领域来处理此问题?您的域应该能够使用当前日期和生效日期验证角色。是的,我已创建了一个自定义域以支持此策略,在该域中,我已重写了USER\u roles\u QUERY sql查询,以便从USER\u roles表中获取此新字段。您是否希望会话足够长,以便在会话期间角色应发生更改,或者用户可以在更新角色之前注销吗?您的计划听起来不错,只是实现了某种缓存,并且不是每次都进行SQL查询。角色可以在会话期间更改,但策略在此期间不应更改。另一个想法是,这项政策应该考虑作为角色、主题和许可的简单资源。我所做的,上面描述的,基本上是黑客攻击,所以这就是为什么我在寻找一个更干净的解决方案。