微信公众号私自建设电影网站,网站前台开发教程,wordpress页尾添加信息,做网站策划书#x1f341; 作者#xff1a;知识浅谈#xff0c;CSDN签约讲师#xff0c;CSDN博客专家#xff0c;华为云云享专家#xff0c;阿里云专家博主 #x1f4cc; 擅长领域#xff1a;全栈工程师、爬虫、ACM算法 #x1f492; 公众号#xff1a;知识浅谈 #x1f525;网站… 作者知识浅谈CSDN签约讲师CSDN博客专家华为云云享专家阿里云专家博主 擅长领域全栈工程师、爬虫、ACM算法 公众号知识浅谈 网站vip.zsqt.cc SpringSecurity结合knife4j实现swagger文档
正菜来了
引入依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId
/dependencydependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactIdversion3.0.3/version/dependencyswagger配置
spring:mvc:pathmatch:matching-strategy: ant_path_matcher配置类
package com.zsqt.security.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** author: YinLei* Package: com.zsqt.security.config* date: 2024/1/4 14:29* Description:* version: 1.0*/
Configuration
EnableSwagger2
public class SwaggerConfiguration {Beanpublic Docket createDocApi() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build().groupName(接口文档).pathMapping(/).apiInfo(DocApi());}/*** 构建 api文档的详细信息函数,注意这里的注解引用的是哪个*/private ApiInfo DocApi() {return new ApiInfoBuilder()//页面标题.title(接口测试工具)//创建人.contact(new Contact(, , ))//版本号.version(1.0)//描述.description(接口测试工具).build();}}
security放行 .antMatchers(/doc.html, /webjars/**, /v2/api-docs, /swagger-resources/**).permitAll()
Slf4j
EnableWebSecurity
Configuration
RequiredArgsConstructor
public class SecurityConfiguration {private final JwtAuthenticationFilter jwtFilter; // 注入JwtAuthenticationFilterprivate final JwtUtil jwtUtil; // 注入JwtUtilAutowiredprivate CustUserServiceImpl custUserService;Beanpublic BCryptPasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}/*** 获取AuthenticationManager 登录验证的时候使用* param authenticationConfiguration* return* throws Exception*/Beanpublic AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {return authenticationConfiguration.getAuthenticationManager();}Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {return http.authorizeHttpRequests((authz)-authz.antMatchers(/user/login).permitAll() // 允许匿名用户访问login.antMatchers(/user/logout).permitAll() // 允许匿名用户访问logout.antMatchers(/doc.html, /webjars/**, /v2/api-docs, /swagger-resources/**).permitAll().anyRequest().authenticated()) // 其他请求必须经过身份验证.csrf(AbstractHttpConfigurer::disable) // 禁用csrf.cors(conf-conf.configurationSource(corsConfigurationSource())) // 配置跨域.sessionManagement(conf-conf.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) // 禁用session.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)//指定过滤器.build();}}总结
大功告成撒花致谢关注我不迷路带你起飞带你富。 Writted By 知识浅谈