如何在grails spring security rest应用程序上使刷新令牌在15分钟后过期



我们正在Grails 3.2.12项目中使用Spring Security Core(3.0.0(和Spring Security Rest插件(2.0.0.M2(进行用户授权和访问控制。

现在,我们需要实现一种方法,在系统中处于非活动状态15分钟后终止用户访问权限。

该项目被配置为在登录后15分钟使访问令牌过期,并且刷新令牌过程处于非活动状态,因此用户需要再次登录。

问题是刷新令牌在默认情况下永远不会过期,如果我们实现刷新令牌过程,则用户访问永远不会过期。

我们计划的解决方案是什么:我们将更改访问令牌的到期时间5分钟,并为刷新令牌创建一个到期时间15分钟。

有什么方法可以为grails spring安全rest插件上的刷新令牌创建过期时间?

有趣的是,我刚刚在Slack上就这个问题给出了一些建议:从代码来看,您至少必须覆盖这三个类的功能:

https://github.com/alvarosanchez/grails-spring-security-rest/blob/ffa848c9c6dd82f92f2ab489cb5d7a1515c587f2/spring-security-rest/grails-app/controllers/grails/plugin/springsecurity/rest/RestOauthController.groovy#L137

https://github.com/alvarosanchez/grails-spring-security-rest/blob/develop/spring-security-rest/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/jwt/JwtTokenStorageService.groovy#L52

https://github.com/alvarosanchez/grails-spring-security-rest/blob/ffa848c9c6dd82f92f2ab489cb5d7a1515c587f2/spring-security-rest/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/AbstractJwtTokenGenerator.groovy#L113

它区别刷新令牌的方式似乎是它没有过期,所以你必须想出一个替代机制。祝你好运

最新更新