【发布时间】:2022-01-14 16:18:37
【问题描述】:
我有一个 Spring/Vuejs 项目,它将前端和后端耦合到一个 warFile 中,由于某种原因,当我运行 warFile 时,我的 Spring Security 设置阻止了 Vue.js 页面。
当我以这种方式设置配置时,它会阻止页面 -
@Override
public void configure(HttpSecurity security) throws Exception {
security.csrf().disable()
.cors().and()
.authorizeRequests()
.antMatchers("/api/v1/authenticate", "/api/v1/register").permitAll()
.anyRequest().authenticated().and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
security.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class);
}
当我以这种方式设置时,它会显示页面和来自我的 api 的数据(它创建 JWT,但仍允许未经授权的 api 调用)-
@Override
public void configure(HttpSecurity security) throws Exception {
security.csrf().disable()
.cors().and()
.authorizeRequests()
.antMatchers("/api/v1/authenticate", "/api/v1/register", "/**","/css/**","/js/**").permitAll()
.anyRequest().authenticated().and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
security.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class);
}
当我以第一种方式设置它并在不同的端口上运行前端和后端时,它可以完美运行。它显示页面并阻止所有没有授权 JWT 的 API 调用。
我希望在同一个 warFile 中获得与后端/前端相同类型的结果
有解决办法吗???
【问题讨论】:
-
请发布您的完整调试日志,并且 spring security 已经内置了 JWTFilter 并且自 2018 年以来已经完全支持 JWT,因此请删除 jwtfilter 并按照 spring security 参考手册实现它.
标签: spring vue.js tomcat spring-security jwt