我正在为单页应用程序Vue尝试简单的Spring Boot应用程序,其中web服务器应该在没有任何视图的情况下回答所有/api
、/auth/login
和/auth/logout
请求,只有JSON响应,如REST API。
现在为了简单起见,我想要一个用户名&密码验证,但由Vue前端调用。当我使用.formLogin()
时,SpringSecurity会使用JSESSIONID
创建一个cookie,但它可能在内存中。
如果问题不合适,我很抱歉,但我总是发现相互矛盾的方法,并且由于缺乏知识而很快迷失方向:
- 是否需要Spring Session,或者我如何将其扩展到我拥有的自定义存储库中
formLogin()
是正确的选择,还是我应该使用其他东西
- Spring会话依赖项(org.springframework.Session:Spring会话核心(不需要手动添加到类路径,因为它是由Spring Security完成的。但是,如果您想自定义会话管理,例如更改内存中默认的
SessionRepository
类或会话cookie名称,那么您应该添加它 formLogin
是正确的选择之一,但您需要对其进行配置,以替换默认的spring安全行为。与入门指南中一样,配置HttpSecurity
bean,以便使用您的/auth/login
和/auth/logout
值更改默认的/login
和/logout
端点路径。您可能还想在这个bean中配置其他内容,例如,在exceptionHandling配置中添加authenticationEntryPoint,这样您的API服务器将以401http状态响应,而不是重定向到登录页面