spring.security.core和defaultTargetUrl

时间:2017-07-27 19:07:18

标签: grails spring-security

我使用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

1 个答案:

答案 0 :(得分:0)

当用户访问一个安全且用户未登录的URL时,Spring安全性会将用户重定向到登录屏幕。用户将在成功登录后重定向回原始urla。

您可以设置配置alwaysUseDefault = true,这将使spring始终安全地将用户重定向到登录后配置的defaultTargetUrl

grails.plugin.springsecurity.successHandler.alwaysUseDefault = true