Java 实施';注销';Spring Boot中的功能

Java 实施';注销';Spring Boot中的功能,java,spring-security,spring-boot,Java,Spring Security,Spring Boot,为了让一个基本的安全功能正常工作,我在pom.xml中添加了以下启动程序包 org.springframework.boot 弹簧启动安全 并将以下两个属性添加到application.properties: security.user.name=guest security.user.password=tiger 现在,当我点击我的主页,我得到了登录框和登录工程如预期 现在我想实现“注销”功能。当用户单击链接时,他/她将注销。我注意到登录没有在我的浏览器中添加任何cookie。我假设Spr

为了让一个基本的安全功能正常工作,我在pom.xml中添加了以下启动程序包


org.springframework.boot
弹簧启动安全
并将以下两个属性添加到application.properties:

security.user.name=guest
security.user.password=tiger

现在,当我点击我的主页,我得到了登录框和登录工程如预期


现在我想实现“注销”功能。当用户单击链接时,他/她将注销。我注意到登录没有在我的浏览器中添加任何cookie。我假设SpringSecurity为用户创建了一个HttpSession对象。这是真的吗?我是否需要“使”此会话无效并将用户重定向到其他页面?在基于Spring引导的应用程序中实现“注销”功能的最佳方法是什么?

迟做总比不做好。SpringBoot默认为您提供许多安全组件,包括CSRF保护。其中一项功能是强制后注销,请参见此处:

正如这所建议的,您可以使用以下内容来覆盖此内容:

http.authorizeRequests()
.antMatchers(“/admin/**”).hasRole(“admin”)
.anyRequest().fullyAuthenticated()
.及()
.formLogin().loginPage(“/login”).failureUrl(“/login?error”).permitAll()
.及()
.logout().logoutRequestMatcher(新的AntPathRequestMatcher(“/logout”)).logoutSuccessUrl(“/login”);

最后一行很重要。

我建议使用本教程:我已经看过了。问题是,这是面向SpringMVC的,而我并没有使用它。我们有一个基于Spring引导的应用程序&我们的UI是从/resources/public/index.htmlCan提供的。我想问一下,您是如何发现starter安全依赖性的?几天来,我一直在想如何使用spring boot运行spring security,真不敢相信会这么容易。@Dany-spring boot starter security在文档中提到过:您是如何知道在application.properties文件中添加这两个属性的?我遇到的每一个教程都与这一个类似——配置和用户名+密码都是在java classI中设置的。我到处都在找这个,谢谢,有时候我觉得Spring Boot太神奇了,让这样的东西很难跟踪。简单
。logout.permitAll()
就可以了。它将重定向到
login/?logout
,但要小心使用GET方法注销,因为这会使攻击者在您的网站上使用csrf攻击。如何使用该方法注销?window.location=“/login/?logout”???我将如何从angular 8注销方法调用它。假设我有一个按钮注销,那么我怎么称呼它呢