authentication - Grails 3和Spring Security:用户未登录时返回401

标签 authentication grails spring-security

在我的Grails 3.2.9网络应用中,我正在使用Spring Security插件来管理用户 session 。这是依赖:

compile "org.grails.plugins:spring-security-core:3.1.1"

应用程序的自然发展(历时数年)使所有 Controller 中的所有 Action 基本上都可以返回JSON,其中大部分 Action 都使用@Secured批注进行保护,例如
return map as JSON    // grails.converters.JSON

这意味着所有 Action 基本上都像API。

但是由于它们是安全的,因此当用户未登录时,将执行到/login/auth(登录页面)的重定向,这是您所不希望的。这就是为什么我在寻找一种返回401 unauthorized状态的方法,而不是让Spring Security执行重定向的原因。

到目前为止,我已经研究了pessimistic lockdown,并且在网络上搜索也将我带到Spring Security Core REST plugin,但是这两种方式似乎都不适合我的情况(最后对我来说,但也许我缺少了一些东西)。

因此,欢迎提出任何建议,在此先感谢!

最佳答案

resources.groovy中注册以下内容
authenticationEntryPoint(Http401AuthenticationEntryPoint, 'Bearer')

关于authentication - Grails 3和Spring Security:用户未登录时返回401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44312193/

相关文章:

authentication - 首次运行任何报告时出现 Reporting Services 错误

java - 运行页面刷新后发生的线程(失控线程)

java - 如何捕获 Spring Security 匹配器抛出的异常?

java - 如何使用 Spring MVC 和 Java 获取基本的 HTTP 身份验证数据

http - ejabberd_http_auth 插件中的未知选项 'auth_opts' 问题

php - Symfony 基本 HTTP 身份验证不起作用

ruby-on-rails - 在 Rails 中从 Google/Yahoo 检索 OpenID AX 属性

grails - Grails将问卷调查数据映射到bean

grails - spring.security.core和defaultTargetUrl

grails - Spring Security 正在重定向到生产服务器上的 localhost