Skip to content

Commit 2fec964

Browse files
committed
feat : 최신 앱 버전 API 구현
- yaml 에 버전 관련 정보 저장 - yaml 에서 해당 정보 읽어와서 전달
1 parent 78d5f46 commit 2fec964

File tree

4 files changed

+60
-12
lines changed

4 files changed

+60
-12
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package umc.th.juinjang.api.appVersion.controller;
2+
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.RestController;
6+
7+
import lombok.RequiredArgsConstructor;
8+
import umc.th.juinjang.api.appVersion.controller.response.AppVersionResponse;
9+
import umc.th.juinjang.api.dto.ApiResponse;
10+
import umc.th.juinjang.config.AppVersionProperties;
11+
12+
@RestController
13+
@RequestMapping("/api/app/version")
14+
@RequiredArgsConstructor
15+
public class AppVersionController {
16+
17+
private final AppVersionProperties appVersionProperties;
18+
19+
@GetMapping("/ios")
20+
public ApiResponse<AppVersionResponse> getIOSVersion() {
21+
return ApiResponse.onSuccess(AppVersionResponse.of(appVersionProperties.getIos()));
22+
}
23+
24+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package umc.th.juinjang.api.appVersion.controller.response;
2+
3+
public record AppVersionResponse(
4+
String version
5+
) {
6+
public static AppVersionResponse of(String version) {
7+
return new AppVersionResponse(version);
8+
}
9+
}

src/main/java/umc/th/juinjang/auth/config/SecurityConfig.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.springframework.core.annotation.Order;
88
import org.springframework.core.env.Environment;
99
import org.springframework.security.authentication.AuthenticationManager;
10-
import org.springframework.security.config.Customizer;
1110
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
1211
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1312
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -27,14 +26,6 @@
2726
@EnableWebSecurity
2827
@RequiredArgsConstructor
2928
public class SecurityConfig {
30-
private final AuthenticationConfiguration authenticationConfiguration;
31-
32-
private final JwtService jwtService;
33-
34-
private final JwtExceptionFilter jwtExceptionFilter;
35-
36-
private final Environment environment;
37-
3829
// 공통적으로 허용되는 URL 패턴
3930
private static final String[] COMMON_WHITELIST_URLS = {
4031
"/h2-console/**",
@@ -44,9 +35,9 @@ public class SecurityConfig {
4435
"/actuator/prometheus",
4536
"/api/auth/v2/apple/**",
4637
"/api/auth/v2/kakao/**",
47-
"/api/members/nickname/exists"
38+
"/api/members/nickname/exists",
39+
"/api/app/version/ios"
4840
};
49-
5041
// 개발 환경에서만 추가로 허용되는 URL 패턴
5142
private static final String[] DEV_WHITELIST_URLS = {
5243
"/swagger-ui/**",
@@ -57,6 +48,10 @@ public class SecurityConfig {
5748
"/configuration/ui",
5849
"/v3/api-docs/**"
5950
};
51+
private final AuthenticationConfiguration authenticationConfiguration;
52+
private final JwtService jwtService;
53+
private final JwtExceptionFilter jwtExceptionFilter;
54+
private final Environment environment;
6055

6156
@Bean
6257
@Order(0)
@@ -87,7 +82,7 @@ protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
8782

8883
http
8984
.csrf(AbstractHttpConfigurer::disable)
90-
.formLogin(Customizer.withDefaults())
85+
.formLogin(AbstractHttpConfigurer::disable)
9186
.sessionManagement((sessionManagement) ->
9287
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
9388
// 세션을 사용하지 않는다고 설정함
@@ -98,6 +93,7 @@ protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
9893
authorizeRequests
9994
.requestMatchers(
10095
AntPathRequestMatcher.antMatcher("/api/members/nickname/exists"),
96+
AntPathRequestMatcher.antMatcher("/api/app/version/ios"),
10197
AntPathRequestMatcher.antMatcher("/h2-console/**")
10298
).permitAll()
10399
.requestMatchers(
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package umc.th.juinjang.config;
2+
3+
import org.springframework.boot.context.properties.ConfigurationProperties;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
import lombok.Getter;
7+
import lombok.Setter;
8+
9+
@Configuration
10+
@ConfigurationProperties(prefix = "app.version")
11+
@Getter
12+
@Setter
13+
public class AppVersionProperties {
14+
15+
/**
16+
* IOS 의 어플 최신 버전
17+
*/
18+
private String ios;
19+
}

0 commit comments

Comments
 (0)