@SpringBootApplication
@MapperScan("com.cll.jtool.security.mapper")
@ComponentScan("com.cll.jtool.common.util")
public class JtoolSecurityApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(JtoolSecurityApplication.class, args);
}
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http
//关闭csrf
.csrf().disable()
.cors().and()
//不通过Session获取SecurityContext
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
// 对于登录接口 允许匿名访问
.antMatchers("/user/login").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated().and()
// .addFilterBefore(jtoolAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}

在Spring Security中,403 Forbidden错误通常表示用户已经被认证,但是他们没有足够的权限来访问特定的资源。这可能是因为你的Spring Security配置没有正确地设置权限,或者你的用户没有被授予正确的角色或权限。
在你的代码中,你使用了@ComponentScan注解来扫描"com.cll.jtool.common.util"包。这可能会改变Spring的bean加载顺序,从而影响到Spring Security的配置。例如,如果"com.cll.jtool.common.util"包中的某个类被标记为@Configuration,并且它修改了Spring Security的配置,那么这可能会导致403错误。
你可以尝试以下的解决方案:
检查"com.cll.jtool.common.util"包中的所有类,看看它们是否有可能影响到Spring Security的配置。特别是那些被标记为@Configuration或@Component的类。
检查你的用户是否被授予了正确的角色或权限。你可以在数据库中查看用户的角色和权限,或者在你的代码中添加一些调试语句来输出用户的角色和权限。
尝试修改你的Spring Security配置,使其允许所有用户访问所有资源,然后逐步添加权限限制,看看哪一步导致了403错误。
如果可能,尝试移除@ComponentScan注解,然后手动添加需要的bean到Spring的配置中,看看这是否可以解决问题。
希望这些信息能帮助你解决问题。如果你还有其他问题,欢迎继续提问。
ComponentScan指定扫描包,会导致默认包扫描器失效