authentication - Grails 3和Spring Security-在过滤器中对用户进行身份验证

标签 authentication grails spring-security filter

我正在开发一个具有Spring Security插件的Grails 3 Web应用程序,该应用程序已经大量使用@Secured批注来根据单个登录用户的特权来保护 Controller 和操作。
当前通过通常的用户名/密码对管理登录。

现在提出了一个新要求,其中涉及一个自定义请求 header ,其值为一种“授权 token ”:

  • 此 token 标识一组用户(我们称为团队)
  • 如果该 token 被认为是有效的,并且与DB匹配,则整个应用程序应以登录的预定义用户(我们称为John,属于团队的一部分)的行为运行。从这个意义上讲,它应该作为预身份验证。该用户将具有自己的角色,因此应用程序将做出相应的响应,就像John会使用自己的用户名/密码登录一样。
  • 如果无法识别 token ,则必须返回401状态。
  • 如果未传递 token ,则应用程序必须具有其当前行为,对 token 管理应视为可选的,根本不影响当前实现。

  • 我考虑过定义一个自定义过滤器(我也查看了post,但是它有不同的要求),但是我什至无法确定:
  • 此任务的可行性
  • 过滤器是否是最好的方法(但是我想拦截器触发得太晚了,在Spring Security发挥作用之前我需要评估一些其他逻辑)
  • ,扩展
  • 的最佳过滤器

    因此,任何建议都值得欢迎!提前致谢

    最佳答案

    这不是专家,但是我将实现自定义UserDetailsS​​ervice并根据 token 条件设置权限。您也许还可以在AuthenticationSuccessListener中做到这一点。

    关于authentication - Grails 3和Spring Security-在过滤器中对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188376/

    相关文章:

    java - Jenkins 命令显示目录中的所有文件?

    java - 为什么 Netbeans 无法识别我的 Grails 应用程序中的 Maven 依赖项导入?

    spring-security - Spring Security OAuth2 资源服务器重试/弹性

    c# - 确保移动设备的身份验证安全

    authentication - Virtuoso 端点中 SPARQL 插入的 HTTP 请求身份验证

    authentication - 使用koa和passport进行认证

    grails - 由于模糊的def递归导致的grails中的堆栈溢出

    php - Auth::check() 返回 false Laravel 5.4

    java - 未经授权的错误 : Full authentication is required to access this resource with spring. 安全 v.6

    spring - Spring Security如何在Grails中调用remoteFunction时重定向到登录