grails - spring.security.core和defaultTargetUrl

标签 grails spring-security

我正在使用带有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

关于grails - spring.security.core和defaultTargetUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45359104/

相关文章:

grails - Gradle - 创建具有不同版本依赖项的多个 jar

grails - 如何使用grails将文件上传到服务器目录?

java - Spring Security如何在用户注册时为用户设置角色

java - Spring MVC + Spring Security + JPA 返回 Null ModelAndView 并且不会进行身份验证

Ajax POST 导致 405(不允许方法)-Spring MVC

java - WebSecurityConfigurerAdapter 配置重叠权限

java - 使用 Spring Boot 和 Waffle 配置 Spring Security 时发生循环依赖错误

facebook - 在Cloud Foundry上部署的Grails Facebook登录无效

json - 如何在没有域类的grails中使用elasticSearch索引数据

grails - Grails 中 findAll、getAll 和 list 的区别