我目前正在使用 Spring(带有 Spring Security)和 Vue.js 开发一个 Web 应用程序。我之前构建过一些 Web 应用程序,但它们仅用于学校目的,因此在身份验证和授权方面它们大多不完整。所以,正如你所看到的,我在 Spring Boot 和 Spring Security 方面真的没有经验。
我的项目是按以下方式设置的:
项目文件夹
我正在遵循一个教程来实现 Spring Security,现在,我可以使用内置的登录表单,使用我存储在 MySQL 数据库中的凭据来验证我的用户。
问题是我不想使用这个登录页面,我想在我的前端项目中创建自己的登录页面。我已经查过了,我可以更改登录页面,但我相信它需要位于后端项目文件夹内的资源文件夹中。然而,我的项目不是这样设置的,我不想改变它(如果可能的话)。我以为我可以通过 URL 引用我的 API,但我注意到 Spring Security 在登录成功时不会发送 HTTP 200 响应,而是发送 HTTP 302 重定向响应。我见过禁用表单登录然后使用 JWT 进行身份验证的解决方案,但我也发现这不是一个好的做法,因为无法撤销此令牌。
这是我的 ApplicationSecurityConfig 的外观
@Configuration
@EnableWebSecurity
public class ApplicationSecurityConfig extends WebSecurityConfigurerAdapter {
private final PasswordEncoder passwordEncoder;
private final ApplicationUserService applicationUserService;
@Autowired
public ApplicationSecurityConfig(PasswordEncoder passwordEncoder,
ApplicationUserService applicationUserService) {
this.passwordEncoder = passwordEncoder;
this.applicationUserService = applicationUserService;
}
@Override
protected …Run Code Online (Sandbox Code Playgroud)