๐ Spring/Spring Security
2022.12.27
CORS (Cross-Origin Resource Sharing) ์ด๋? A๋ผ๋ ๋๋ฉ์ธ์์ ์ ๊ณต๋๋ FE์์ → B๋ผ๋ ๋๋ฉ์ธ์ผ๋ก ์ ๊ณต๋๋ BE์ HTTP ์์ฒญ์ ํ์ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ์๋ก ๋ค๋ฅธ ๋๋ฉ์ธ์์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด๋ผ ํ๋จํ๊ณ ๊ทธ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํธ์ถ์ ๊ธ์งํ๋ ๊ฒ์ด๋ค. Preflight Request ๋ธ๋ผ์ฐ์ ์์ ์ค์ HTTP ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ ๋ธ๋ผ์ฐ์ ์ค์ค๋ก ์ด ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด ์์ ํ์ง ์๋น ์์ฒญ์ ํ๊ฒ ๋๋๋ฐ ์ด๊ฒ ๋ฐ๋ก Preflight Request๋ผ๊ณ ํฉ๋๋ค. ์ด Preflight Request๋ OPTION ๋ฉ์๋๋ฅผ ์ด์ฉํด ์์ฒญํ๋๋ฐ ์๋ฒ์์ ๋ณด๋ด์ค ์๋ต ํค๋์ Access-Controller-* ํค๋๋ค์ด ์ ๊ตฌ์ฑ๋์ด์๋์ง ํ์ธํฉ๋๋ค. GET, POST, HEAD ์์ฒญ..
๐ Spring/Spring Security
2022.12.09
Spring Boot 2.7 (Spring 5.7.0-M2) ๋ถํฐ WebSecurityConfigurerAdapter๋ Deprecated๊ฐ ๋์๋ค. Spring Security without the WebSecurityConfigurerAdapter In Spring Security 5.7.0-M2 we deprecated the WebSecurityConfigurerAdapter, as we encourage users to move towards a component-based security configuration. authz .anyRequest().authenticated() ) .httpBasic(withDefaults()); } } ์คํ๋ง์ SecurityFilterChain ๋น์ ๋ฑ๋กํ..
๐ Spring/Spring Security
2022.06.21
Spring boot + Security ๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์๋ฌ ์ฝ๋ ๋ง๋ค ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์๋ฐ ์ด๋ป๊ฒ ํด์ผํ๋์ง ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด๋ค๊ฐ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๊ฐ๋ฌ์ต๋๋ค. 1. EntryPoint, Handler ์ฌ์ฉ authenticationEntryPoint, accessDeniedHandler์์ ์ฌ์ฉ์์๊ฒ ํด๋น ์๋ฌ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ์
์ ์ํค๋ ๋ฐฉ๋ฒ์
๋๋ค. Security Config /* Security Config */ @Override protected void configure(HttpSecurity http) throws Exception { http // .. .exceptionHandling() .authenticationEntryPoint(new MyAuthenticationEntryP..
๐ Spring/Spring Security
2021.11.04
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. ๋ก๊ทธ์ธ ์์ฒญ์ด ์ค๋ฉด ์ฌ์ฉ์ ์ธ์ฆ ํ JWT ํ ํฐ์ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํด์คฌ์ต๋๋ค. ์ด์ ์ฌ์ฉ์๋ ๋งค๋ฒ ๋ก๊ทธ์ธ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์ด์ ์ ๋ฐ๊ธ ๋ฐ์ JWT ํ ํฐ์ ๋ค๊ณ ์๋ฒ๋ก ์์ฒญ์ ํ๋ฉด ์๋ฒ๋ ํด๋น JWT ํ ํฐ์ ๊ฒ์ฆํ์ฌ ์ ํจํ ํ ํฐ์ธ์ง ํ์ธ ํ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ด๋ฒ ์๊ฐ์๋ JWT ํ ํฐ์ ๊ฒ์ฆํ ์ ์๋ Filter๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. BasicAuthenticationFilter ์์ ํค๋์ Authorization : Basic *** ๋ฐฉ์์ผ๋ก ์ธ์ฆ์ ์๋ํ๋ฉด BasicAuthenticationFilter์์ ํด๋น ํ ํฐ์ ๊ฒ์ฆํ์ฌ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋๋ฐ, ์ฐ๋ฆฌ๋ Basic ๋ฐฉ์์ด ์๋, JWT..
๐ Spring/Spring Security
2021.11.02
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. UsernamePasswordAuthenticationFilter์ ๋ํด์๋ ์๋ ํฌ์คํ
์ ์ฐธ์กฐํ์๊ธธ ๋ฐ๋๋๋ค. UsernamePasswordAuthenticationFilter ๋์ ๋ฐฉ์์ ๋ํด์ SpringSecurity Filterchain ์๋ ์ฌ๋ฌ ์ข
๋ฅ์ ํํฐ๊ฐ ์กด์ฌํ์ง๋ง, ์ด๋ฒ ์๊ฐ์๋ ๋ก๊ทธ์ธ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ UsernamePasswordAuthenticationFilter์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. Login ์ธ์ฆ ๋ก์ง flow POST "/login".. iseunghan.tistory.com ๋ก๊ทธ์ธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ SpringSecurityFilterChain ์ค์ ๋ก๊ทธ์ธ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ ํํฐ์ธ Userna..
๐ Spring/Spring Security
2021.11.02
SpringSecurity Filterchain ์๋ ์ฌ๋ฌ ์ข
๋ฅ์ ํํฐ๊ฐ ์กด์ฌํ์ง๋ง, ์ด๋ฒ ์๊ฐ์๋ ๋ก๊ทธ์ธ ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ UsernamePasswordAuthenticationFilter์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. Login ์ธ์ฆ ๋ก์ง flow POST "/login" ์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ฉด? Postman์ผ๋ก body์ username, password๋ฅผ ๋ฃ๊ณ "/login"์ผ๋ก ์์ฒญ์ ๋ณด๋ด๋ฉด, UsernamePasswordAuthenticationFilter๊ฐ ์์ฒญ์ ๋์์ฑ๊ณ username, password๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ๊ทธ ๊ณผ์ ์์ ์ฐ๋ฆฌ๊ฐ ์ค๋ฒ๋ผ์ด๋ฉํ UsernamePasswordAuthenticationFilter.attemptAuthentication ๋ฉ์๋๊ฐ ํธ์ถ์ด ๋ฉ๋๋ค. POST๋ก ์์ฒญ์ด ์..