我正在寻找在Grails应用程序中限制用户访问的方法。我的意思是用户只能在按星期和开始时间定义的允许时间范围内使用(不仅是登录)应用程序。结束时间。
有人可以建议最好的方法吗?
我正在考虑将一些表添加到我的域模型中,该表将包含时间访问规则。此规则将应用于角色和用户。用户规则将覆盖角色规则。
据我了解,我需要实施一些授权(非身份验证)过滤器,它会检查时间限制。
我是正确的方式吗?如果是这样,那么任何人都可以为此任务提供一些有用的链接吗?
答案 0 :(得分:1)
啊哈,我已经在邮件列表上回答了这个问题。
可能的解决方案(双重):
登录: 自定义UserDetails类,如果在外部则抛出适当的异常 时间段(不确定它是否是最符合语义的地方 它,但很容易)。
对于已登录的人: 在边界处运行的Quartz作业(如果是插槽时的下午2点 结束活动会话并使其无效。 您可以通过各种方式保留活动会话列表,一个(一个和一个) 一半真的,不确定你是否可以在程序化中使用Burt的插件 方式)在这里介绍:
In grails, how do I get a reference to all current sessions?
我现在看到AccessDecisionVoter是一个比自定义用户详细信息更好的解决方案,但对于已经登录的人来说,答案仍然是相同的。