Grails 圣杯&x2B;SpringSecurityCore:未经授权时如何响应自定义HTTP STAU?

Grails 圣杯&x2B;SpringSecurityCore:未经授权时如何响应自定义HTTP STAU?,grails,spring-security,Grails,Spring Security,当用户未登录时,如何响应任何http状态错误(例如403) 原样:有一个使用SpringSecurityCore实现的用户身份验证。用户可以使用用户名和密码登录。当用户试图在authentocation之前访问任何资源时,系统将重定向到登录页面并响应200 OK HTTP状态 在Grails 2.4.3+SpringSecurityCore 2.0-RC4上实现 即将:200 OK状态应更改为任何错误(如403)找到解决方案(非常感谢@Koloritnij):添加到resources.groov

当用户未登录时,如何响应任何http状态错误(例如403)

原样:有一个使用SpringSecurityCore实现的用户身份验证。用户可以使用用户名和密码登录。当用户试图在authentocation之前访问任何资源时,系统将重定向到登录页面并响应200 OK HTTP状态

在Grails 2.4.3+SpringSecurityCore 2.0-RC4上实现

即将:200 OK状态应更改为任何错误(如403)

找到解决方案(非常感谢@Koloritnij):添加到resources.groovy

authenticationEntryPoint(org.springframework.security.web.authentication.Http403ForbiddenEntryPoint)
这个问题与

您为什么需要它?只重定向到状态为200的登录页面有什么问题?顺便说一句:如果通过AJAX请求,它只会返回403(401?)状态码。@Koloritnij感谢您的回复!有一个集成了浏览器的应用程序。用户已在此应用程序中使用相同的凭据进行身份验证。我们需要避免用户在访问任何页面时输入凭据。集成浏览器可以处理响应,若出现403错误,应用程序将在后台发送一个授权请求,如//server/login?login=user&pass=pwd。之后,应用程序将再次发送原始请求。(我知道,rest身份验证将是这里最好的主意,但取决于其他更改的复杂性,这个主意看起来更好)不确定,但请尝试将这个添加到参考资料中。groovy authenticationEntryPoint(classFor('authenticationEntryPoint',Http403ForbiddenEntryPoint))@Koloritnij非常感谢!你的建议行得通。经过一些改进后,我得到了想要的行为。非常感谢。