From e47f7f0ea992514d72e0c97154de6082793f0525 Mon Sep 17 00:00:00 2001 From: OhDG Date: Mon, 16 Jun 2025 15:50:56 +0900 Subject: [PATCH 1/2] mission/#10-1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 간단한 로그인 및 회원가입 구현 - Session 방식 --- build.gradle | 9 +++ .../spring/domain/Member$MemberBuilder.class | Bin 6257 -> 6758 bytes .../java/main/umc/spring/domain/Member.class | Bin 6219 -> 6811 bytes build/reports/problems/problems-report.html | 2 +- .../compileJava/previous-compilation-data.bin | Bin 71833 -> 88562 bytes .../security/CustomUserDetailsService.java | 28 +++++++ .../config/security/SecurityConfig.java | 41 ++++++++++ .../umc/spring/converter/MemberConverter.java | 3 + src/main/java/umc/spring/domain/Member.java | 11 +++ .../java/umc/spring/domain/enums/Role.java | 5 ++ .../MemberRepository/MemberRepository.java | 4 + .../MemberCommandServiceImpl.java | 5 ++ .../web/controller/MemberViewController.java | 56 ++++++++++++++ .../umc/spring/web/dto/MemberRequestDTO.java | 13 ++++ src/main/resources/templates/admin.html | 10 +++ src/main/resources/templates/home.html | 20 +++++ src/main/resources/templates/login.html | 26 +++++++ src/main/resources/templates/signup.html | 72 ++++++++++++++++++ 18 files changed, 304 insertions(+), 1 deletion(-) create mode 100644 src/main/java/umc/spring/config/security/CustomUserDetailsService.java create mode 100644 src/main/java/umc/spring/config/security/SecurityConfig.java create mode 100644 src/main/java/umc/spring/domain/enums/Role.java create mode 100644 src/main/java/umc/spring/web/controller/MemberViewController.java create mode 100644 src/main/resources/templates/admin.html create mode 100644 src/main/resources/templates/home.html create mode 100644 src/main/resources/templates/login.html create mode 100644 src/main/resources/templates/signup.html diff --git a/build.gradle b/build.gradle index f5bcbcb..111577f 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,15 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" + // Spring Security + implementation 'org.springframework.boot:spring-boot-starter-security' + testImplementation 'org.springframework.security:spring-security-test' + + // Thymeleaf + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE' + + } //sourceSets { diff --git a/build/classes/java/main/umc/spring/domain/Member$MemberBuilder.class b/build/classes/java/main/umc/spring/domain/Member$MemberBuilder.class index f1082b836405f53c818e1bbe976f06627ddb41de..0640fdd1069e456a6606e0c64d49f2b338e61a80 100644 GIT binary patch literal 6758 zcmc&&S#uLd5bpIQ*(})DU;`#xF<_fRgb)JAHefrl^qgs|r3r0^3cb*$K!>4Km;(JCo+XEX zIaj|51F#E~Sz`tVJd_KIW=5@Ir{*{ZUp1)05bRN)yP#Xn`faA6CIcP;S;Jv#%;LQJ zR2U}S9?qLL4QHLydr5@@L{4(@thPnOLn<65ofBHAWHH+&+RG}85UrD;8OlUCrowTe zBn`c|LAxX3mZSY0;_cCA(+;z<=wk&w=+sT&SaQYxH*S8%_!qd7GjE!}j#!qQ8e zkMHDF70$tH3aGlF6&-z(&1w!>cDLBLqgPleXBM?Gk@R3hbzG-&kf=C8yiyTGAnE zj$Td?g>%25LWa2eR<%vj(jAsD%@Tbj;qxkF>0^(@Hg)!(PJUB`9Fcbl33=VNbr)Mr*vFTo=(|K0ZeXC_sT~y<){5OiLKzQ@w zqWBy~s2Ok$kM7NNXa>)ZUm!FNxYhaCN)If-asu8~VFhlYR|L(1w{TM{*Vy${yd>Tu z6!9xP7T!cZhQ8Y>yaRU>7^-L+Y{oQ-nsZZk)^UV4&Two+dFTae<_|$_(jIB<0W_H6 zk(%4OffR=)LRy?<{{v6NAt^AtSTo2Wv&N=w>xDAAY8WPlIlS2z5c_jwvr;fODBd#* zLs=<}fqqF}GcaIU7?>^ud~G7)@>aBJm2#K33KW>qQwVdZg{2u!l;Vp|##p?_qZenF z9^+n-7pp0w8(-ZqW0r8Qy*ZsH6U@BJ8d{3XLm_@evvitEVu!P?qv=K?EFmo5PupaP z&?Oj)zql{YoOQEwL$fgXIm|-Q6J9*&Xe}TvM5*pe`z?S?dUdJal@`|DXs(Pew6*|w zS*jF>!!01pH&==WVo%1gIC442|6C#GUZ+!<}K(L1S5L(2&;{ zG^m#rG_F?^d`yJ|4MhDwBX2dpSv-$@K9_HN8q?FB`ik$tPL$xIoO8Qx@x~g@6MRw` z!`dQiV49vOqY#F9V7t#U3HV-tqoIS3I?n|Bh&9LaS+Q&qhmTcS66;%lUHFRyD=6?T z&bqLF5BoN%JVP|BGeb12B11H+7DF^F6+<+v6hkzu6hkzu6+<*E6+<+v6hkzu6+<+v z0Yfw_^FlPN@Io{!@Io{!;m~65bGzLQ*bxgh_uIX|H>}s(Z(86R7H#ggg74c9%E5mm z@M{rADbz+G%J@@Ie&Z^X@Rtq}U>`92rNgBqtFVT>_n0vt!8){apfm!KLnOve{Ek1r z;;;>ZP=kU+LLsyC9i0RaT3-Oa7w$*lZ;y>H{7~Z4#IOGVY((MjjEygRTH+6c@Q0ur zg}*yCzPKL}e<*}M9F4y>HomxP5`Q>^e;^uve{6hlZzcYL5dPul^F0_FU&H{3PZR(7 zjzr@hiH$GfiNvRgAOCnX{?XX@A~s2Un)va@qwz;$a@oD16KNWqxCt~A^m?`m3 zh49ZnCCdL#$Ho`&SK^-u;hzH|3jb_ud=bkf{<#qTg=qVqkBu+#g2bnZ-~Q=n{EM;i zMUIj9H1Xq4ff;3=iP-oeUrGF_5dJh&p@YZ&yf^+|;rQ(_;y>j+1wO#|FVai`|IoaP z6e)2UC5pso1$LH+mOL9%O^k8@dgSY_T)}N5SJ^ln!{S(-ZZ6~(f*!E)E zkL@6~BiN2&8^v}4+i7fPv7N_u5!(c|E7)eS&0$-33fH3_4#GKZMZQ5kge|GtWB$Md zFc8bt>knAO=?hg8Y-dI1Dk!E`L^mtCInga(_Y7_UJWpdILgP;O2<_JfANy?l38&@Z gQ|yyy;fL71f^TrvkGx6zJN;YehVS49_zCv@3ybI5KmY&$ literal 6257 zcmbtY>r)g*5bxo22d)7@M1t`ZRKUj>V~lzr3W8z|B|=a%uf4kgR&IAMyL)Fa@7KqC z&!3T0nKEUn@(1K!N>wV|Gjn_ULifyvxt;0l`E~DfPe1POf1m#a08{W&541sh20Aq8 zgf0eskMz2ptLWB7?oRO$FL?~QCJoE*t}tjH8(-~)EOcj}M}u9UF*sf`OF6gd7|36? zP2I3^i`*=7XH-6BYDT5Z9R_Vi8Nmxp^nz_|9Fhc+xw5uRQ5x!6&}t zZ4J)DI}9|#(o3FE=ht-)Pj*m#xM!F=SFlTZg~(#VyBb_1owTZBuNxJEZw;D629o@ET&aGHL3cG+h7|@wroP2zZL6ev_Y7|nXXyHt=Q8#n2)2`b zquS&H()%EgEuO(tA4Q?FJjK}ffyAdGJb1s!4MG})7y%UCq>6YadcI83|cEgUaBrr3)0K2 z2#H*~7R0Qk5#wLb7Jzvg;BdrgUgZ|#bQY;}WpH3@=S_HZvz{$47=yjY*-S9%+F`-7 zY}cF;pU1k2!7k|&XNV6s-{!7&(-sBQjBR_a=jc^=o!#Cpc-#Y@!*&LqP=@@1!DtiR zu^M3Sw5TRF<(C%xB>%2LGrNkPp=#j2Y!AcIq(I$n=yoKF$2P-Cu~p++SfmPIFa; z(^OR7G-(vwG;h?}VooJCO=M+FvtXSpSOR4*t<6yNOO$AZOSEQT+uReVXQ$XWR@e&` z=F!=T?z$WU_3qFqWZ*jn$6`iKvRwv#U~urotk^tALu0R!#V!w^AAhlJ0|p=9stcd1 z_-v#8D@Ma^D@Ma!Dn`SeDMrJFDMrJ7DMrJ7DMrJNDMrJFDMrJ7DMrJNDMrIiC`Q9( zCq~0Q2T$UjIFI|0^TDphf43HShfR(D?m^@ob~gUIhoN_aC%EU8Z zzX=sS!e25Fz%YD_zhpGp@(Fy3&!G7*sDKXb0w|AwWa!Mq$=~tkSDdy%6l$MjQBcUN ze4>clorKmG!S97q68`Sg_|m@=J}tuf4?sBye@|+B>8lEVAcj8#JPCg=HNNzFg+CO- zA4$d^PK__`kis8{;U7%KKad(<-baOhFou65*}jKT5`lD8s~XObmfO)Z)7 zURd%BJZMUu@g-LxlIM~o&!(14Sv4$q4jwio&-s$gh-3?Fv@a#xC!)9kSo#y@*Cw7~ zs(cE&aqPh{h+`PX0UU>L9K~@A#~6;2IL_cWhvNc{OE{)*T*Wc_3~nYTT+9)5)3{{S@@X<+~W diff --git a/build/classes/java/main/umc/spring/domain/Member.class b/build/classes/java/main/umc/spring/domain/Member.class index 67d0e52d85636315c5d0c4d3bd9e0f361dee4e22..a806133a7b7b17332dc572ef69afc16d8e2efc6d 100644 GIT binary patch literal 6811 zcmeHMS#ul55$*+VaCsjlBt@cR$|6@1LB>{OixeZ?h7Hmb2{D!w+gSo5a7|zr*IUka$pj;JKjyOp0V<}Va8WPeoNR2wH9>8d2HDkg?f{( z>$`e9r$cJPW#Oq7YE|f|TC+zykh!9f%LqG4EfiI$om7RIrw!9^XB27}9ouAOI#ueT zZiONS7V558C~09CmgrTfk9BP{^}JxlfJ%e(1hBHg1iV7S$)k!0vzT|{%ThwZ#8f&% zXBBGOGHiGIzR)qTuVTG~>58ndrR=*@I?u9EDZ65s?lvzxtkOkhw@UVczQ@cbRT^RS zTJ%iD7LLQbr&PMaye0vY=9n|4lE$1?(@5_eY~-3s*Cn&CZJA=Vm}kkjN)x1lcf`*mF1EjqA!&HZ|I-;i>0C+|_|COxZ=YM6T3HFm{j;%o;@% zimewRmlvCcV{GNbtZ7;>F_yw%48fE;y6x)mg0LMdEzGotCo)qCjf4)tCxs1jXEya* zQ9!KKak-z}t1|=ZrS=MPMq*)cHI+!+SLj^m8uM1Jm^T^QEaq}LbZ$WW6MQHq%&fc3 zJ?v{Zbn+rX$I}o1O}nfmpLf_cS=865c_X!+SY5^ersd)b;t_{Blvb#Hb9R0H`Puc+ z$%!#6t^AAE&+wlvg~pPWosDlBxOGgJA+8@S8FLc;Rr)IFyh0y)JWQvrv zqMLhcTAnE~b2zqU&;M`Iu5GYMZdo4Rdq z-)AYx)4`Q9eOehl+)WF~>lv1d_YS>Sda7YMvc}Ss4p_*3ZDqOvo zFn5@w2C85W(v(6S2VycmA;=E;NKCjX(VO)$5?mFXMNUPY)T*C@yxy9hd_1u=&N`mb zUK&wo^cbbR1M(9NP8KFxNwm}Af@L>e= z)m?F1<@m?(-#XBz%sj=V(1%qjL(p4i`c#mW^JP@=IeH=L!Hu5?t|F-W%X_a#fC}9{ z5l+o$SKg`&Zt3h5&hLA7NZ3_5bH$7U$2~RcV5!5%`|mhq1&$U3p3YUi?5P=W+6vuk z>re|`da8#|_PyYJT({4+>tOXIiju&)NF(w8pIH2VePSoREdnQf+`Pb*aDtiT=s$sM ztq5mVif&j%J1v$_=;QkJ0$`j2tyW>_)yud?kE_}i_VB_n()S7(epQ@EHeou#<_fQU zRXF}ljvTKhOr+uY9Fl@Sx5LxWe^=r$7D1U$)Q>M7ktlCB(Ca}jh3`G|HwC?qUIqg% zNPn2c?t}B-0X?MmC+HQ>cuxAGgXp~q`ZYlxARU4VZ8?+%7mr6@rX61%kO&ceDTWW= ztr$Ll_o6=#R3?Lk@Nx`HgO&mVctC~^;1PLr;1OovAz3ky1^t>s+Ze!m(jN%lumKso z8)3x=KL_O(KNwViRTu!zLVutG-wNwR`27cj*X8^jc{&3S$$^)5$Rz6_DS`_0K``+6 zD~sC4i{dF*7Ilsn#q+Q%>K-RL1igy13*pDmb_U-FzRlXz5-ER{`hN(2qmrA#k0Cr0B!+5qz2Qtn^XPO?W)v(?%bok3)=Mhov}C>pRqP|7~jf6L<N&whCUkt)Dr|6sSETudLsm=KL|8h z7wAp;djHf-6zD<_=$X1eUkWw$r6ADFxXnG zE1^K6L7>}pfxa3FbTtTcr!LUfLXABh1e&i4^mY11h#yS`ftKq6eUrWw0(2t?l&A~z z?NA#%7X*5-F3@*Efs`Q7YF(hW=({0Xn+^iqtqb%$`aU(to2>Fax)TI?IRwbd0Y3;_ za6b$MTnGX_tO@v|0N{^90hfb-uhs`A(nI z-li4p9a=+5STE6?LvrDeTs|aUILt?bGR2&wMwB^S^Z*Iu6}pVdg>#da4<40pHbktqL z_fcP-m81Xum^igtxcQ??FW+6`?;++kXI(bPN;# literal 6219 zcmeHM=~ElY6@LQ)ff#OMdu+#MeXL=82=C#n4cHc!t&PA0WM#dZYmgc-i!`ImjM$L- z+Rd?>?B-6$`6nb*QEgQ=mCEP*J^7sE_j(2)jYkObIj(A^`}OPJd)@u6mjC(hzy6(w zX6cV{>QLzUYB`^DD~@RulLfnMm{xLGlsANP+5gN{%~C-)2~sGgQWteA)IDQbrgu-F z&WXufFZEDwoDwSak*d(?R&WY+m<5G~GH)6?MzUl;T*kJF)4YB_r9m2k0Lv%~g+>~9 z);-ota*e1oN+%$`C@g5C(0JxqVZy4G-Q+{bAy=JL=@gw-sCUD3ysf9gz{1f60cpz< zMd3)^Gb){B-h|{`wk>aq)%%!A=b79i$qU9V6USA0j&+V3g@PkomuZ(&y3DjLfpaV| z<$0B^GNs2d^V_^TCQhoPOJZfqw!})c%*5*|-C!YI72C8trX*FGqFdOn>lt3v#Z|T3 zuYXnRl27jBMU`HnmlaY?%gB4?j#w}}oa~stanCFZoPORYFEi!r7m#}QQu4!95o1ljji_;^8Em2Hibcyaz1=vy zimR38C6!7!j#OD+$f2ZW!X3|h{DmH#=&eGj%Oq*!f_#5Sb335 z7p4`u961FG6AliqkTXhE0k$63<8g7f%?ilN?pEZA^uppwHl2N{(78w%^LD9Pwiw&0 zmP!V6?u6sQ5xYymDtcQyO0XM5>Ana@@HGTL*A8o`(D|0Efll4)*|qe_LtJ293SSVL z?CVfkp}t&dZT?YeZQ|C{Bt$F!V)+IBGpNvH#&(LyEfaym!Z9R`gVRm=`v87!F)$x zBb~knNf#pb``8j$d)csd`Dl5iD9qv7x_$eDOXm$YZxkTLq?*@{uy{@SjAWla0(W+vrzq=1wCmzE)M* z?&gu;8ocX7eeVsKNTJyy;k0x+Wpg5I>J8(-L?f)b$s!w8>|5WlN&BJ>{O*6F)D?I( zGy6I>8Kkdf$nqL=Z_=S|OW{D*c08F==wx&JK&}m9$k4Lzw(P>H;UGwONb`#FpZ{M< z^0=3BWC!=Jw|<$2tqXba5mwe6_6WSKoRY02v2ItLyjViXiy-XV>`nHKRz;a#Ya;X= zR`D$CqSiO_PbvkjuaCr=wp`(Gb=0>a+#vWO70jN*=u_ywCg>@> z4n~FEaOu;a;u#h2^x?}B5}||NOwki~HAPS0#SVTL$uHhP80BTZAWwP>7y`6Smx{FY z1}TC}dJ_aZg6gc>hqK~IRA((6&WdMJowa-z>lpQtMK+i#&~_YO{@3#nDNjG7&Of2A z&=>Hx8($)goS^T@8IP*L$|UBQqf7q_#d%pr!?JPO0fmhY4D=R#5#MH@UHVc4P=6Tc zQd^)e(^n#ZhQmNt+X8)+z7_#A76!V}7U=7dKw21Rsx8nrB7x3@fnID2^v%e_z7Phw z-4^Iukw6#2KzG^#eLE89N*HLSEzox&fhNL0_uB%!9eLQ-!a#Fvf!?9-M%dBKFwjz4 zpzqQ5BY<8A13hXB^n=JVx*Z03wJp%Q^d5D}xY6kScfvr+5kP)u{9z~x{3sG|HVnAh z67c;H;0KX_55j=!EdhTV0{lrN;CvV`*AnojO@J}}nKZc7ZJZ?s$Xoh{w4{GTX$0U; z)acGZclMzB;GjGIXDsrg?Mc89ouL>a{vbU@Z;h_dlLlpOMMmE)`We<#5bOU2B}Rd< zcU&d(Yc-1N*K5?T->A{BuElCJrfXd_(sZr6M(1=bUZV@T)>EU4y4G8xE4r4b(S)w` z)##e8sWrN(YyCBPLDvRqbX(U3dGp#(jb?RixJD0jZKOtWx1BP#oWao%N{aAqr$FO; z^ACR~!H%(~pzz@y*EpQ&_GCT7zfA4PswF0ST&D0z?(wg=Qpz6xgiCQr~V=OD0^H149OlR_+i=O{5?WHM_ function configurationCacheProblems() { return ( // begin-report-data -{"diagnostics":[{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/service/MemberService/MemberMissionQueryServiceImpl.java","line":33,"column":56,"length":25},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation error"}],"severity":"ERROR","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/service/MemberService/MemberMissionQueryServiceImpl.java:33: error: cannot find symbol\n memberMissionPage = memberMissionRepository.findAllByMemberAndStatus(member, missionStatus, PageRequest.of(page, 10));\n ^\n symbol: method findAllByMemberAndStatus(Member,MissionStatus,PageRequest)\n location: variable memberMissionRepository of type MemberMissionRepository"}],"contextualLabel":"cannot find symbol","error":{"parts":[{"text":"org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.\n/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/service/MemberService/MemberMissionQueryServiceImpl.java:33: error: cannot find symbol\n memberMissionPage = memberMissionRepository.findAllByMemberAndStatus(member, missionStatus, PageRequest.of(page, 10));\n ^\n symbol: method findAllByMemberAndStatus(Member,MissionStatus,PageRequest)\n location: variable memberMissionRepository of type MemberMissionRepository\n1 error\n"},{"internalText":"\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:89)\n\tat org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)\n\tat org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)\n\tat org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)\n\tat org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:206)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.lambda$execute$0(SelectiveCompiler.java:101)\n\tat org.gradle.api.internal.tasks.compile.incremental.transaction.CompileTransaction.execute(CompileTransaction.java:108)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:95)\n\tat org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)\n\tat org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)\n\tat org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)\n\tat org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:224)\n\tat org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:165)\n\tat org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:150)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)\n\tat org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)\n\tat org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:30)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:27)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:48)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)\n\tat org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)\n\tat org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)\n\tat org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)\n\tat org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)\n\tat org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)\n\tat org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)\n\tat org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)\n\tat org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)\n\tat org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)\n\tat org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)\n\tat org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)\n\tat org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)\n\tat org.gradle.internal.Either$Right.fold(Either.java:175)\n\tat org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)\n\tat org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)\n\tat org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)\n\tat org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)\n\tat org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)\n\tat org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)\n\tat org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:107)\n\tat org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:56)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64)\n\tat org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:61)\n\tat org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36)\n\tat org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)\n\tat org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)\n\tat org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)\n\tat org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)\n\tat org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)\n\tat org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)\n\tat org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)\n\tat org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:48)\n\tat org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)\n\tat org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:61)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127)\n\tat org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)\n\tat org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:40)\n\tat org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)\n\tat org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)\n\tat org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)\n\tat org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)\n\tat org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)\n\tat org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)\n\tat org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)\n\tat org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)\n\tat org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)\n\tat org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)\n\tat org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)\n\tat org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)\n\tat org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)\n"}]},"problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-err-cant-resolve-location-args","displayName":"Java compilation error"}],"solutions":[[{"text":"Check your code and dependencies to fix the compilation error(s)"}]]}],"problemsReport":{"totalProblemCount":1,"buildName":"spring","requestedTasks":":classes","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}} +{"diagnostics":[{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Term.java","line":31,"column":30,"length":35},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Term.java:31: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List memberTermList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Region.java","line":23,"column":30,"length":35},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Region.java:23: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List restaurantList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java","line":88,"column":30,"length":35},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java:88: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List memberTermList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java","line":91,"column":32,"length":37},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java:91: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List favoriteFoodList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java","line":94,"column":26,"length":31},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java:94: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List reviewList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java","line":97,"column":33,"length":38},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Member.java:97: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List memberMissionList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Restaurant.java","line":34,"column":27,"length":32},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Restaurant.java:34: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List missionList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Restaurant.java","line":41,"column":37,"length":42},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Restaurant.java:41: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List restaurantPictureList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Review.java","line":37,"column":33,"length":38},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Review.java:37: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List reviewPictureList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Mission.java","line":36,"column":33,"length":38},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/domain/Mission.java:36: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.\n private List memberMissionList = new ArrayList<>();\n ^"}],"contextualLabel":"@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/validation/validator/RestaurantExistValidator.java"},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/validation/validator/RestaurantExistValidator.java uses or overrides a deprecated API."}],"contextualLabel":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/validation/validator/RestaurantExistValidator.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/Users/ohdonggyu/Documents/umc/Spring_Boot_D/src/main/java/umc/spring/validation/validator/RestaurantExistValidator.java"},{"taskPath":":compileJava"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":12,"buildName":"spring","requestedTasks":":classes","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}} // end-report-data );} diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 344081ad1490e3e4298d4bb8bae9b1595eeb6a89..f4cea4555bc6714bf62ee8b6fe101ffa613f6f2b 100644 GIT binary patch literal 88562 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

