gpt4 book ai didi

Spring security logoutSuccessUrl to login?logout 似乎受到保护,虽然登录页面允许所有人

转载 作者:行者123 更新时间:2023-12-01 12:42:33 25 4
gpt4 key购买 nike

我有以下 Spring Security 设置。
请注意,成功注销会再次返回登录页面。

    http
.csrf()
.disable()
.authorizeRequests()
.antMatchers("/**").hasRole("USER")
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/login?error")
.defaultSuccessUrl("/")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout")

我可以使用此设置登录和注销。
然而,注销以/login 而不是/login?logout 结束。

当我再次登录时,它会转到/login?logout。

所以看起来/login?logout 似乎受到保护......尽管登录页面是允许的。

任何想法如何解决这个问题?

编辑

正如 Bart 建议的那样,我尝试添加一个 AntMatcher 进行登录?注销,例如:
    http
.csrf()
.disable()
.authorizeRequests()
.antMatchers("/ogin?logout").permitAll()
.antMatchers("/app/**").hasRole("USER")
.antMatchers("/login?logout").permitAll()
.and()
.formLogin()
.loginPage("/app/login")
.failureUrl("/app/login?error")
.defaultSuccessUrl("/app")
.permitAll()
.and()
.logout()
.logoutUrl("/app/logout")
.logoutSuccessUrl("/app/login?logout")

但它给出了相同的行为。注意我尝试在保护所有/** 源之前和之后添加它。

最佳答案

现在使用以下代码遇到了对我有用的相同问题:

http.logout().logoutSuccessUrl("/login?logout").permitAll();

(即添加 .permitAll() 是关键部分)

关于Spring security logoutSuccessUrl to login?logout 似乎受到保护,虽然登录页面允许所有人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com