我的bug呢 2023-06-23 12:04 采纳率: 57.1%
浏览 19

ComponentScan和SpringSecurity的奇妙化学反应


@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();
    }
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/846679294786199.png "#left")

就加了一个@ComponentScan("com.cll.jtool.common.util"),而且这个包里根本没有和SpringSecurity有关的东西,一旦访问接口就会报403,一旦注释掉这行,我的SecurityConfig就会正常。

  • 写回答

2条回答 默认 最新

  • 泡沫o0 2023年度博客之星上海赛道TOP 1 2023-06-23 12:53
    关注

    在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错误。

    你可以尝试以下的解决方案:

    1. 检查"com.cll.jtool.common.util"包中的所有类,看看它们是否有可能影响到Spring Security的配置。特别是那些被标记为@Configuration或@Component的类。

    2. 检查你的用户是否被授予了正确的角色或权限。你可以在数据库中查看用户的角色和权限,或者在你的代码中添加一些调试语句来输出用户的角色和权限。

    3. 尝试修改你的Spring Security配置,使其允许所有用户访问所有资源,然后逐步添加权限限制,看看哪一步导致了403错误。

    4. 如果可能,尝试移除@ComponentScan注解,然后手动添加需要的bean到Spring的配置中,看看这是否可以解决问题。

    希望这些信息能帮助你解决问题。如果你还有其他问题,欢迎继续提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月23日

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要