๐ก ํํฐ์ ์ธํฐ์ ํฐ์ ์ฐจ์ด
โช๏ธ ํํฐ Filter
- ๋์คํจ์น ์๋ธ๋ฆฟ์ ์์ฒญ์ด ์ ๋ฌ๋๊ธฐ ์ /ํ์ url ํจํด์ ๋ง๋ ๋ชจ๋ ์์ฒญ์ ๋ํด ๋ถ๊ฐ ์์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๋์คํจ์น ์๋ธ๋ฆฟ? ์คํ๋ง์ ๊ฐ์ฅ ์๋จ์ ์กด์ฌํ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ
- ์ฆ, ํํฐ๋ ์คํ๋ง ๋ฒ์ ๋ฐ์์ ์ฒ๋ฆฌ ๋จ
โธ ํํฐ์ ๋ฉ์๋
: ํํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์๋ Filter ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผํ๋ฉฐ 3๊ฐ์ง ๋ฉ์๋๋ฅผ ๊ฐ์ง
public interface Filter {
public void init(FilterConfig filterConfig) throws ServletException {}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException;
public void destroy() {}
}
โ init( )
- ํํฐ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๊ณ ์๋น์ค์ ์ถ๊ฐํ๊ธฐ ์ํ ๋ฉ์๋
โก doFilter( )
- url ํจํด์ ๋ง๋ ๋ชจ๋ HTTP ์์ฒญ์ด ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ผ๋ก ์ ๋ฌ๋๊ธฐ ์ ์น ์ปจํ ์ด๋์ ์ํด ์คํ๋๋ ๋ฉ์๋
โข destory( )
- ํํฐ ๊ฐ์ฒด๋ฅผ ์๋น์ค์์ ์ ๊ฑฐํ๊ณ ์ฌ์ฉํ๋ ์์์ ๋ฐํ
โช๏ธ ์ธํฐ์ ํฐ Interceptor
- Spring์ด ์ ๊ณตํ๋ ๊ธฐ์ ๋ก์จ ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ด ์ปจํธ๋กค๋ฌ๋ฅผ ํธ์ถํ๊ธฐ ์ ํ ์์ฒญ๊ณผ ์๋ต์ ์ฐธ์กฐํ๊ฑฐ๋ ๊ฐ๊ณตํ ์ ์๋ ๊ธฐ๋ฅ
- ์ฆ, ์น ์ปจํ ์ด๋์์ ๋์ํ๋ ํํฐ์ ๋ฌ๋ฆฌ ์ธํฐ์ ํฐ๋ ์คํ๋ง ์ปจํ ์คํธ์์ ๋์
- ๋์คํจ์ฒ ์๋ธ๋ฆฟ ? ํธ๋ค๋ฌ ๋งคํ์ ํตํด ์ ์ ํ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ๋๋ก ์์ฒญ - ๊ทธ ๊ฒฐ๊ณผ๋ก HandlerExecutionChain ๋๋ ค์ค
→ 1๊ฐ ์ด์์ ์ธํฐ์ ํฐ๊ฐ ๋ฑ๋ก๋์ด ์๋ค๋ฉด ์์ฐจ์ ์ผ๋ก ์ธํฐ์ ํธ๋ฅผ ๊ฑฐ์ณ ์ปจํธ๋กค๋ฌ ์คํ
์ธํฐ์ ํฐ๊ฐ ์๋ค๋ฉด ๋ฐ๋ก ์ปจํธ๋กค๋ฌ ์คํ
โธ ์ธํฐ์ ํฐ์ ๋ฉ์๋
: ์ธํฐ์ ํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์๋ HandlerInterceptor ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผ ํ๋ฉฐ 3๊ฐ์ง ๋ฉ์๋๋ฅผ ๊ฐ์ง
public interface HandlerInterceptor {
boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
return true;
}
void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
@Nullable ModelAndView modelAndView) throws Exception {
}
void afterCompletion(ttpServletRequest request,
HttpServletResponse response,
Object handler),
@Nullable Exception ex) throws Exception {
}
}
โ preHandle( )
- ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถ๋๊ธฐ ์ ์คํ
- ์ปจํธ๋กค๋ฌ ์ด์ ์ ์ฒ๋ฆฌํด์ผ ํ๋ ์ ์ฒ๋ฆฌ ์์ ์ด๋ ์์ฒญ ์ ๋ณด๋ฅผ ๊ฐ๊ณตํ๊ฑฐ๋ ์ถ๊ฐํ ๋ ์ฌ์ฉ
โก postHandle( )
- ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถ๋ ํ ์คํ
- ์ปจํธ๋กค๋ฌ ์ดํ์ ์ฒ๋ฆฌํด์ผ ํ๋ ํ์ฒ๋ฆฌ ์์ ์ด ์์ ๋ ์ฌ์ฉ
โข afterCompletion( )
- ๋ชจ๋ ๋ทฐ์์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์ผ์ ํฌํจํด ๋ชจ๋ ์์ ์ด ์๋ฃ๋ ํ ์คํ
'Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] Spring Security (0) | 2022.07.29 |
---|---|
[TIL] Spring Security ์ธ๊ฐ (0) | 2022.07.26 |
[TIL] Spring Security ์ธ์ฆ (0) | 2022.07.25 |
[TIL] Spring Security (0) | 2022.07.24 |
[TIL] API ๋ฌธ์ํ (0) | 2022.07.21 |