带有spring security的特定页面的url
Posted
技术标签:
【中文标题】带有spring security的特定页面的url【英文标题】:url to specific page with spring security 【发布时间】:2021-06-27 15:04:29 【问题描述】:我有一个 Spring Boot 应用程序。
我需要发送包含指向系统特定页面的直接 url 的电子邮件,例如:
请点击以下链接接受报价:http://example.com/somepage?id=5
所需的行为如下:
-
用户点击电子邮件中包含的链接。
出现登录页面。
用户登录并打开链接的特定页面。
但这不起作用。当用户点击 URL 时,他直接进入主页,而不是链接中包含的特定页面。
我在控制器中有这个方法:
@GetMapping("/home")
public String menu(Model model)
return "home";
这是 Spring Security 配置类:
...
.formLogin()
.loginPage("/login")
.permitAll()
.defaultSuccessUrl("/home", true)
...
有谁知道我应该怎么做才能使其正常工作?
谢谢一百万。
问候,
【问题讨论】:
【参考方案1】:请尝试将.defaultSuccessUrl("/home", true)
改为.defaultSuccessUrl("/home", false)
【讨论】:
是的!很简单!你能解释一下这个真/假是什么意思吗?非常感谢!! 很高兴工作!请参阅docs.spring.io/spring-security/site/docs/current/api/org/…。最后一个参数是alwaysUse
,文档说“如果用户在认证之前没有访问过安全页面,则指定用户在认证成功后将被重定向到哪里,或者alwaysUse为真。如果是true
,用户总是被发送到url 定义为defaultSuccessUrl
.
感谢一百万!很棒的解释!以上是关于带有spring security的特定页面的url的主要内容,如果未能解决你的问题,请参考以下文章
认证后转到特定的jsp页面(spring security)
Spring security:如果用户不满足特定条件,则使每个页面重定向
带有 JWT 的 Spring Security OAuth2 重定向到登录页面