我正在使用带有grail 2.3.3的spring-security-core:2.0-RC5,并通过Requestmap dB系统控制网页访问。
身份验证后,我无法登录到应用程序并将其定向到相应的网页。
我已使用defaultTargetUrl配置设置来定义成功登录后的去向。
这是一个开发应用程序,其根URL为:http://localhost:9002/VidPlay
我有两个角色不同的用户:
约翰1-与ROLE_ADMIN + ROLE_USER
Mike1-仅ROLE_USER
如果将defaultTargetUrl设置为/ home / index
以John1身份验证登录并成功进入URL:http://localhost:9002/VidPlay。为什么不转到http://localhost:9002/VidPlay/home/index,登录后即可访问?
以Mike1身份验证登录后,登录到URL:http://localhost:9002/VidPlay,但正确访问失败。再次说明为什么不转到http://localhost:9002/VidPlay/home/index,登录后即可访问?
似乎两个登录名都重定向到了http://localhost:9002/VidPlay,但我不知道为什么,尽管事实上一旦登录我就可以转到这些页面?
如果defaultTargetUrl设置为/ Requestmap / index。
以John1身份验证登录并成功进入URL:http://localhost:9002/VidPlay/Requestmap/index。
在Mike1进行身份验证时登录并重定向到URL:http://localhost:9002/VidPlay,但正确无法访问。
似乎将Mike1重定向到http://localhost:9002/VidPlay。以Mike1身份登录后,我可以转到http://localhost:9002/VidPlay/Requestmap/index。为什么不转到http://localhost:9002/VidPlay/Requestmap/index,登录后即可访问?
谢谢迈克
最佳答案
当用户访问安全的URL,但用户未登录时,Spring Security会将用户重定向到登录屏幕。成功登录后,用户将被重定向回原始URL。
您可以设置配置alwaysUseDefault = true,这将使spring始终在登录后将用户安全重定向到配置的defaultTargetUrl
grails.plugin.springsecurity.successHandler.alwaysUseDefault = true