我在grails应用程序中使用spring安全核心插件。但现在我有自定义要求。
我需要在打开这些屏幕之前每次重新验证用户的某些秘密屏幕,即使用户已经登录。
在重新认证身份验证屏幕上,我还想在用户名和密码后添加密码密码。
实现此功能的最佳方法是什么,或者此功能是否有可用的插件?
答案 0 :(得分:1)
据我所知,没有任何插件可以解决这个问题。但是,Glen Smith posted a few years ago如何使用Grails Spring Security核心插件为特定URI实现自己的自定义身份验证。
他概述的内容与您需要做的非常相似:
创建自定义身份验证对象以保存请求。
创建自定义身份验证提供程序以对请求进行身份验证。
创建自定义安全过滤器以应用于您的URI。
您还应该注意Burt对所提及的关于如何注册自定义身份验证过滤器的帖子的评论。这消除了Glen提供的一些代码。
您的实现会稍微复杂一些,因为您需要一个额外的过滤器来捕获身份验证失败并将用户路由到特殊登录页面。这是事情变得非常棘手的地方,但是通过上面的信息,您应该能够开始并在遇到障碍时提出问题。