具有自定义身份验证和会话存储的 Spring 启动安全性



我正在为单页应用程序Vue尝试简单的Spring Boot应用程序,其中web服务器应该在没有任何视图的情况下回答所有/api/auth/login/auth/logout请求,只有JSON响应,如REST API。

现在为了简单起见,我想要一个用户名&密码验证,但由Vue前端调用。当我使用.formLogin()时,SpringSecurity会使用JSESSIONID创建一个cookie,但它可能在内存中。

如果问题不合适,我很抱歉,但我总是发现相互矛盾的方法,并且由于缺乏知识而很快迷失方向:

  1. 是否需要Spring Session,或者我如何将其扩展到我拥有的自定义存储库中
  2. formLogin()是正确的选择,还是我应该使用其他东西
  1. Spring会话依赖项(org.springframework.Session:Spring会话核心(不需要手动添加到类路径,因为它是由Spring Security完成的。但是,如果您想自定义会话管理,例如更改内存中默认的SessionRepository类或会话cookie名称,那么您应该添加它
  2. formLogin是正确的选择之一,但您需要对其进行配置,以替换默认的spring安全行为。与入门指南中一样,配置HttpSecuritybean,以便使用您的/auth/login/auth/logout值更改默认的/login/logout端点路径。您可能还想在这个bean中配置其他内容,例如,在exceptionHandling配置中添加authenticationEntryPoint,这样您的API服务器将以401http状态响应,而不是重定向到登录页面

最新更新