na%fegOt2Lo&sXsfX3mZSVHkO1ymdH1I*e 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 z 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 l&z`omgW{1ul5G)p(TP~XiJspp?zAb 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 Uzu0b18b&<}sNN=x_5{lR14&C=Hvj+t diff --git a/src/main/java/umc/spring/config/security/CustomUserDetailsService.java b/src/main/java/umc/spring/config/security/CustomUserDetailsService.java new file mode 100644 index 0000000..6701d01 --- /dev/null +++ b/src/main/java/umc/spring/config/security/CustomUserDetailsService.java @@ -0,0 +1,28 @@ +package umc.spring.config.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; +import umc.spring.domain.Member; +import umc.spring.repository.MemberRepository.MemberRepository; + +@Service +@RequiredArgsConstructor +public class CustomUserDetailsService implements UserDetailsService { + + private final MemberRepository memberRepository; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + Member member = memberRepository.findByEmail(username) + .orElseThrow(() -> new UsernameNotFoundException("해당 이메일을 가진 유저가 존재하지 않습니다.: " + username)); + + return org.springframework.security.core.userdetails.User + .withUsername(member.getEmail()) + .password(member.getPassword()) + .roles(member.getRole().name()) + .build(); + } +} diff --git a/src/main/java/umc/spring/config/security/SecurityConfig.java b/src/main/java/umc/spring/config/security/SecurityConfig.java new file mode 100644 index 0000000..0a73e01 --- /dev/null +++ b/src/main/java/umc/spring/config/security/SecurityConfig.java @@ -0,0 +1,41 @@ +package umc.spring.config.security; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; + +@EnableWebSecurity +@Configuration +public class SecurityConfig { + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http + .authorizeHttpRequests((requests) -> requests + .requestMatchers("/", "/home", "/signup", "/members/signup", "/css/**").permitAll() + .requestMatchers("/admin/**").hasRole("ADMIN") + .anyRequest().authenticated() + ) + .formLogin((form) -> form + .loginPage("/login") + .defaultSuccessUrl("/home", true) + .permitAll() + ) + .logout((logout) -> logout + .logoutUrl("/logout") + .logoutSuccessUrl("/login?logout") + .permitAll() + ); + + return http.build(); + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/src/main/java/umc/spring/converter/MemberConverter.java b/src/main/java/umc/spring/converter/MemberConverter.java index e861d68..4ba1846 100644 --- a/src/main/java/umc/spring/converter/MemberConverter.java +++ b/src/main/java/umc/spring/converter/MemberConverter.java @@ -34,11 +34,14 @@ public static Member toMember(MemberRequestDTO.MemberJoinDto request){ return Member.builder() .address(request.getAddress()) + .email(request.getEmail()) + .password(request.getPassword()) .gender(gender) .name(request.getName()) .birthYear(request.getBirthYear()) .birthMonth(request.getBirthMonth()) .birthDay(request.getBirthDay()) + .role(request.getRole()) .favoriteFoodList(new ArrayList<>()) .build(); } diff --git a/src/main/java/umc/spring/domain/Member.java b/src/main/java/umc/spring/domain/Member.java index 66eebc6..72871cd 100644 --- a/src/main/java/umc/spring/domain/Member.java +++ b/src/main/java/umc/spring/domain/Member.java @@ -8,6 +8,7 @@ import umc.spring.domain.common.BaseEntity; import umc.spring.domain.enums.Gender; import umc.spring.domain.enums.MemberStatus; +import umc.spring.domain.enums.Role; import umc.spring.domain.mapping.FavoriteFood; import umc.spring.domain.mapping.MemberMission; import umc.spring.domain.mapping.MemberTerm; @@ -73,6 +74,16 @@ public class Member extends BaseEntity { private String profileImage; + @Column(nullable = false) + private String password; + + @Enumerated(EnumType.STRING) + private Role role; + + public void encodePassword(String password) { + this.password = password; + } + @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) private List memberTermList = new ArrayList<>(); diff --git a/src/main/java/umc/spring/domain/enums/Role.java b/src/main/java/umc/spring/domain/enums/Role.java new file mode 100644 index 0000000..61d3b50 --- /dev/null +++ b/src/main/java/umc/spring/domain/enums/Role.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum Role { + ADMIN, USER +} diff --git a/src/main/java/umc/spring/repository/MemberRepository/MemberRepository.java b/src/main/java/umc/spring/repository/MemberRepository/MemberRepository.java index a3666c7..44e7852 100644 --- a/src/main/java/umc/spring/repository/MemberRepository/MemberRepository.java +++ b/src/main/java/umc/spring/repository/MemberRepository/MemberRepository.java @@ -3,5 +3,9 @@ import org.springframework.data.jpa.repository.JpaRepository; import umc.spring.domain.Member; +import java.util.Optional; + public interface MemberRepository extends JpaRepository { + + Optional findByEmail(String email); } diff --git a/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java b/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java index 8328d70..2733ba6 100644 --- a/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java +++ b/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java @@ -2,6 +2,7 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import umc.spring.apiPayload.code.status.ErrorStatus; import umc.spring.apiPayload.exception.handler.FoodHandler; @@ -23,12 +24,16 @@ public class MemberCommandServiceImpl implements MemberCommandService{ private final MemberRepository memberRepository; private final FoodRepository foodRepository; + private final PasswordEncoder passwordEncoder; @Override @Transactional public Member joinMember(MemberRequestDTO.MemberJoinDto request) { Member newMember = MemberConverter.toMember(request); + + newMember.encodePassword(passwordEncoder.encode(request.getPassword())); // 암호화 + List foodList = request.getPreferCategory().stream() .map(category -> { return foodRepository.findById(category).orElseThrow(() -> new FoodHandler(ErrorStatus.FOOD_CATEGORY_NOT_FOUND)); diff --git a/src/main/java/umc/spring/web/controller/MemberViewController.java b/src/main/java/umc/spring/web/controller/MemberViewController.java new file mode 100644 index 0000000..76bd4a3 --- /dev/null +++ b/src/main/java/umc/spring/web/controller/MemberViewController.java @@ -0,0 +1,56 @@ +package umc.spring.web.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import umc.spring.service.MemberService.MemberCommandService; +import umc.spring.web.dto.MemberRequestDTO; + +@Controller +@RequiredArgsConstructor +public class MemberViewController { + + private final MemberCommandService memberCommandService; + + @PostMapping("/members/signup") + public String joinMember(@ModelAttribute MemberRequestDTO.MemberJoinDto request, + BindingResult bindingResult, + Model model) { + if (bindingResult.hasErrors()) { + return "signup"; + } + + try { + memberCommandService.joinMember(request); + return "redirect:/login"; + } catch (Exception e) { + model.addAttribute("message", e.getMessage()); + return "signup"; + } + } + + @GetMapping("/login") + public String loginPage() { + return "login"; + } + + @GetMapping("/signup") + public String signupPage(Model model) { + model.addAttribute("memberJoinDto", new MemberRequestDTO.MemberJoinDto()); + return "signup"; + } + + @GetMapping("/home") + public String home() { + return "home"; + } + + @GetMapping("/admin") + public String admin() { + return "admin"; + } +} diff --git a/src/main/java/umc/spring/web/dto/MemberRequestDTO.java b/src/main/java/umc/spring/web/dto/MemberRequestDTO.java index 77aa329..0403505 100644 --- a/src/main/java/umc/spring/web/dto/MemberRequestDTO.java +++ b/src/main/java/umc/spring/web/dto/MemberRequestDTO.java @@ -1,12 +1,18 @@ package umc.spring.web.dto; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Getter; +import lombok.Setter; +import umc.spring.domain.enums.Role; import umc.spring.validation.annotation.ExistCategories; import java.util.List; public class MemberRequestDTO { @Getter + @Setter public static class MemberJoinDto { String name; Integer gender; @@ -16,5 +22,12 @@ public static class MemberJoinDto { String address; @ExistCategories List preferCategory; + @NotBlank + @Email + String email; + @NotBlank + String password; + @NotNull + Role role; } } \ No newline at end of file diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html new file mode 100644 index 0000000..55dbff1 --- /dev/null +++ b/src/main/resources/templates/admin.html @@ -0,0 +1,10 @@ + + + + Admin Page + + +

Admin Page

+

관리자만 접근할 수 있는 페이지입니다.

+ + \ No newline at end of file diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html new file mode 100644 index 0000000..8c10cb1 --- /dev/null +++ b/src/main/resources/templates/home.html @@ -0,0 +1,20 @@ + + + + Home + + +

Welcome to Home Page!

+ +

+ + +
+ + +
+ +
+ \ No newline at end of file diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html new file mode 100644 index 0000000..7804a3a --- /dev/null +++ b/src/main/resources/templates/login.html @@ -0,0 +1,26 @@ + + + + Login + + +

Login

+
+
+ + +
+
+ + +
+ +
+ +

사용자 이름 또는 비밀번호가 잘못되었습니다.

+

로그아웃되었습니다.

+ + +

계정이 없나요? Sign up

+ + \ No newline at end of file diff --git a/src/main/resources/templates/signup.html b/src/main/resources/templates/signup.html new file mode 100644 index 0000000..18d82ec --- /dev/null +++ b/src/main/resources/templates/signup.html @@ -0,0 +1,72 @@ + + + + 회원가입 + + + +

회원가입

+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + + + +
+ +
+ + + +
+
+
+ + +
+ +
+ + \ No newline at end of file From 28e4f72969dd6dcfcb58f1de84acb1eb95e4856e Mon Sep 17 00:00:00 2001 From: OhDG Date: Mon, 16 Jun 2025 19:53:34 +0900 Subject: [PATCH 2/2] mission/#10-2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 간단한 로그인 및 회원가입 구현 - JWT Token 방식 --- build.gradle | 4 + build/reports/problems/problems-report.html | 2 +- build/resources/main/application.yml | 8 +- .../compileJava/previous-compilation-data.bin | Bin 88562 -> 90464 bytes .../apiPayload/code/status/ErrorStatus.java | 4 +- .../exception/handler/MemberHandler.java | 11 +++ .../spring/config/properties/Constants.java | 7 ++ .../config/properties/JwtProperties.java | 24 +++++ .../config/security/SecurityConfig.java | 30 +++--- .../security/jwt/JwtAuthenticationFilter.java | 43 +++++++++ .../config/security/jwt/JwtTokenProvider.java | 91 ++++++++++++++++++ .../umc/spring/converter/MemberConverter.java | 15 +++ .../MemberService/MemberCommandService.java | 3 + .../MemberCommandServiceImpl.java | 28 ++++++ .../MemberService/MemberQueryService.java | 4 + .../MemberService/MemberQueryServiceImpl.java | 20 ++++ .../web/controller/MemberRestController.java | 19 +++- .../web/controller/MemberViewController.java | 56 ----------- .../umc/spring/web/dto/MemberRequestDTO.java | 11 +++ .../umc/spring/web/dto/MemberResponseDTO.java | 19 ++++ src/main/resources/application.yml | 8 +- 21 files changed, 333 insertions(+), 74 deletions(-) create mode 100644 src/main/java/umc/spring/apiPayload/exception/handler/MemberHandler.java create mode 100644 src/main/java/umc/spring/config/properties/Constants.java create mode 100644 src/main/java/umc/spring/config/properties/JwtProperties.java create mode 100644 src/main/java/umc/spring/config/security/jwt/JwtAuthenticationFilter.java create mode 100644 src/main/java/umc/spring/config/security/jwt/JwtTokenProvider.java delete mode 100644 src/main/java/umc/spring/web/controller/MemberViewController.java diff --git a/build.gradle b/build.gradle index 111577f..8b2a080 100644 --- a/build.gradle +++ b/build.gradle @@ -49,6 +49,10 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE' + // jwt + implementation 'io.jsonwebtoken:jjwt-api:0.11.5' + runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' + runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' } diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index 041013c..6d2a77f 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ diff --git a/build/resources/main/application.yml b/build/resources/main/application.yml index 5fb539e..72f08a9 100644 --- a/build/resources/main/application.yml +++ b/build/resources/main/application.yml @@ -25,4 +25,10 @@ spring: use_sql_comments: true hbm2ddl: auto: update - default_batch_fetch_size: 1000 \ No newline at end of file + default_batch_fetch_size: 1000 + +jwt: + token: + secretKey: umceightfightingjwttokenauthentication + expiration: + access: 14400000 \ No newline at end of file diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index f4cea4555bc6714bf62ee8b6fe101ffa613f6f2b..d4527d773a498b4dccb5070f1e0d9464ce1bf0bf 100644 GIT binary patch literal 90464 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

`ypvt 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 literal 88562 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

