当前位置:   article > 正文

Spring Security6.x的登录验证_spring-security 6 配置userdetailsservice

spring-security 6 配置userdetailsservice

版本为:SpringBoot3.1.2, Spring Security 6.1.2

       博主学习三更博客项目的时候,在P35中遇到一个问题,在Spring Security6版本中,很多类被废弃,而且有些方法的名字和用法也已经更改,所以通过查询很多资料,将需要的更改总结如下:
1 更改SecurityConfig.java文件

  1. @Configuration
  2. //添加security过滤器
  3. @EnableWebSecurity
  4. public class SecurityConfig{
  5. @Resource
  6. UserDetailsServiceImpl userDetailsService;
  7. @Bean
  8. SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
  9. http
  10. // 基于 token,不需要 csrf
  11. // csrf表示跨域漏洞防御
  12. // 可以使用Customizer.withDefaults():关闭
  13. // 相当于csrf -> csrf.disable()
  14. .csrf(csrf -> csrf.disable())
  15. // 基于 token,不需要 session
  16. .sessionManagement(withDefaults());
  17. // 设置 处理认证失败、鉴权失败处理器
  18. http.exceptionHandling(withDefaults());
  19. http
  20. // authorizeHttpRequests:针对http请求进行授权配置
  21. // permitAll: 具有所有权限,也就是可以匿名访问
  22. // authenticated: 认证【登录】
  23. .authorizeHttpRequests(authorizeHttpRequests ->
  24. authorizeHttpRequests
  25. .requestMatchers("/login").anonymous()
  26. // 其他地址的访问均需验证权限
  27. .anyRequest().permitAll()
  28. );
  29. // 添加认证过滤器,过滤器在用户名密码认证过滤器之前
  30. //.addFilterBefore(new JwtFilter(), UsernamePasswordAuthenticationFilter.class)
  31. // 退出
  32. //.logout(logout -> logout.disable());
  33. //允许跨域
  34. return http.cors(withDefaults()).build();
  35. }
  36. @Bean
  37. // 密码加密,方便之后进行密码加密对比
  38. public PasswordEncoder passwordEncoder(){
  39. return new BCryptPasswordEncoder();
  40. }
  41. @Bean
  42. public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception{
  43. return config.getAuthenticationManager();
  44. }
  45. @Bean
  46. public AuthenticationProvider authenticationProvider(){
  47. DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider();
  48. daoAuthenticationProvider.setUserDetailsService(userDetailsService);
  49. daoAuthenticationProvider.setPasswordEncoder(passwordEncoder());
  50. return daoAuthenticationProvider;
  51. }
  52. }

2 如果后续运行出现java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter
需要在framework中的pom.xml中添加依赖

  1. <dependency>
  2. <groupId>javax.xml.bind</groupId>
  3. <artifactId>jaxb-api</artifactId>
  4. <version>2.3.1</version>
  5. </dependency>

参考链接:

https://blog.csdn.net/weixin_43883917/article/details/124430507

https://blog.csdn.net/hsuehgw/article/details/129140646

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/906240
推荐阅读
相关标签
  

闽ICP备14008679号