wszyyo 2023-10-12 16:02 采纳率: 30%
浏览 24
已结题

springboot集成security

前提:在新版的spring security中舍弃了WebSecurityConfigurerAdapter,
需求:我想要自定义login接口而不想要security提供的/login,因此我需要specurity中提供的AuthenticationManager的实现对象对其进行验证

    @Bean
   public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception{
        return   authenticationConfiguration.getAuthenticationManager();
    }
 @Resource
    private AuthenticationManager authenticationManager;

但是在使用的时候,会出现栈溢出的bug

  • 写回答

13条回答 默认 最新

  • 「已注销」 2023-10-12 16:13
    关注

    从你提供的信息来看,你在使用Spring Security时遇到了一个问题:在新版的Spring Security中,已经舍弃了WebSecurityConfigurerAdapter,而你希望能够自定义login接口并进行验证。在使用AuthenticationManager时,出现了栈溢出(StackOverflowError)的错误。

    这个问题可能是由于你的配置或代码中存在循环依赖导致的。下面我会给出一些可能的解决方案:

    1. 检查配置和依赖: 首先,检查你的配置和依赖是否正确。确保你没有在配置或代码中创建了循环依赖。比如,在配置AuthenticationManager时,不要直接或间接地引用了需要AuthenticationManager的类或配置。
    2. 使用AuthenticationManagerBuilder: 在新版的Spring Security中,推荐使用AuthenticationManagerBuilder来创建AuthenticationManager。这样可以避免一些潜在的循环依赖问题。

    示例代码:

    @Bean
    public AuthenticationManager authenticationManager(AuthenticationManagerBuilder builder) throws Exception {
        return builder
            .parentAuthenticationManager(authenticationConfiguration.getAuthenticationManager())
            .build();
    }
    
    1. 检查其他部分的代码: 除了配置,还要检查你的其他代码是否有可能导致循环依赖的地方。比如,在实现UserDetailsService或其他Security相关接口时,确保你没有在实现方法中直接或间接地引用了需要AuthenticationManager的类或配置。
    2. 调试和排查: 如果以上方法都不能解决问题,可以考虑使用调试工具进行排查。通过设置断点,逐步执行代码,观察哪些部分可能导致了循环依赖。
    3. 更新库的版本: 如果以上方法都无效,可能是你使用的Spring Security版本与你的代码存在不兼容的问题。考虑更新到最新的Spring Security版本,并按照最新的最佳实践进行配置。

    希望上述建议能够帮助你解决问题。如果你有更多的信息或代码片段可以提供,我也许能更准确地帮你找到问题的原因。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 多数据源与Hystrix的冲突
  • ¥15 如何在线硕士了解,广告太多,希望有真实接触过的人回答下?(标签-学习|关键词-在线硕士)
  • ¥15 h5页面 使用u-upload 组件上传图片,如何解决,安卓系统不支持选择多张图片
  • ¥15 zabbix6.4与frp如何进行联动
  • ¥15 如何使用Echarts制作途中时间序列表
  • ¥15 图论相关的数学问题,共10个
  • ¥15 EtherCAT的问题,创建一个XML文件
  • ¥15 微信公众号羽毛球自动抢定场程序制作
  • ¥15 Fluent UDF 编写
  • ¥15 xcode开发的macos应用,如何使窗口居中显示?