Skip to content

Commit 6733cdb

Browse files
authored
[feat] SpringDoc 설정 (#13)
* chore: Update README.md (#2) * feat: SpringDoc 설정
1 parent a14513a commit 6733cdb

File tree

5 files changed

+30
-2
lines changed

5 files changed

+30
-2
lines changed

back/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ dependencies {
3333
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
3434
implementation("org.springframework.boot:spring-boot-starter-security")
3535
implementation("org.springframework.boot:spring-boot-starter-web")
36+
37+
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.13")
38+
3639
compileOnly("org.projectlombok:lombok")
3740
developmentOnly("org.springframework.boot:spring-boot-devtools")
3841
runtimeOnly("com.h2database:h2")

back/src/main/java/com/back/global/security/CustomAuthenticationFilter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
4848
private void work(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
4949
// 인증이 필요없는 API 요청이라면 패스
5050
if (List.of("/auth/login", "/auth/signup", "/h2-console").contains(request.getRequestURI()) ||
51-
request.getRequestURI().startsWith("/h2-console/")) {
51+
request.getRequestURI().startsWith("/h2-console/") ||
52+
request.getRequestURI().startsWith("/swagger-ui/") ||
53+
request.getRequestURI().startsWith("/v3/api-docs/") ||
54+
request.getRequestURI().startsWith("/swagger-resources/")) {
5255
filterChain.doFilter(request, response);
5356
return;
5457
}

back/src/main/java/com/back/global/security/SecurityConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
2727
.requestMatchers("/h2-console/**").permitAll()
2828
.requestMatchers("/auth/**").permitAll()
2929
.requestMatchers("/actuator/**").permitAll()
30+
.requestMatchers("/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**").permitAll()
3031
.anyRequest().authenticated()
3132
)
3233
.headers(headers -> headers
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.back.global.springdoc;
2+
3+
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
4+
import io.swagger.v3.oas.annotations.enums.SecuritySchemeIn;
5+
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
6+
import io.swagger.v3.oas.annotations.info.Info;
7+
import io.swagger.v3.oas.annotations.security.SecurityScheme;
8+
import org.springframework.context.annotation.Configuration;
9+
10+
@Configuration
11+
@OpenAPIDefinition(info = @Info(title = "API 서버", version = "beta", description = "API 서버 문서입니다."))
12+
@SecurityScheme(
13+
name = "cookieAuth",
14+
type = SecuritySchemeType.APIKEY,
15+
in = SecuritySchemeIn.COOKIE,
16+
paramName = "accessToken"
17+
)
18+
public class SpringDocConfig {
19+
}

back/src/main/resources/application.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
server:
22
port: 8080
33
forward-headers-strategy: native
4+
45
spring:
56
application:
67
name: back
@@ -32,12 +33,13 @@ spring:
3233
use_sql_comments: true
3334
default_batch_fetch_size: 100
3435
open-in-view: false
36+
3537
springdoc: #Swagger ??
3638
default-produces-media-type: application/json;charset=UTF-8
3739
swagger-ui:
3840
path: /swagger-ui.html
3941
api-docs:
40-
path: /api-docs
42+
path: /v3/api-docs
4143
logging:
4244
level:
4345
org.hibernate.orm.jdbc.bind: TRACE

0 commit comments

Comments
 (0)