springSecurity配置(整合jwt)

编程入门 行业动态 更新时间:2024-10-07 03:25:48

<a href=https://www.elefans.com/category/jswz/34/1744694.html style=springSecurity配置(整合jwt)"/>

springSecurity配置(整合jwt)

springsecurtty config

/**

  • @author shuang.kou Saving

  • @version 1.1

  • @date 2020.11.28 14:16

  • @description Spring Security配置类
    **/
    @EnableWebSecurity
    @EnableGlobalMethodSecurity(prePostEnabled = true)
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    private final StringRedisTemplate stringRedisTemplate;

    public SecurityConfiguration(StringRedisTemplate stringRedisTemplate) {
    this.stringRedisTemplate = stringRedisTemplate;
    }

    /**

    • 密码编码器
      */
      @Bean
      public BCryptPasswordEncoder bCryptPasswordEncoder() {
      return new BCryptPasswordEncoder();
      }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.cors(withDefaults())
    // 禁用 CSRF
    .csrf().disable()
    .authorizeRequests()
    // 指定的接口直接放行
    // swagger
    .antMatchers(SecurityConstants.SWAGGER_WHITELIST).permitAll()
    .antMatchers(HttpMethod.POST, SecurityConstants.SYSTEM_WHITELIST).permitAll()
    // 其他的接口都需要认证后才能请求
    .anyRequest().authenticated()
    .and()
    //添加自定义Filter
    .addFilter(new JwtAuthenticationFilter(authenticationManager(), stringRedisTemplate))
    //添加自定义Filter
    .addFilter(new JwtAuthorizationFilter(authenticationManager(), stringRedisTemplate))
    // 不需要session(不创建会话)
    .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
    // 授权异常处理
    .exceptionHandling().authenticationEntryPoint(new JwtAuthenticationEntryPoint())
    .accessDeniedHandler(new JwtAccessDeniedHandler());
    // 防止H2 web 页面的Frame 被拦截
    http.headers().frameOptions().disable();
    }

    /**

    • Cors配置优化
      /
      @Bean
      CorsConfigurationSource corsConfigurationSource() {
      org.springframework.web.cors.CorsConfiguration configuration = new CorsConfiguration();
      configuration.setAllowedOrigins(singletonList(""));
      configuration.setAllowedHeaders(singletonList("
      "));
      configuration.setAllowedMethods(Arrays.asList(“GET”, “POST”, “DELETE”, “PUT”, “OPTIONS”));
      configuration.setExposedHeaders(singletonList(SecurityConstants.TOKEN_HEADER));
      configuration.setAllowCredentials(false);
      configuration.setMaxAge(3600L);
      UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
      source.registerCorsConfiguration("/
      ", configuration);
      return source;
      }

}


更多推荐

springSecurity配置(整合jwt)

本文发布于:2024-03-10 00:05:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726507.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:springSecurity   jwt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!