我使用spring-security-core:2.0-RC5 with grail 2.3.3,并通过Requestmap dB系统控制网页访问。
我在登录应用程序时遇到问题,并在通过身份验证后将应用程序指向相应的网页。
我已使用defaultTargetUrl配置设置来定义成功登录后的去向。
这是一个开发应用程序,根URL是:http://localhost:9002/VidPlay
我有两个不同角色的用户:
John1 - 使用ROLE_ADMIN + ROLE_USER
Mike1 - 仅限ROLE_USER
如果defaultTargetUrl设置为/ home / index
以John1身份验证登录并成功转到网址: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身份验证登录并成功转到网址: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?
谢谢Mike
答案 0 :(得分:0)
当用户访问一个安全且用户未登录的URL时,Spring安全性会将用户重定向到登录屏幕。用户将在成功登录后重定向回原始urla。
您可以设置配置alwaysUseDefault = true,这将使spring始终安全地将用户重定向到登录后配置的defaultTargetUrl
grails.plugin.springsecurity.successHandler.alwaysUseDefault = true