「已注销」 2021-11-19 16:08 采纳率: 33.3%
浏览 39

Spring Security的授权与认证的报错问题

情景:一个项目之中,网站系统分前台展示系统与和后台用户操作日志管理系统,使用Spring boot +Jwt+Spring Security,前台和后台用户操作日志管理系统都需要登录、授权与认证,当前台的授权与认证与后台的授权与认证都 implements UserDetailService 时会报错,该怎么解决呢?
报错信息:2021-11-19 15:54:21 [main] ERROR o.s.boot.web.embedded.tomcat.TomcatStarter - Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'jwtAuthenticationTokenFilter': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.security.core.userdetails.UserDetailsService' available: expected single matching bean but found 2: backendUserServiceImpl,forntendUserServiceImpl
  • 写回答

1条回答 默认 最新

  • 编号灬9527 2021-11-19 16:21
    关注

    又看到这个鬼需求了,你完全可以自己参考DaoAuthenticationProvider实现AuthenticationProvider,这就完全自己掌控登录校验过程了,在authenticate方法中动态选择UserDetailService;
    或者实现一个特殊的UserDetailService + @Primary,使用委托的方式,决定运行时具体选择哪个service去处理这个认证请求

    评论

报告相同问题?

问题事件

  • 创建了问题 11月19日