νλ‘ νΈμλμμ λ°μ΄ν° ν΅μ κ³Όμ μμ λ°μν 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 μ€μ μ΄ μ¬λ°λ₯΄κ² μ μ©λ¨μ νμΈνμ΅λλ€.
CORS λ¬Έμ λ 보μκ³Ό κ΄λ ¨λ λ¬Έμ λ‘, λ€λ₯Έ 보μ νν°μ μΆ©λν κ°λ₯μ±μ΄ νμ μμ΅λλ€. λ°λΌμ νν°μ μ€ν μμλ₯Ό μ¬λ°λ₯΄κ² μ€μ νκ³ , νμν CORS μ€μ μ΄ μ¬λ°λ₯΄κ² μ μ©λμλμ§ νμ νμΈνλ κ²μ΄ μ€μν©λλ€. λν, κ°λ₯νλ€λ©΄ CORS μ μ± μ ν΅ν΄ νμ©ν μΆμ²λ₯Ό μ΅μννμ¬ λ³΄μμ κ°ννλ κ²μ΄ μ’μ΅λλ€.