使用spring security core在引导中自动登录grails

使用spring security core在引导中自动登录grails,grails,spring-security,Grails,Spring Security,在开发过程中,我发现我自己经常不得不重新启动我的应用程序,这反过来又会导致额外的手动登录步骤 我想我可以在引导中添加方法调用springSercurityService.reaauthenticate('myuser'),但是我没有成功 在应用程序启动后在控制器中执行相同的操作可以正常工作,因此它只是在引导过程中不起作用。 我调试了代码,没有发现任何明显的错误。如果只是为了避免登录到开发模式,您可以设置interceptUrlMap属性。该属性允许您以一种不会要求您登录的方式设置开发模式 imp

在开发过程中,我发现我自己经常不得不重新启动我的应用程序,这反过来又会导致额外的手动登录步骤

我想我可以在引导中添加方法调用springSercurityService.reaauthenticate('myuser'),但是我没有成功

在应用程序启动后在控制器中执行相同的操作可以正常工作,因此它只是在引导过程中不起作用。
我调试了代码,没有发现任何明显的错误。

如果只是为了避免登录到开发模式,您可以设置interceptUrlMap属性。该属性允许您以一种不会要求您登录的方式设置开发模式

import grails.plugins.springsecurity.SecurityConfigType

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap

environments {
    development {
        grails.plugins.springsecurity.interceptUrlMap = [
            '/**':              ['IS_AUTHENTICATED_ANONYMOUSLY']
        ]
    }

}

我遇到了同样的问题,我是如何解决这个问题的,就是使用一个bookmarklet(或一个定制的浏览器“搜索引擎”),它使重新登录变得非常容易。启用深度链接后,可以很容易地继续在同一页面上工作。重新启动服务器后,只需刷新页面,它就会将您重定向到登录页面。只需激活bookmarklet(或“搜索引擎”),它就会让您登录并将您重定向回您正在使用的页面


我有一个详细的说明来说明如何进行此设置。

另一个选项是添加一个servlet过滤器,如果环境正在开发,它将登录默认用户。

我实际上需要执行登录,以便获得用户信息。否则我的应用程序将无法正常工作。所以一切都需要像我手动登录一样工作,Naleid的答案可能是你最好的选择。身份验证存储在会话中,引导中没有活动的会话或请求,因此强制进行身份验证没有任何意义。感谢Ted,我最终创建了一个简单的控制器,该控制器将调用springsecurityService.reauthenticate(),确保检查环境是否正常,开发人员必须这样做,因为我有一个自定义的身份验证提供程序,它需要登录过程的硬件密钥。但是,您的解决方案很好,非常通用,在大多数情况下都是首选。Shi Iman,您能分享您的控制器代码或详细说明吗?我也想做同样的事,但是被绊倒了。