{"id":7504,"date":"2023-01-20T13:34:50","date_gmt":"2023-01-20T04:34:50","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7504"},"modified":"2023-03-01T15:13:10","modified_gmt":"2023-03-01T06:13:10","slug":"spring-boot-webfilter-%ed%99%9c%ec%84%b1%ed%99%94","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7504","title":{"rendered":"Spring Boot &#8211; WebFilter \ud65c\uc131\ud654"},"content":{"rendered":"<h1>Spring Boot &#8211; WebFilter \ud65c\uc131\ud654<\/h1>\n<p>WebFilter \ub294 \uc0ac\uc6a9\uc790 \uc694\uccad\uc774 Controller \uc5d0 \uc804\ub2ec\ub418\uae30 \uc774\uc804\uc5d0,<br \/>\n\uac01\uc885 \ub85c\uae45, \ub85c\uadf8\uc778 \uccb4\ud06c, \uad8c\ud55c\uccb4\ud06c \ub4f1\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc758\uc874\uc131 \ucd94\uac00<\/h2>\n<pre><code class=\"language-gradle\">dependencies {\n    implementation &#039;org.springframework.boot:spring-boot-starter-web&#039;\n}<\/code><\/pre>\n<h2>@ServletComponentScan \ucd94\uac00<\/h2>\n<pre><code class=\"language-java\">@ServletComponentScan\n@SpringBootApplication\npublic class WarehousewebApplication {\n    public static void main(String[] args) {\n        SpringApplication.run(WarehousewebApplication.class, args);\n    }\n}<\/code><\/pre>\n<h2>Filter \ucd94\uac00<\/h2>\n<pre><code class=\"language-java\">@WebFilter(&quot;\/*&quot;)\npublic class LoggingFilter implements Filter {\n    @Override\n    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {\n        HttpServletRequest httpServletRequest = (HttpServletRequest) request;\n        \/\/ HttpServletResponse httpServletResponse = (HttpServletResponse) response;\n\n        System.out.println(httpServletRequest.getRequestURI());\n\n        chain.doFilter(request, response);\n    }\n}<\/code><\/pre>\n<h2>Filter \uc0ac\uc6a9\ubc95<\/h2>\n<pre><code class=\"language-java\">@WebFilter(&quot;\/target&quot;)\n\n\/\/ \uc640\uc77c\ub4dc\uce74\ub4dc\n@WebFilter(&quot;\/*&quot;)\n\n\/\/ \uc5ec\ub7ec\uac1c\n@WebFilter(value={&quot;\/target&quot;, &quot;\/target2&quot;})\n@WebFilter(urlPatterns={&quot;\/target&quot;, &quot;\/target2&quot;})<\/code><\/pre>\n<h2>Filter \uc5d0\uc11c Exception \ucc98\ub9ac\ud558\uae30<\/h2>\n<pre><code class=\"language-java\">@WebFilter(&quot;\/*&quot;)\n@RequiredArgsConstructor\npublic class AuthCheckFilter implements Filter {\n\n    @Override\n    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {\n        HttpServletRequest httpServletRequest = (HttpServletRequest) request;\n        HttpServletResponse httpServletResponse = (HttpServletResponse) response;\n\n        String authToken = httpServletRequest.getHeader(&quot;X-Auth-Token&quot;);\n        if (authToken == null || authToken.equals(&quot;&quot;)) {\n            \/\/ \ucee4\uc2a4\ud140 \ub370\uc774\ud0c0\n            ApiResponseMessage apiResponseMessage = new ApiResponseMessage(ResponseCode.UNAUTHORIZED);\n            httpServletResponse.setStatus(RestExceptionHandler.CUSTOM_ERROR_CODE);\n            httpServletResponse.setContentType(&quot;application\/json&quot;);\n            httpServletResponse.setCharacterEncoding(&quot;UTF-8&quot;);\n            httpServletResponse.getWriter().write(convertObjectToJson(apiResponseMessage));\n            return;\n        }\n\n        \/\/ ......\n\n        chain.doFilter(httpServletRequest, httpServletResponse);\n    }\n\n    public String convertObjectToJson(Object object) throws JsonProcessingException {\n        if (object == null) {\n            return null;\n        }\n        ObjectMapper mapper = new ObjectMapper();\n        return mapper.writeValueAsString(object);\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot &#8211; WebFilter \ud65c\uc131\ud654 WebFilter \ub294 \uc0ac\uc6a9\uc790 \uc694\uccad\uc774 Controller \uc5d0 \uc804\ub2ec\ub418\uae30 \uc774\uc804\uc5d0, \uac01\uc885 \ub85c\uae45, \ub85c\uadf8\uc778 \uccb4\ud06c, \uad8c\ud55c\uccb4\ud06c \ub4f1\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc758\uc874\uc131 \ucd94\uac00 dependencies { implementation &#039;org.springframework.boot:spring-boot-starter-web&#039; } @ServletComponentScan \ucd94\uac00 @ServletComponentScan @SpringBootApplication public class WarehousewebApplication { public static void main(String[] args) { SpringApplication.run(WarehousewebApplication.class, args); } } Filter \ucd94\uac00 @WebFilter(&quot;\/*&quot;) public class LoggingFilter implements Filter\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7504\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-7504","post","type-post","status-publish","format-standard","hentry","category-spring-boot-2-5"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7504"}],"version-history":[{"count":4,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7504\/revisions"}],"predecessor-version":[{"id":7662,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7504\/revisions\/7662"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}