Skip to content

Commit c86ad58

Browse files
authored
Merge pull request #56 from CommitField/feature/#6
fix : local redis ๋น„ํ™œ์„ฑํ™”, ์‹œํ๋ฆฌํ‹ฐ ์ฃผ์„์ฒ˜๋ฆฌ
2 parents 1844783 + 335d88b commit c86ad58

File tree

2 files changed

+71
-76
lines changed

2 files changed

+71
-76
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,76 @@
11
package cmf.commitField.global.security;
22

3-
import cmf.commitField.domain.user.entity.CustomOAuth2User;
4-
import cmf.commitField.domain.user.service.CustomOAuth2UserService;
5-
import org.springframework.context.annotation.Bean;
63
import org.springframework.context.annotation.Configuration;
7-
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
84
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
9-
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
10-
import org.springframework.security.config.http.SessionCreationPolicy;
11-
import org.springframework.security.core.context.SecurityContextHolder;
12-
import org.springframework.security.oauth2.core.user.OAuth2User;
13-
import org.springframework.security.web.SecurityFilterChain;
145

156
@Configuration
167
@EnableWebSecurity
178
public class SecurityConfig {
18-
private final CustomOAuth2UserService customOAuth2UserService;
19-
20-
public SecurityConfig(CustomOAuth2UserService customOAuth2UserService) {
21-
this.customOAuth2UserService = customOAuth2UserService;
22-
}
23-
24-
@Bean
25-
protected SecurityFilterChain config(HttpSecurity http) throws Exception {
26-
// ๊ถŒํ•œ ์„ค์ •
27-
http
28-
.authorizeHttpRequests(auth -> auth
29-
.requestMatchers("/actuator/**").permitAll() // actuator ์—”๋“œํฌ์ธํŠธ ํ—ˆ์šฉ
30-
.anyRequest().authenticated() // ๊ทธ ์™ธ ๋ชจ๋“  ์š”์ฒญ์€ ์ธ์ฆ ํ•„์š”
31-
);
32-
33-
//๋กœ๊ทธ์ธ ๊ด€๋ จ ์„ค์ •
34-
http
35-
.oauth2Login(oauth2 -> oauth2
36-
.loginPage("/login") // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ง€์ •
37-
.successHandler((request, response, authentication) -> {
38-
// ์ธ์ฆ ์ •๋ณด๊ฐ€ SecurityContext์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅ
39-
SecurityContextHolder.getContext().setAuthentication(authentication);
40-
41-
CustomOAuth2User customUser = (CustomOAuth2User) authentication.getPrincipal();
42-
43-
// ๋””๋ฒ„๊น…: authentication ์ •๋ณด ํ™•์ธ
44-
System.out.println("Authentication: " + authentication);
45-
System.out.println("Principal: " + authentication.getPrincipal());
46-
47-
if (authentication != null && authentication.getPrincipal() != null) {
48-
//์ธ๊ฐ€๊ฐ€ ์žˆ์œผ๋ฉด ์œ ์ € ์ •๋ณด๋ฅผ ์ €์žฅ
49-
OAuth2User principal = (OAuth2User) authentication.getPrincipal();
50-
String username = principal.getAttribute("login");
51-
52-
// ์„ธ์…˜์— ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ถ”๊ฐ€
53-
request.getSession().setAttribute("user", username);
54-
55-
response.sendRedirect("/"); // ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ›„ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
56-
} else {
57-
// ์ธ์ฆ ์‹คํŒจ ์‹œ ์ฒ˜๋ฆฌ
58-
response.sendRedirect("/login?error=authenticationFailed");
59-
}
60-
})
61-
)
62-
.sessionManagement(session -> session
63-
.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) // ์„ธ์…˜ ์ •์ฑ… ์„ค์ •
64-
.invalidSessionUrl("/login?error=invalidSession") // ์„ธ์…˜์ด ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ์ด๋™ํ•  URL
65-
.maximumSessions(1) // ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ํ•œ ๋ฒˆ์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ
66-
.expiredUrl("/login?error=sessionExpired") // ์„ธ์…˜ ๋งŒ๋ฃŒ ํ›„ ์ด๋™ํ•  URL ์„ค์ •
67-
);
68-
69-
//๋กœ๊ทธ์•„์›ƒ ๊ด€๋ จ ์„ค์ •
70-
http
71-
.logout(logout -> logout
72-
.logoutUrl("/logout") // ๋กœ๊ทธ์•„์›ƒ URL ์„ค์ •
73-
.logoutSuccessUrl("/") // ๋กœ๊ทธ์•„์›ƒ ์„ฑ๊ณต ํ›„ ์ด๋™ํ•  URL
74-
.invalidateHttpSession(true) // ๋กœ๊ทธ์•„์›ƒ ์‹œ ์„ธ์…˜ ๋ฌดํšจํ™”
75-
.clearAuthentication(true) // ์ธ์ฆ ์ •๋ณด ์ง€์šฐ๊ธฐ
76-
.deleteCookies("JSESSIONID") // ์„ธ์…˜ ์ฟ ํ‚ค ์‚ญ์ œ
77-
);
78-
http
79-
.csrf(
80-
AbstractHttpConfigurer::disable // CSRF ๋ณดํ˜ธ ๋น„ํ™œ์„ฑํ™”
81-
);
82-
83-
return http.build();
84-
}
9+
// private final CustomOAuth2UserService customOAuth2UserService;
10+
//
11+
// public SecurityConfig(CustomOAuth2UserService customOAuth2UserService) {
12+
// this.customOAuth2UserService = customOAuth2UserService;
13+
// }
14+
//
15+
// @Bean
16+
// protected SecurityFilterChain config(HttpSecurity http) throws Exception {
17+
// // ๊ถŒํ•œ ์„ค์ •
18+
// http
19+
// .authorizeHttpRequests(auth -> auth
20+
// .requestMatchers("/actuator/**").permitAll() // actuator ์—”๋“œํฌ์ธํŠธ ํ—ˆ์šฉ
21+
// .anyRequest().authenticated() // ๊ทธ ์™ธ ๋ชจ๋“  ์š”์ฒญ์€ ์ธ์ฆ ํ•„์š”
22+
// );
23+
//
24+
// //๋กœ๊ทธ์ธ ๊ด€๋ จ ์„ค์ •
25+
// http
26+
// .oauth2Login(oauth2 -> oauth2
27+
// .loginPage("/login") // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์ง€์ •
28+
// .successHandler((request, response, authentication) -> {
29+
// // ์ธ์ฆ ์ •๋ณด๊ฐ€ SecurityContext์— ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅ
30+
// SecurityContextHolder.getContext().setAuthentication(authentication);
31+
//
32+
// CustomOAuth2User customUser = (CustomOAuth2User) authentication.getPrincipal();
33+
//
34+
// // ๋””๋ฒ„๊น…: authentication ์ •๋ณด ํ™•์ธ
35+
// System.out.println("Authentication: " + authentication);
36+
// System.out.println("Principal: " + authentication.getPrincipal());
37+
//
38+
// if (authentication != null && authentication.getPrincipal() != null) {
39+
// //์ธ๊ฐ€๊ฐ€ ์žˆ์œผ๋ฉด ์œ ์ € ์ •๋ณด๋ฅผ ์ €์žฅ
40+
// OAuth2User principal = (OAuth2User) authentication.getPrincipal();
41+
// String username = principal.getAttribute("login");
42+
//
43+
// // ์„ธ์…˜์— ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ถ”๊ฐ€
44+
// request.getSession().setAttribute("user", username);
45+
//
46+
// response.sendRedirect("/"); // ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ›„ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
47+
// } else {
48+
// // ์ธ์ฆ ์‹คํŒจ ์‹œ ์ฒ˜๋ฆฌ
49+
// response.sendRedirect("/login?error=authenticationFailed");
50+
// }
51+
// })
52+
// )
53+
// .sessionManagement(session -> session
54+
// .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) // ์„ธ์…˜ ์ •์ฑ… ์„ค์ •
55+
// .invalidSessionUrl("/login?error=invalidSession") // ์„ธ์…˜์ด ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ์ด๋™ํ•  URL
56+
// .maximumSessions(1) // ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ํ•œ ๋ฒˆ์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ
57+
// .expiredUrl("/login?error=sessionExpired") // ์„ธ์…˜ ๋งŒ๋ฃŒ ํ›„ ์ด๋™ํ•  URL ์„ค์ •
58+
// );
59+
//
60+
// //๋กœ๊ทธ์•„์›ƒ ๊ด€๋ จ ์„ค์ •
61+
// http
62+
// .logout(logout -> logout
63+
// .logoutUrl("/logout") // ๋กœ๊ทธ์•„์›ƒ URL ์„ค์ •
64+
// .logoutSuccessUrl("/") // ๋กœ๊ทธ์•„์›ƒ ์„ฑ๊ณต ํ›„ ์ด๋™ํ•  URL
65+
// .invalidateHttpSession(true) // ๋กœ๊ทธ์•„์›ƒ ์‹œ ์„ธ์…˜ ๋ฌดํšจํ™”
66+
// .clearAuthentication(true) // ์ธ์ฆ ์ •๋ณด ์ง€์šฐ๊ธฐ
67+
// .deleteCookies("JSESSIONID") // ์„ธ์…˜ ์ฟ ํ‚ค ์‚ญ์ œ
68+
// );
69+
// http
70+
// .csrf(
71+
// AbstractHttpConfigurer::disable // CSRF ๋ณดํ˜ธ ๋น„ํ™œ์„ฑํ™”
72+
// );
73+
//
74+
// return http.build();
75+
// }
8576
}

โ€Žsrc/main/resources/application.yml

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ spring:
2727
use_sql_comments: true
2828
websocket:
2929
enabled: true
30+
autoconfigure: # ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•  ๋•Œ๋Š” Redis์™€ Session ์„ค์ •์„ ์ œ์™ธ
31+
exclude:
32+
- org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
33+
- org.springframework.boot.autoconfigure.session.SessionAutoConfiguration
3034
custom:
3135
dev:
3236
cookieDomain: localhost

0 commit comments

Comments
ย (0)