diff --git a/pom.xml b/pom.xml
index aa76dd4..463c291 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,11 @@
${jjwt.version}
runtime
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.5.0
+
org.projectlombok
lombok
diff --git a/src/main/java/com/example/bankcards/config/OpenApiConfig.java b/src/main/java/com/example/bankcards/config/OpenApiConfig.java
new file mode 100644
index 0000000..0aa3530
--- /dev/null
+++ b/src/main/java/com/example/bankcards/config/OpenApiConfig.java
@@ -0,0 +1,36 @@
+package com.example.bankcards.config;
+
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.security.SecurityRequirement;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class OpenApiConfig {
+
+ @Bean
+ public OpenAPI openAPI() {
+ return new OpenAPI()
+ .info(
+ new Info()
+ .title("Bank Card Management API")
+ .description("REST API for managing bank cards")
+ .version("1.0")
+ )
+ .addSecurityItem(
+ new SecurityRequirement().addList("Bearer Authentication")
+ )
+ .components(
+ new Components().addSecuritySchemes(
+ "Bearer Authentication",
+ new SecurityScheme()
+ .type(SecurityScheme.Type.HTTP)
+ .scheme("bearer")
+ .bearerFormat("JWT")
+ )
+ );
+ }
+}
diff --git a/src/main/java/com/example/bankcards/config/SecurityConfig.java b/src/main/java/com/example/bankcards/config/SecurityConfig.java
index 34d211d..95820c3 100644
--- a/src/main/java/com/example/bankcards/config/SecurityConfig.java
+++ b/src/main/java/com/example/bankcards/config/SecurityConfig.java
@@ -4,7 +4,6 @@ import com.example.bankcards.security.JwtAuthenticationFilter;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
@@ -38,6 +37,12 @@ public class SecurityConfig {
auth
.requestMatchers("/api/auth/**")
.permitAll()
+ .requestMatchers(
+ "/swagger-ui/**",
+ "/v3/api-docs/**",
+ "/swagger-ui.html"
+ )
+ .permitAll()
.requestMatchers("/api/admin/**")
.hasAuthority("ROLE_ADMIN")
.anyRequest()
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2a27258..f38bd86 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -19,3 +19,7 @@ app:
expiration: 86400000
card:
encryption-key: 1234567890123456
+
+springdoc:
+ swagger-ui:
+ path: /swagger-ui.html