λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

Spring45

Spring Security - CSRF(Cross-Site Request Forgery) β€’ μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! β€’ 넀이버 λΈ”λ‘œκ·Έ β€’ GitHub β€’ Study-GitHub β€’ πŸ” πŸ“Ž CSRF(Cross-Site Request Forgery) μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ CSRF(Cross-Site Request Forgery) μž…λ‹ˆλ‹€! μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°μ˜ μ–΄λ…Έν…Œμ΄μ…˜μΈ @EnableWebSecurity μ–΄λ…Έν…Œμ΄μ…˜μ€ 기본적으둜 CSRF 곡격을 λ°©μ§€ν•˜λŠ” κΈ°λŠ₯을 μ§€μ›ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‹œνλ¦¬ν‹°λ₯Ό μ μš©ν•˜λ©΄ 보톡 configure() λ©”μ„œλ“œμ—λŠ” μ•„λž˜μ™€ 같이 csrf().disable()둜 μ μš©μ„ ν•˜λŠ”λ°μš”, μ΄λŸ¬ν•œ CSRFλž€ 무엇인지 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€! πŸ˜ƒ 🎯 CSRFλž€? μ‚¬μ΄νŠΈ κ°„ μš”μ²­ μœ„μ‘°(Cross-Site .. 2021. 5. 26.
[Spring] 객체볡사 BeanUtils.copyProperties() & μž‘λ™ 원리 β€’ μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! β€’ 넀이버 λΈ”λ‘œκ·Έ β€’ GitHub β€’ Study-GitHub β€’ πŸ” βœ” BeanUtils.copyProperties() μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ Spring의 BeanUtils 클래슀의 copyProperties λ©”μ†Œλ“œ μž…λ‹ˆλ‹€. 졜근 μŠ€ν”„λ§μ„ κ³΅λΆ€ν•˜λ©° Entity와 Dto μ‚¬μ΄μ—μ„œ 값을 λ³΅μ‚¬ν• λ•Œ 이 λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ”κ±Έ λ΄€μ—ˆλŠ”λ°μš”, λ”°λΌμ„œ μ •λ¦¬ν•΄λ³΄κ³ μž μž‘μ„±ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. public UserDto(User source) { copyProperties(source, this); this.profileImageUrl = source.getProfileImageUrl().orElse(n.. 2021. 2. 20.
[Spring] Maven λ©€ν‹°λͺ¨λ“ˆ ν”„λ‘œμ νŠΈ β€’ μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! β€’ 넀이버 λΈ”λ‘œκ·Έ β€’ GitHub β€’ Study-GitHub β€’ πŸ” βœ” μŠ€ν”„λ§ - Maven λ©€ν‹°λͺ¨λ“ˆ(Multi-Module) ν”„λ‘œμ νŠΈ μ…‹νŒ…ν•˜κΈ°(IntelliJ) μ•ˆλ…•ν•˜μ„Έμš”, 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ μΈν…”λ¦¬μ œμ΄μ—μ„œ Maven 기반의 Springμ—μ„œ λ©€ν‹°λͺ¨λ“ˆ ν”„λ‘œμ νŠΈ μ…‹νŒ…ν•˜κΈ°μž…λ‹ˆλ‹€. λ©€ν‹° λͺ¨λ“ˆμ΄λž€ ? ν•œ ν”„λ‘œμ νŠΈμ— 라이브러리처럼 μ‚¬μš© κ°€λŠ₯ν•œ μƒνƒœλ‘œ λͺ¨λ“ˆλ“€μ„ κ΅¬μ„±ν•˜κ³ , λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ„€μ •ν•˜λŠ” 것을 λ§ν•˜λŠ”λ°μš”, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ—¬λŸ¬ κΈ°λŠ₯을 λΆ„ν• ν•΄μ„œ μ—¬λŸ¬ λͺ¨λ“ˆλ‘œ λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 보닀 μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜ μ‚¬μ΄νŠΈλ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš” ! woowabros.github.io.. 2021. 2. 9.
[Spring] - @ModelAttribute, @RequestParam β€’ μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έμ™€ μ†ŒμŠ€μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” GitHubκ°€ λ”°λ‘œ μžˆμŠ΅λ‹ˆλ‹€. β€’ 넀이버 λΈ”λ‘œκ·Έ β€’ GitHub βœ” @ModelAttribute, @RequestParam μ•ˆλ…•ν•˜μ„Έμš”~ μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ μŠ€ν”„λ§μ˜ @ModelAttribute, @RequestParam μ–΄λ…Έν…Œμ΄μ…˜ μž…λ‹ˆλ‹€. 졜근 @ModelAttribute μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λŠ”λ°, 바인딩이 λ˜μ§€ μ•Šμ•„ λ¬Έμ œκ°€ μžˆμ—ˆκ³  ... κ²€μƒ‰ν•΄λ³΄λ‹ˆ @ModelAttribute μ–΄λ…Έν…Œμ΄μ…˜μ„ 객체에 바인딩 ν•˜κΈ° μœ„ν•΄μ„  Setter λ©”μ†Œλ“œ ν˜Ήμ€ μƒμ„±μž κ°€ ν•„μˆ˜μ μœΌλ‘œ ν•„μš”ν•˜κΈ°μ— 바인딩이 λ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ @ModelAttribute 와 λΉ„μŠ·ν•œ μ–΄λ…Έν…Œμ΄μ…˜μΈ @RequestParam μ–΄λ…Έν…Œμ΄μ…˜μ„ κ°„λ‹¨νžˆ 정리해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. βœ”.. 2021. 2. 2.
[Spring] HandlerMethodArgumentResolver β€’ μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έμ™€ μ†ŒμŠ€μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” GitHubκ°€ λ”°λ‘œ μžˆμŠ΅λ‹ˆλ‹€. β€’ 넀이버 λΈ”λ‘œκ·Έ β€’ GitHub πŸ” βœ” HandlerMethodArgumentResolver μ„€λͺ… μ•ˆλ…•ν•˜μ„Έμš”~ μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ Spring의 HandlerMethodArgumentResolver μΈν„°νŽ˜μ΄μŠ€ μž…λ‹ˆλ‹€. HandlerMethodArgumentResolver μΈν„°νŽ˜μ΄μŠ€λŠ” Controllerμ—μ„œ νŠΉμ • 쑰건에 λ§žλŠ” νŒŒλΌλ―Έν„°κ°€ μžˆμ„λ•Œ ν•΄λ‹Ή 값을 λ°”μΈλ”©ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€. 보톡 μŠ€ν”„λ§μ˜ Controllerμ—μ„œ @RequestBody μ–΄λ…Έν…Œμ΄μ…˜μ„ 톡해 request의 Body 값을 λ°›μ•„μ˜¬λ•Œ HandlerMethodArgumentResolver λ₯Ό μ‚¬μš©ν•΄μ„œ 값을 바인딩 μ‹œμΌœ λ°›μ•„μ˜΅λ‹ˆλ‹€. HandlerMeth.. 2021. 1. 30.
λ°˜μ‘ν˜•