trouble shooting - CORS

leemiyeonΒ·2023λ…„ 7μ›” 22일

Project / creator community

λͺ©λ‘ 보기
9/11

πŸ› οΈ ν”„λ‘œμ νŠΈ νŠΈλŸ¬λΈ”μŠˆνŒ…

ν”„λ‘ νŠΈμ—”λ“œμ™€μ˜ 데이터 톡신 κ³Όμ •μ—μ„œ λ°œμƒν•œ CORS 이슈

πŸ—‚οΈ κ΄€λ ¨ μ½”λ“œ/파일 μœ„μΉ˜

πŸ› SecurityConfiguration :

πŸ› οΈ WebConfiguration

πŸ› 문제 ν˜„μƒ

SecurityConfiguration ν΄λž˜μŠ€μ— CORS 섀정을 μΆ”κ°€ν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³ , μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ CORS λ¬Έμ œκ°€ 계속 λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ’‘ 원인

CORS(Cross-Origin Resource Sharing) λ¬Έμ œλŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λ‹€λ₯Έ 좜처의 λ¦¬μ†ŒμŠ€λ₯Ό μš”μ²­ν•  λ•Œ λ³΄μ•ˆμ„ μœ„ν•΄ λ°œμƒν•©λ‹ˆλ‹€. 이 문제의 주된 원인은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

1. 잘λͺ»λœ CORS μ„€μ •: SecurityConfigurationμ—μ„œ μ„€μ •ν•œ CORS 값이 μ˜¬λ°”λ₯΄μ§€ μ•Šμ•˜κ±°λ‚˜, ν•„μš”ν•œ 섀정이 λˆ„λ½λ˜μ—ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
2. ν•„ν„° μˆœμ„œ 문제: ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” λ³΄μ•ˆ ν”„λ ˆμž„μ›Œν¬(Spring Security λ“±)μ—λŠ” μ—¬λŸ¬ ν•„ν„°κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 필터듀은 νŠΉμ • μˆœμ„œλ‘œ μ‹€ν–‰λ˜λŠ”λ°, CORS ν•„ν„°κ°€ λ¨Όμ € μ‹€ν–‰λ˜μ§€ μ•Šκ³  λ‹€λ₯Έ 필터에 μ˜ν•΄ λ¨Όμ € μ°¨λ‹¨λ˜λ©΄, CORS λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

🚧 ν•΄κ²° 방법

CORS 문제 해결을 μœ„ν•œ ν•„ν„° μΆ”κ°€: HttpServletWrappingFilter ν•„ν„°λ₯Ό μΆ”κ°€ν•¨μœΌλ‘œμ¨ CORS 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. 이 ν•„ν„°λ₯Ό μΆ”κ°€ν•¨μœΌλ‘œμ¨ μ›ν•˜λŠ” CORS 섀정이 μ˜¬λ°”λ₯΄κ²Œ μ μš©λ˜μ—ˆκ³ , 이둜 인해 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ν•„ν„° μš°μ„  μˆœμœ„ λ³€κ²½: WebConfiguration ν΄λž˜μŠ€μ—μ„œ HttpServletWrappingFilterλ₯Ό κ°€μž₯ μš°μ„  μˆœμœ„λ‘œ μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ HttpServletWrappingFilterκ°€ λͺ¨λ“  μš”μ²­μ„ κ°€μž₯ λ¨Όμ € μ²˜λ¦¬ν•˜κ²Œ λ©λ‹ˆλ‹€. μ΄λŠ” λ‹€λ₯Έ 필터에 μ˜ν•΄ CORS 섀정이 λ¬΄μ‹œλ˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€.

πŸ“ 정리 및 κ²°λ‘ 

이번 CORS λ¬Έμ œλŠ” HttpServletWrappingFilterλ₯Ό κ°€μž₯ μš°μ„  μˆœμœ„λ‘œ μ„€μ •ν•˜κ³ , ν•΄λ‹Ή ν•„ν„°λ₯Ό μΆ”κ°€ν•¨μœΌλ‘œμ¨ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹€λ₯Έ 필터에 μ˜ν•΄ CORS 섀정이 λ¬΄μ‹œλ˜λŠ” 것을 λ°©μ§€ν•˜κ³ , μ›ν•˜λŠ” CORS 섀정이 μ˜¬λ°”λ₯΄κ²Œ μ μš©λ¨μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

πŸ“š μ°Έκ³  자료

https://kk-programming.tistory.com/66

πŸ“Œ 팁/μ£Όμ˜μ‚¬ν•­

CORS λ¬Έμ œλŠ” λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ 문제둜, λ‹€λ₯Έ λ³΄μ•ˆ 필터와 μΆ©λŒν•  κ°€λŠ₯성이 항상 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν•„ν„°μ˜ μ‹€ν–‰ μˆœμ„œλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€μ •ν•˜κ³ , ν•„μš”ν•œ CORS 섀정이 μ˜¬λ°”λ₯΄κ²Œ μ μš©λ˜μ—ˆλŠ”μ§€ 항상 ν™•μΈν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. λ˜ν•œ, κ°€λŠ₯ν•˜λ‹€λ©΄ CORS 정책을 톡해 ν—ˆμš©ν•  좜처λ₯Ό μ΅œμ†Œν™”ν•˜μ—¬ λ³΄μ•ˆμ„ κ°•ν™”ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

0개의 λŒ“κΈ€