/* - Ċ Ġ* Ġ================= ======= LICENSE _ START ================================ = Ċ Ġ* ĠDrop Project Ċ Ġ* Ġ%% Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠPed ro ĠAl ves Ċ Ġ* Ġ%% Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* ĠĊ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠĊ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ġ================= ======== LICENSE _ END ================================ == Ċ Ġ*/ Ċ package Ġorg . drop Project . controllers Ċ Ċ import Ġorg . apache . tomcat . util . http . file upload . impl . FileSize Limit Exceeded Exception Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . http . HttpHeaders Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation . Controller Ad vice Ċ import Ġorg . springframework . web . bind . annotation . ExceptionHandler Ċ import Ġorg . springframework . web . multipart . Multipart Exception Ċ import Ġorg . springframework . web . servlet . mvc . support . Redirect Attributes Ċ import Ġjava . util . logging . Level Ċ import Ġjava . util . logging . Logger Ċ import Ġjavax . servlet . http . HttpServletRequest ĊĊ Ċ @ Controller Ad vice Ċ class ĠGlobal ExceptionHandler Ġ{ ĊĊĠĠĠ Ġval ĠLOG Ġ= ĠLoggerFactory . getLogger ( this . java Class . name ) ĊĊĠĠĠ Ġ@ ExceptionHandler ( Multipart Exception :: class ) ĊĠĠĠ Ġfun Ġmy Error ( exception : ĠException , Ġredirect Attributes : ĠRedirect Attributes , Ġrequest : ĠHttpServletRequest ): ĠResponseEntity < String > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġis Ajax Ġ= Ġrequest . getHeader (" X - Requested - With ") Ġ== Ġ" XML HttpRequest " ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! is Ajax ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Was Ġnot Ġexpecting Ġa Ġmultipart Ġrequest Ġthat Ġis Ġnot Ġajax ...") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( exception . cause ?. cause Ġis ĠFile Size Limit Exceeded Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ("{ \" error \": Ġ\" F iche iro Ġex ce de Ġo Ġtamanho ĠmÃ¡ ximo Ġpermit ido \" }", ĠHttpStatus . INTERNAL _ SERVER _ ERROR ); ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ("{ \" error \": Ġ\" Erro Ġgen Ã© ric o Ġno Ġupload \" }", ĠHttpStatus . INTERNAL _ SERVER _ ERROR ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠThis Ġassumes Ġa ĠREST Ġresponse , ĠBut Ġwhat Ġabout ĠHTML Ġresponses ? ... ĊĠĠĠ Ġ@ ExceptionHandler ( RuntimeException :: class ) ĊĠĠĠ Ġfun Ġgeneric Exception ( exception : ĠException ): ĠResponseEntity < String > Ġ{ ĊĠĠĠĠĠĠĠ ĠLOG . error (" Generic Ġexception ", Ġexception ) ĊĠĠĠĠĠĠĠ Ġexception . printStackTrace () Ġ Ġ// ĠTODO ĠFor Ġsame Ġreason , Ġthe Ġabove Ġline Ġdoesn 't Ġprint Ġthe Ġstack trace ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ("{ \" error \": Ġ\" ${ exception }\" }", ĠHttpStatus . INTERNAL _ SERVER _ ERROR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ExceptionHandler ( org . springframework . security . access . Access Denied Exception :: class ) ĊĠĠĠ Ġfun Ġaccess Denied Exception ( exception : ĠException ): ĠResponseEntity < Any > Ġ{ ĊĠĠĠĠĠĠĠ ĠLOG . warn (" Access Ġdenied : Ġ${ exception . message }") ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity (" Access Ġdenied : Ġ${ exception . message }", ĠHttp Headers (), ĠHttpStatus . FOR BID DEN ) ĊĠĠĠ Ġ} Ċ } Ċ