springsecurity UserDetailsService空指针
时间: 2023-08-11 07:08:58 浏览: 105
SpringSecurity笔记,编程不良人笔记
根据引用\[1\]中的描述,当使用Spring Security实现AuthenticationProvider接口时,注入UserDetailsService的值为空的问题可能会出现。这可能是因为没有正确配置UserDetailsService的实现类或没有将其注入到AuthenticationProvider中。您可以检查您的代码,确保正确配置了UserDetailsService并将其注入到AuthenticationProvider中。
另外,根据引用\[2\]中的代码,您可以尝试通过从SecurityContext中获取Authentication对象来获取UserDetailsService的值。您可以使用`SecurityContextHolder.getContext().getAuthentication()`来获取Authentication对象,然后使用`authentication.getPrincipal()`来获取User对象。请确保在获取User对象之前进行适当的类型转换和空值检查。
此外,根据引用\[3\]中的代码,您还可以尝试使用Spring的上下文来直接获取所需的类。您可以使用`SpringContextUtil.getContext().getBean(UserDetailsService.class)`来获取UserDetailsService的实例。请确保在使用之前已经正确配置了Spring的上下文。
综上所述,您可以通过检查配置和注入,以及使用SecurityContext或Spring的上下文来解决UserDetailsService为空指针的问题。
#### 引用[.reference_title]
- *1* *3* [spring security(坑)实现AuthenticationProvider接口@Autowired注入UserDetailsService值为空的情况](https://blog.csdn.net/bxznll_wjsfc/article/details/107168138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [SpringSecurity整合jwt](https://blog.csdn.net/qq_51705526/article/details/124544614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文