在Spring Boot中实现``注销''功能

为了使基本的安全功能正常运行,我在pom.xml中添加了以下入门包。

    <dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

并将以下两个属性添加到application.properties:

security.user.name =访客

security.user.password =老虎

现在,当我进入主页时,我会看到登录框,并且登录可以按预期进行。

现在,我要实现“注销”功能。当用户单击链接时,他/她将注销。我注意到该登录名未在我的浏览器中添加任何cookie。我假设Spring

Security为用户创建了一个HttpSession对象。真的吗?我是否需要使该会话“无效”并将用户重定向到其他页面?在基于Spring

Boot的应用程序中实现“注销”功能的最佳方法是什么?

回答:

迟到总比没有好。Spring

Boot为您默认了许多安全组件,包括CSRF保护。要做的事情之一是强制POST注销,请参阅此处:http :

//docs.spring.io/spring-

security/site/docs/3.2.4.RELEASE/reference/htmlsingle/#csrf-

logout

如此一来,您可以使用以下方式覆盖此内容:

http.authorizeRequests()

.antMatchers("/admin/**").hasRole("ADMIN")

.anyRequest().fullyAuthenticated()

.and()

.formLogin().loginPage("/login").failureUrl("/login?error").permitAll()

.and()

.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/login");

最后一行很重要。

以上是 在Spring Boot中实现``注销&#39;&#39;功能 的全部内容, 来源链接: utcz.com/qa/404957.html

回到顶部