Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃

这篇具有很好参考价值的文章主要介绍了Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在最新、独立的 Spring Security 5.7 版本,还是更新了不少内容,之前的 WebSecurityConfigurerAdapter 已经被废弃了,大家在使用的时候,可以参考下面的配置文件。

另外提醒一句,在最新的 Spring Boot 版本中的 Spring Security 并不一定也是最新版本,这个在实际开发中,需要留意一下哈。

此时,Spring Security 就不需要再去重写 configure() 方法了,直接通过 filterChain() 方法就能使用 HttpSecurity 来配置相关信息,非常方便。

官方参考文档中,也写得非常明白了,建议「逐字、逐句阅读」,供参考:Spring Security without the WebSecurityConfigurerAdapter

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

@Configuration
@EnableWebSecurity	// 添加 security 过滤器
@EnableGlobalMethodSecurity(prePostEnabled = true)	// 启用方法级别的权限认证
public class SpringSecurityConfig {
    @Autowired
    private XxxUserService xxxUserService;

    // 权限不足错误信息处理,包含认证错误与鉴权错误处理
    @Autowired
    private JwtAuthError jwtAuthError;

    // jwt 校验过滤器,从 http 头部 Authorization 字段读取 token 并校验
    @Bean
    public JwtAuthFilter authFilter() throws Exception {
        return new JwtAuthFilter();
    }
    
    /**
     * 密码明文加密方式配置
      * @return
     */
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    /**
     * 获取AuthenticationManager(认证管理器),登录时认证使用
     * @param authenticationConfiguration
     * @return
     * @throws Exception
     */
    @Bean
    public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
        return authenticationConfiguration.getAuthenticationManager();
    }

    @Bean
    SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http
                // 基于 token,不需要 csrf
                .csrf().disable()
                // 基于 token,不需要 session
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
                // 设置 jwtAuthError 处理认证失败、鉴权失败
                .exceptionHandling().authenticationEntryPoint(jwtAuthError).accessDeniedHandler(jwtAuthError).and()
                // 下面开始设置权限
                .authorizeRequests(authorize -> authorize
                        // 请求放开
                        .antMatchers("/**").permitAll()
                        .antMatchers("/**").permitAll()
                        // 其他地址的访问均需验证权限
                        .anyRequest().authenticated()
                )
                // 添加 JWT 过滤器,JWT 过滤器在用户名密码认证过滤器之前
                .addFilterBefore(authFilter(), UsernamePasswordAuthenticationFilter.class)
                // 认证用户时用户信息加载配置,注入springAuthUserService
                .userDetailsService(xxxAuthUserService)
                .build();
    }

    /**
     * 配置跨源访问(CORS)
     * @return
     */
    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
    }

}

如果文章能帮到您,能帮我顺手点个赞、转发一下嘛?真心感谢、超级感谢!!!

文章来源地址https://www.toymoban.com/news/detail-729256.html

到了这里,关于Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 五款拿来就能用的炫酷表白代码

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 Python弹窗表白代码,根据电脑性能设置弹窗个数,效果图如下: 完整代码如下,不用导入模块,复制就能用

    2024年02月12日
    浏览(43)
  • 十几款拿来就能用的炫酷表白代码

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 复制到文本文件,后缀名改成 vbs 就能运行,效果如下。 完整代码如下,复制就能用 为了防止有些小伙伴关机

    2024年02月11日
    浏览(53)
  • element ui的upload 手动上传头像(复制就能用)

      之前在网上看了好多,结果给的代码都不全,整了快一天,才整好,心态都崩了,想砸电脑 这里贴出来愿后来人省力  下面的代码除了最下面的axios请求需要和自己的匹配之外。其他的可以直接复制使用了   服务器接口处理函数 这里只是处理函数,其余的部分没有贴,因为

    2024年02月16日
    浏览(37)
  • u盘就能用:RadiAnt DICOM Viewer CD/DVD 2023.1

    RadiAnt DICOM Viewer CD/DVD 2023.1 built on March 29, 2023 DownloadCD/DVD Autorun Package New features: Length ratio calculation. Ellipsoid / bullet volume calculation. Improvements and bug fixes: Added support for certain DICOM files not fully compliant with the standard. Added support for some uncommon DICOM images with JPEG 2000 encoding. This version is

    2024年02月06日
    浏览(40)
  • 可以,很强,68行代码实现Bean的异步初始化,粘过去就能用。

    你好呀,我是歪歪。 前两天在看 SOFABoot 的时候,看到一个让我眼前一亮的东西,来给大家盘一下。 SOFABoot,你可能不眼熟,但是没关系,本文也不是给你讲这个东西的,你就认为它是 SpringBoot 的变种就行了。 因为有蚂蚁金服背书,所以主要是一些金融类的公司在使用这个框

    2024年02月07日
    浏览(58)
  • 群辉的docker里点点就能用的免费企业ERP应用(odoo13)

    手里有台群辉的NAS(DS218+),开着也用电的,团队人事也不多,想着把erp的服务器关了把erp软件弄NAS上,少一个设备也能省几个电费的。 网上大体查了下,很多高手都是要用到ssh终端软件,这给很多像我这样的小白很耐操作, 于是自己试了很多次终于成功了,下面就是操作的流

    2024年02月06日
    浏览(45)
  • SpringBoot最新版本Security配置(2023年),亲测成功

    SpringBoot最新版本Security配置(2023年),亲测成功 因为security默认密码加密为{noop}+密码 在用户进行用户认证登录的时候,前端传来的密码会用BCrpt加密方式进行加密,加密后的密码格式是{id}password,然后程序员会先获取到加密方式也即是{id},假设没有写passwordEncoder(new BCryptPasswordE

    2024年02月14日
    浏览(32)
  • Spring Security Oauth2.1 最新版 1.1.0 整合 gateway 完成授权认证(拥抱 springboot 3.1)

    目录 背景 demo地址 版本 Spring Boot 3.1 Spring Authorization Server 1.1.0 基础 spring security OAuth2 模块构成 授权方式 认证方式 集成过程 官方demo 代码集成 依赖 授权服务AuthorizationServerConfig配置 重要组件 测试 查看授权服务配置 访问授权服务 授权 回调 获取 access_token 获取用户信息 个性

    2024年02月08日
    浏览(64)
  • Spring Security安全配置

    使用Spring Boot与Spring MVC进行Web开发时,如果项目引入spring-boot- starter-security依赖启动器,MVC Security 安全管理功能就会自动生效,其默认的安全配置是在SecurityAutoConfiguration和UserDetailsServiceAutoConfiguration中实现的。其中,SecurityAutoConfiguration会导入并自动化配置SpringBootWebSecurityCo

    2024年02月15日
    浏览(42)
  • Spring 中 Bean 的配置细节

    大家好,我是 god23bin,今天继续说 Spring 的内容,关于 Spring 中 Bean 的配置的,通过上一篇文章的学习,我们知道了 Spring 中的依赖注入,其中有两种主要的方式,分别是 基于构造方法的 DI 和 基于 Setter 的 DI 。 我们知道,当写完一个普通的 Java 类后,想让 Spring IoC 容器在创建

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包