na%fegOt2Lo&sXsfX3mZSVHkO1ymdH1I*e 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 requests - .requestMatchers("/", "/home", "/signup", "/members/signup", "/css/**").permitAll() - .requestMatchers("/admin/**").hasRole("ADMIN") - .anyRequest().authenticated() + .sessionManagement(session -> + session.sessionCreationPolicy(SessionCreationPolicy.STATELESS) ) - .formLogin((form) -> form - .loginPage("/login") - .defaultSuccessUrl("/home", true) - .permitAll() + .authorizeHttpRequests( + (requests) -> requests + .requestMatchers("/", "/members/join", "/members/login", "/swagger-ui/**", "/v3/api-docs/**").permitAll() + .requestMatchers("/admin/**").hasRole("ADMIN") + .anyRequest().authenticated() ) - .logout((logout) -> logout - .logoutUrl("/logout") - .logoutSuccessUrl("/login?logout") - .permitAll() - ); + .csrf(csrf -> csrf.disable()) + .addFilterBefore(new JwtAuthenticationFilter(jwtTokenProvider), UsernamePasswordAuthenticationFilter.class); return http.build(); } diff --git a/src/main/java/umc/spring/config/security/jwt/JwtAuthenticationFilter.java b/src/main/java/umc/spring/config/security/jwt/JwtAuthenticationFilter.java new file mode 100644 index 0000000..bc6bb96 --- /dev/null +++ b/src/main/java/umc/spring/config/security/jwt/JwtAuthenticationFilter.java @@ -0,0 +1,43 @@ +package umc.spring.config.security.jwt; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.util.StringUtils; +import org.springframework.web.filter.OncePerRequestFilter; +import umc.spring.config.properties.Constants; + +import java.io.IOException; + +@RequiredArgsConstructor +public class JwtAuthenticationFilter extends OncePerRequestFilter { + + private final JwtTokenProvider jwtTokenProvider; + + @Override + protected void doFilterInternal(HttpServletRequest request, + HttpServletResponse response, + FilterChain filterChain) + throws ServletException, IOException { + + String token = resolveToken(request); + + if (StringUtils.hasText(token) && jwtTokenProvider.validateToken(token)) { + Authentication authentication = jwtTokenProvider.getAuthentication(token); + SecurityContextHolder.getContext().setAuthentication(authentication); + } + filterChain.doFilter(request, response); + } + + private String resolveToken(HttpServletRequest request) { + String bearerToken = request.getHeader(Constants.AUTH_HEADER); + if (StringUtils.hasText(bearerToken) && bearerToken.startsWith(Constants.TOKEN_PREFIX)) { + return bearerToken.substring(Constants.TOKEN_PREFIX.length()); + } + return null; + } +} diff --git a/src/main/java/umc/spring/config/security/jwt/JwtTokenProvider.java b/src/main/java/umc/spring/config/security/jwt/JwtTokenProvider.java new file mode 100644 index 0000000..ba3a00a --- /dev/null +++ b/src/main/java/umc/spring/config/security/jwt/JwtTokenProvider.java @@ -0,0 +1,91 @@ +package umc.spring.config.security.jwt; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.JwtException; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import io.jsonwebtoken.security.Keys; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.User; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import umc.spring.apiPayload.code.status.ErrorStatus; +import umc.spring.apiPayload.exception.handler.MemberHandler; +import umc.spring.config.properties.Constants; +import umc.spring.config.properties.JwtProperties; + +import java.security.Key; +import java.util.Collections; +import java.util.Date; + +@Component +@RequiredArgsConstructor +public class JwtTokenProvider { + + private final JwtProperties jwtProperties; + + private Key getSigningKey() { + return Keys.hmacShaKeyFor(jwtProperties.getSecretKey().getBytes()); + } + + public String generateToken(Authentication authentication) { + + String email = authentication.getName(); + + return Jwts.builder() + .setSubject(email) + .claim("role", authentication.getAuthorities().iterator().next().getAuthority()) + .setIssuedAt(new Date()) + .setExpiration(new Date(System.currentTimeMillis() + jwtProperties.getExpiration().getAccess())) + .signWith(getSigningKey(), SignatureAlgorithm.HS256) + .compact(); + } + + public boolean validateToken(String token) { + + try { + Jwts.parserBuilder() + .setSigningKey(getSigningKey()) + .build() + .parseClaimsJws(token); + return true; + } catch (JwtException | IllegalArgumentException e) { + return false; + } + } + + public Authentication getAuthentication(String token) { + Claims claims = Jwts.parserBuilder() + .setSigningKey(getSigningKey()) + .build() + .parseClaimsJws(token) + .getBody(); + + String email = claims.getSubject(); + String role = claims.get("role", String.class); + + User principal = new User(email, "", Collections.singleton(() -> role)); + return new UsernamePasswordAuthenticationToken(principal, token, principal.getAuthorities()); + } + + public static String resolveToken(HttpServletRequest request) { + + String bearerToken = request.getHeader(Constants.AUTH_HEADER); + if (StringUtils.hasText(bearerToken) && bearerToken.startsWith(Constants.TOKEN_PREFIX)) { + return bearerToken.substring(Constants.TOKEN_PREFIX.length()); + } + return null; + } + + public Authentication extractAuthentication(HttpServletRequest request) { + + String accessToken = resolveToken(request); + if (accessToken == null || !validateToken(accessToken)) { + throw new MemberHandler(ErrorStatus.INVALID_TOKEN); + } + return getAuthentication(accessToken); + } +} diff --git a/src/main/java/umc/spring/converter/MemberConverter.java b/src/main/java/umc/spring/converter/MemberConverter.java index 4ba1846..de538d7 100644 --- a/src/main/java/umc/spring/converter/MemberConverter.java +++ b/src/main/java/umc/spring/converter/MemberConverter.java @@ -17,6 +17,21 @@ public static MemberResponseDTO.MemberJoinResultDTO toJoinResultDTO(Member membe .build(); } + public static MemberResponseDTO.LoginResultDTO toLoginResultDTO(Long memberID, String accessToken) { + return MemberResponseDTO.LoginResultDTO.builder() + .memberId(memberID) + .accessToken(accessToken) + .build(); + } + + public static MemberResponseDTO.MemberInfoDTO toMemberInfoDTO(Member member){ + return MemberResponseDTO.MemberInfoDTO.builder() + .name(member.getName()) + .email(member.getEmail()) + .gender(member.getGender().name()) + .build(); + } + public static Member toMember(MemberRequestDTO.MemberJoinDto request){ Gender gender = null; diff --git a/src/main/java/umc/spring/service/MemberService/MemberCommandService.java b/src/main/java/umc/spring/service/MemberService/MemberCommandService.java index 9d6df28..788b0c8 100644 --- a/src/main/java/umc/spring/service/MemberService/MemberCommandService.java +++ b/src/main/java/umc/spring/service/MemberService/MemberCommandService.java @@ -2,7 +2,10 @@ import umc.spring.domain.Member; import umc.spring.web.dto.MemberRequestDTO; +import umc.spring.web.dto.MemberResponseDTO; public interface MemberCommandService { Member joinMember(MemberRequestDTO.MemberJoinDto request); + + MemberResponseDTO.LoginResultDTO loginMember(MemberRequestDTO.LoginRequestDTO request); } diff --git a/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java b/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java index 2733ba6..250cfed 100644 --- a/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java +++ b/src/main/java/umc/spring/service/MemberService/MemberCommandServiceImpl.java @@ -2,10 +2,14 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import umc.spring.apiPayload.code.status.ErrorStatus; import umc.spring.apiPayload.exception.handler.FoodHandler; +import umc.spring.apiPayload.exception.handler.MemberHandler; +import umc.spring.config.security.jwt.JwtTokenProvider; import umc.spring.converter.FavoriteFoodConverter; import umc.spring.converter.MemberConverter; import umc.spring.domain.Food; @@ -14,7 +18,9 @@ import umc.spring.repository.FoodRepository.FoodRepository; import umc.spring.repository.MemberRepository.MemberRepository; import umc.spring.web.dto.MemberRequestDTO; +import umc.spring.web.dto.MemberResponseDTO; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -25,6 +31,7 @@ public class MemberCommandServiceImpl implements MemberCommandService{ private final MemberRepository memberRepository; private final FoodRepository foodRepository; private final PasswordEncoder passwordEncoder; + private final JwtTokenProvider jwtTokenProvider; @Override @Transactional @@ -45,4 +52,25 @@ public Member joinMember(MemberRequestDTO.MemberJoinDto request) { return memberRepository.save(newMember); } + + @Override + public MemberResponseDTO.LoginResultDTO loginMember(MemberRequestDTO.LoginRequestDTO request) { + Member member = memberRepository.findByEmail(request.getEmail()) + .orElseThrow(() -> new MemberHandler(ErrorStatus.MEMBER_NOT_FOUND)); + + if (!passwordEncoder.matches(request.getPassword(), member.getPassword())) { + throw new MemberHandler(ErrorStatus.INVALID_TOKEN); + } + + Authentication authentication = new UsernamePasswordAuthenticationToken( + member.getEmail(), null, Collections.singleton(() -> member.getRole().name()) + ); + + String accessToken = jwtTokenProvider.generateToken(authentication); + + return MemberConverter.toLoginResultDTO( + member.getId(), + accessToken + ); + } } \ No newline at end of file diff --git a/src/main/java/umc/spring/service/MemberService/MemberQueryService.java b/src/main/java/umc/spring/service/MemberService/MemberQueryService.java index b072127..6545682 100644 --- a/src/main/java/umc/spring/service/MemberService/MemberQueryService.java +++ b/src/main/java/umc/spring/service/MemberService/MemberQueryService.java @@ -1,8 +1,12 @@ package umc.spring.service.MemberService; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.data.domain.Page; import umc.spring.domain.Review; +import umc.spring.web.dto.MemberResponseDTO; public interface MemberQueryService { Page getReviewList(Long memberId, Integer page); + + MemberResponseDTO.MemberInfoDTO getMemberInfo(HttpServletRequest request); } diff --git a/src/main/java/umc/spring/service/MemberService/MemberQueryServiceImpl.java b/src/main/java/umc/spring/service/MemberService/MemberQueryServiceImpl.java index 5737ab9..4b72059 100644 --- a/src/main/java/umc/spring/service/MemberService/MemberQueryServiceImpl.java +++ b/src/main/java/umc/spring/service/MemberService/MemberQueryServiceImpl.java @@ -1,14 +1,22 @@ package umc.spring.service.MemberService; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import umc.spring.apiPayload.code.status.ErrorStatus; +import umc.spring.apiPayload.exception.handler.MemberHandler; +import umc.spring.config.security.jwt.JwtTokenProvider; +import umc.spring.converter.MemberConverter; import umc.spring.domain.Member; import umc.spring.domain.Review; import umc.spring.repository.MemberRepository.MemberRepository; import umc.spring.repository.ReviewRepository.ReviewRepository; +import umc.spring.web.dto.MemberResponseDTO; @Service @@ -18,6 +26,7 @@ public class MemberQueryServiceImpl implements MemberQueryService { private final MemberRepository memberRepository; private final ReviewRepository reviewRepository; + private final JwtTokenProvider jwtTokenProvider; @Override public Page getReviewList(Long memberId, Integer page) { @@ -27,4 +36,15 @@ public Page getReviewList(Long memberId, Integer page) { Page RestaurantPage = reviewRepository.findAllByMember(member, PageRequest.of(page, 10)); return RestaurantPage; } + + @Override + @Transactional(readOnly = true) + public MemberResponseDTO.MemberInfoDTO getMemberInfo(HttpServletRequest request) { + Authentication authentication = jwtTokenProvider.extractAuthentication(request); + String email = authentication.getName(); + + Member member = memberRepository.findByEmail(email) + .orElseThrow(() -> new MemberHandler(ErrorStatus.MEMBER_NOT_FOUND)); + return MemberConverter.toMemberInfoDTO(member); + } } \ No newline at end of file diff --git a/src/main/java/umc/spring/web/controller/MemberRestController.java b/src/main/java/umc/spring/web/controller/MemberRestController.java index d5c4cb7..bd9886a 100644 --- a/src/main/java/umc/spring/web/controller/MemberRestController.java +++ b/src/main/java/umc/spring/web/controller/MemberRestController.java @@ -6,6 +6,8 @@ import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -40,7 +42,7 @@ public class MemberRestController { private final MemberQueryService memberQueryService; private final MemberMissionQueryService memberMissionQueryService; - @PostMapping("/") + @PostMapping("/join") public ApiResponse join(@RequestBody @Valid MemberRequestDTO.MemberJoinDto request){ Member member = memberCommandService.joinMember(request); return ApiResponse.onSuccess(MemberConverter.toJoinResultDTO(member)); @@ -84,4 +86,19 @@ public ApiResponse getMemb return ApiResponse.onSuccess(MemberMissionConverter.toMemberMissionPreViewListDTO(memberMissionList)); } + @PostMapping("/login") + @Operation(summary = "유저 로그인 API", description = "유저가 로그인하는 API입니다.") + public ApiResponse login(@RequestBody @Valid MemberRequestDTO.LoginRequestDTO request) { + return ApiResponse.onSuccess(memberCommandService.loginMember(request)); + } + + @GetMapping("/info") + @Operation(summary = "유저 내 정보 조회 API - 인증 필요", + description = "유저가 내 정보를 조회하는 API입니다.", + security = { @SecurityRequirement(name = "JWT TOKEN") } + ) + public ApiResponse getMyInfo(HttpServletRequest request) { + return ApiResponse.onSuccess(memberQueryService.getMemberInfo(request)); + } + } \ No newline at end of file diff --git a/src/main/java/umc/spring/web/controller/MemberViewController.java b/src/main/java/umc/spring/web/controller/MemberViewController.java deleted file mode 100644 index 76bd4a3..0000000 --- a/src/main/java/umc/spring/web/controller/MemberViewController.java +++ /dev/null @@ -1,56 +0,0 @@ -package umc.spring.web.controller; - -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; -import umc.spring.service.MemberService.MemberCommandService; -import umc.spring.web.dto.MemberRequestDTO; - -@Controller -@RequiredArgsConstructor -public class MemberViewController { - - private final MemberCommandService memberCommandService; - - @PostMapping("/members/signup") - public String joinMember(@ModelAttribute MemberRequestDTO.MemberJoinDto request, - BindingResult bindingResult, - Model model) { - if (bindingResult.hasErrors()) { - return "signup"; - } - - try { - memberCommandService.joinMember(request); - return "redirect:/login"; - } catch (Exception e) { - model.addAttribute("message", e.getMessage()); - return "signup"; - } - } - - @GetMapping("/login") - public String loginPage() { - return "login"; - } - - @GetMapping("/signup") - public String signupPage(Model model) { - model.addAttribute("memberJoinDto", new MemberRequestDTO.MemberJoinDto()); - return "signup"; - } - - @GetMapping("/home") - public String home() { - return "home"; - } - - @GetMapping("/admin") - public String admin() { - return "admin"; - } -} diff --git a/src/main/java/umc/spring/web/dto/MemberRequestDTO.java b/src/main/java/umc/spring/web/dto/MemberRequestDTO.java index 0403505..6b937fd 100644 --- a/src/main/java/umc/spring/web/dto/MemberRequestDTO.java +++ b/src/main/java/umc/spring/web/dto/MemberRequestDTO.java @@ -30,4 +30,15 @@ public static class MemberJoinDto { @NotNull Role role; } + + @Getter + @Setter + public static class LoginRequestDTO { + @NotBlank(message = "이메일은 필수입니다.") + @Email(message = "올바른 이메일 형식이어야 합니다.") + private String email; + + @NotBlank(message = "패스워드는 필수입니다.") + private String password; + } } \ No newline at end of file diff --git a/src/main/java/umc/spring/web/dto/MemberResponseDTO.java b/src/main/java/umc/spring/web/dto/MemberResponseDTO.java index 3d5b867..b56184d 100644 --- a/src/main/java/umc/spring/web/dto/MemberResponseDTO.java +++ b/src/main/java/umc/spring/web/dto/MemberResponseDTO.java @@ -17,4 +17,23 @@ public static class MemberJoinResultDTO { Long memberId; LocalDateTime createdAt; } + + @Builder + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class LoginResultDTO { + Long memberId; + String accessToken; + } + + @Builder + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class MemberInfoDTO { + String name; + String email; + String gender; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5fb539e..72f08a9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -25,4 +25,10 @@ spring: use_sql_comments: true hbm2ddl: auto: update - default_batch_fetch_size: 1000 \ No newline at end of file + default_batch_fetch_size: 1000 + +jwt: + token: + secretKey: umceightfightingjwttokenauthentication + expiration: + access: 14400000 \ No newline at end of file