当前位置: 首页 > 知识库问答 >
问题:

404 Grails的Spring Security Rest插件何时注销

卢皓轩
2023-03-14

我正在用SpringSecurityREST插件v1为我的项目(Grails-Angularjs)设置安全系统。Grails2.4.4的5.4(使用SpringSecurityCore2.0.0)。关于这个插件的文档可以在这里找到。

我正在用postman chrome rest客户端测试登录和注销,我可以登录,但当我注销时,我会得到404。

留档里清楚地写着:

注销筛选器公开用于删除令牌的endpoint。它将从HTTP头读取令牌。如果找到,将从存储中删除它,并发送200响应。否则,它将发送404响应

你可以在配置中配置它。groovy使用以下属性:

配置键..............................................................................默认值

grails.plugin.springsecurity.rest.logout.endpointUrl...................../api/logoutgrails.plugin.springsecurity.rest.token.validation.headerName...... X-Auth-Token

因此,在成功登录后,我尝试使用GET方法注销该url(my_host_url/api/logout),并发送一个带有我之前从登录中获得的令牌的头X-Auth-Token。

但我一直得到404。见下图

编辑:我像这样设置链图(为了获得无状态行为):

grails.plugin.springsecurity.filterChain.chainMap = [
        '/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter',  // Stateless chain
        '/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter'                                                                          // Traditional chain
]

所以我做错了什么,或者我错过了什么?

提前谢谢!

共有1个答案

翟聪
2023-03-14

你错过了文件的另一段摘录。这是一条警告信息,就在你引用的那块之前,上面写着:

使用JWT令牌(默认策略)时无法注销,因为服务器中不保留任何状态。

如果仍然希望注销,可以通过创建JwtTokenStorageService的子类并覆盖storeTokenremoveToken方法来提供自己的实现。然后,在参考资料中注册您的实现。groovyastokenStorageService

 类似资料:
  • 插件要生效, 还需要向Yaf_Dispatcher注册, 那么一般的插件的注册都会放在Bootstra中进行. 一个注册插件的例子如下: 例 7.2. 注册插件 <?php class Bootstrap extends Yaf_Bootstrap_Abstract{ public function _initPlugin(Yaf_Dispatcher $dispatcher) { $user

  • 我正在使用https://pub.dev/packages/firebase_messagingv6。0.16和颤振v1。17.5 我正在尝试调用myBackgroundMessageHandler中的一个插件,它的代码是AppAvailability。启动应用程序('com.companyname.appname') 但我得到以下错误 插件在应用程序范围内没有任何问题。这是发生在我尝试的每一个插

  • 我写了一个maven插件,我正在一些项目中使用它。在第一个项目中,它只有一次执行,我可以直接用 在第二个项目中,插件有多个执行,当我尝试上面的命令时,我最终失败了,因为插件尝试使用空参数执行。 请注意,在这两种情况下,插件在作为流程资源阶段的一部分执行时都可以正常工作。只有当我试图执行插件目标时,它才会失败。有人能帮我理解为什么第二个示例尝试使用空白参数执行吗? 第一个项目(一次执行-工程罚款):

  • 可以按照地图坐标,地址,城市,IP定位进行显示。直接拖拽保存地址坐标。 显示效果如下: 使用说明: 1、 在head引用bdMap.js 2、 设置DIV容器 3、 JS执行ShowMap("map",{city:'郑州',addr:'经路鑫路',title:'吊儿',lawfirm:'公司',tel:'136238',pic:'http://www.shalisoft.com/images/10

  • 我在Grails应用程序中集成了REST Spring Security插件。登录工作正常,并返回正确的访问令牌。我可以在头中的X-Auth-Token中使用此身份验证令牌调用其他操作。 我在JDK1.6中使用Grails 2.4.4和spring security rest插件1.4.0。 但是,注销不起作用,并抛出异常: 我曾尝试升级到1.4.1、1.5.0,但它们似乎依赖于JDK1.7版本。

  • 使用Maven Tycho插件的目的是什么。我在这里读到了tycho用于构建eclipse插件和OSGI包。 问题:-我们难道不能只使用普通的旧maven pom.xml文件[不使用tycho插件]来构建eclipse插件和OSGI包吗。 maven需要什么tycho插件来帮助它构建eclipse插件和OSGI包? 为什么我们要使用Maven tycho插件来构建eclipse插件和OSGI包?