【问题标题】:2 factor authentication in GrailsGrails 中的 2 因素身份验证
【发布时间】:2019-04-10 14:37:31
【问题描述】:

我想要一种实现两因素身份验证的方法。当用户输入他们的用户名和密码时,它会将他们移动到另一个页面,在那里他们被授予一个临时角色,然后他们被要求输入一个安全令牌,该令牌将通过电子邮件发送给他们。 authtoken image

login image

【问题讨论】:

  • 欢迎来到 SO。如果您向我们展示您的代码,我们可以为您提供更好的帮助。你都尝试了些什么?进一步阅读:stackoverflow.com/help/how-to-ask

标签: grails groovy


【解决方案1】:

我去过那里,我发现如果您使用的是传统的老式网络应用程序,那么主要在自定义代码中实现这一点非常容易。我认为春天有一些东西可以让你做到这一点,但根据你的应用程序,你自己做这件事可能会容易得多,甚至没有那么困难。

一种方法是创建覆盖所有受此影响的路由的 grails 过滤器。例如除了登录页面和之后的第二页之外的所有页面。此过滤器将检查临时角色,如果找到,它将重定向到第二个身份验证页面。否则它会让请求通过。可能是这样的:

twoFactorCheck(controller: '*', controllerExclude: 'privacyPolicy|login|logout|2factor', action: '*') {

    before = {

        if (process2factorAuthNeed()) {
            return true;
        }

        redirect(controller: "2factor", action: "index");
        return false;

    }
}

然后您需要的另一件事是自定义 UserDetailsS​​ervice 的实现,您可以在其中捕获第一个正常身份验证并为用户设置临时角色。这在此处进行了介绍:https://grails-plugins.github.io/grails-spring-security-core/2.0.x/guide/userDetailsService.html 如果您使用的是 grails 2.*,但您的 spring 安全插件版本用户指南也将包含此条目。

【讨论】:

  • 非常感谢,我会调查的。我一直在尝试了解如何实现过滤器,但我总是以某种方式出错
猜你喜欢
  • 2011-03-19
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 2021-10-03
  • 1970-01-01
相关资源
最近更新 更多