From 6eadfff66fc680372959035677aadd56831ec69c Mon Sep 17 00:00:00 2001 From: Alexandre Dehaine <alexandredehaine@outlook.fr> Date: Mon, 10 Mar 2025 11:16:07 +0100 Subject: [PATCH] v0.9 --- .vscode/settings.json | 12 ++ ScriptSQL.sql | 11 +- WEB-INF/classes/dao/Authent.class | Bin 0 -> 4073 bytes WEB-INF/classes/dao/Conversation.class | Bin 875 -> 2439 bytes WEB-INF/classes/dao/ConversationDao.class | Bin 575 -> 636 bytes WEB-INF/classes/dao/ConversationJdbcDao.class | Bin 6695 -> 7431 bytes WEB-INF/classes/dao/Message.class | Bin 1826 -> 1852 bytes WEB-INF/classes/dao/MessageJdbcDao.class | Bin 5875 -> 5875 bytes WEB-INF/classes/dao/Utilisateur.class | Bin 1320 -> 1941 bytes WEB-INF/src/dao/Authent.java | 84 +++++++++++ WEB-INF/src/dao/Conversation.java | 53 ++++++- WEB-INF/src/dao/ConversationDao.java | 3 +- WEB-INF/src/dao/ConversationJdbcDao.java | 26 +++- WEB-INF/src/dao/Message.java | 2 +- WEB-INF/src/dao/Utilisateur.java | 37 +++++ accueil.jsp | 134 +++++++++++++----- login.html | 33 +++++ util.txt | 2 +- 18 files changed, 346 insertions(+), 51 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 WEB-INF/classes/dao/Authent.class create mode 100644 WEB-INF/src/dao/Authent.java create mode 100644 login.html diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cb83cd3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "java.project.sourcePaths": [ + "WEB-INF/classes", + "WEB-INF/lib" + ], + "java.project.referencedLibraries": [ + "/home/infoetu/alexandre.dehaine.etu/tomcat/lib/annotations-api.jar", + "/home/infoetu/alexandre.dehaine.etu/tomcat/webapps/sae-r4.01/WEB-INF/lib/postgresql-42.7.4.jar", + "/home/infoetu/alexandre.dehaine.etu/tomcat/webapps/sae-r4.01/WEB-INF/lib/chesslib-1.1.8.jar" + ], + "java.project.outputPath": "WEB-INF/classes" +} \ No newline at end of file diff --git a/ScriptSQL.sql b/ScriptSQL.sql index 7a19a72..6473068 100644 --- a/ScriptSQL.sql +++ b/ScriptSQL.sql @@ -14,6 +14,7 @@ CREATE TABLE Conversations nomConv VARCHAR, createur VARCHAR, dateCrea DATE default CURRENT_DATE, + pwd VARCHAR, CONSTRAINT pk_Conversations PRIMARY KEY (idConv), CONSTRAINT fk_Utilisateur FOREIGN KEY (createur) REFERENCES Utilisateur(email) @@ -35,19 +36,19 @@ CREATE TABLE Messages -- Création des utilisateur INSERT INTO Utilisateur(pseudo, email, pwd) - VALUES('Alex2n','alexandre.dehaine.etu@univ-lille.fr', 'mdp'); + VALUES('Alex2n','alexandre.dehaine.etu@univ-lille.fr', MD5('mdp')); INSERT INTO Utilisateur(pseudo, email, pwd) - VALUES('Shiira02','audrey.v.etu@univ-lille.fr', 'mdp'); + VALUES('Shiira02','audrey.v.etu@univ-lille.fr', MD5('mdp')); -- Créations d'une Conversation 1 et de messages - INSERT INTO Conversations(nomConv, createur) - VALUES('Conversation 1', (SELECT email FROM Utilisateur WHERE email = 'audrey.v.etu@univ-lille.fr')); + INSERT INTO Conversations(nomConv, createur, pwd) + VALUES('Conversation 1', (SELECT email FROM Utilisateur WHERE email = 'audrey.v.etu@univ-lille.fr'), MD5('mdp')); INSERT INTO Messages(message, utilisateur, idConv) VALUES('Salut', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr'), (SELECT idConv FROM Conversations WHERE nomConv = 'Conversation 1')); INSERT INTO Messages(message, utilisateur, idConv) VALUES('Hello', (SELECT email FROM Utilisateur WHERE email = 'audrey.v.etu@univ-lille.fr'), (SELECT idConv FROM Conversations WHERE nomConv = 'Conversation 1')); -- Créations d'une Conversation 2 et de messages INSERT INTO Conversations(nomConv, createur) - VALUES('Conversation 2', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr')); + VALUES('Conversation 2', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr'), MD5('mdp')); INSERT INTO Messages(message, utilisateur, idConv) VALUES('Conv 2', (SELECT email FROM Utilisateur WHERE email = 'alexandre.dehaine.etu@univ-lille.fr'), (SELECT idConv FROM Conversations WHERE nomConv = 'Conversation 2')); INSERT INTO Messages(message, utilisateur, idConv) diff --git a/WEB-INF/classes/dao/Authent.class b/WEB-INF/classes/dao/Authent.class new file mode 100644 index 0000000000000000000000000000000000000000..45f9b26835e582c2d87ceccc95684c00e0a47a53 GIT binary patch literal 4073 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 literal 0 HcmV?d00001 diff --git a/WEB-INF/classes/dao/Conversation.class b/WEB-INF/classes/dao/Conversation.class index 371c092f728d39d0d6c485973e5fd70d04b310f4..c46de39582b4f87e4f4f07e3b12905ad7290e591 100644 GIT binary patch literal 2439 zcmX^0Z`VEs1_oP(NG=8@24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3U%l*D{}=lr~~)S}|VlFa-(Mh3Rb6p#QT1EVKM zF&_^DKZ5`x14l|?Nvd;EY9b?ps1MkZlFZyxeV_c~#2lBzl2mJuVj&&|VFnRK2KK!C zT!<k;5Vc?j1(y_M=B0xbit#XrGe|Hpa3mL{CYGd@7BMmi`heULT9TQQSqv7k=3<ay zkY;C);bD+vkVEkr#3V)r_OisB(p3L6Mg}zvB#R(Ex7I`wg6II-t-!;e2y!HIL3xT0 z0|SFH4}%JWDkFn<Zen(-bADcOVo7*rNrrQNUU5lcUP&<{L#&1;rcvaHU~v-{gF1r- zJA)<<gBF7}BZDxOz-46M$Ve>CaL!Lj1xKSNC}=de81z6I^%)uX(Si<?C=7WRj2Mg= z8935YOPq5Oi;Ec<gf)<@2Mbz*Y&Yd$Fk>)hWME4zEKSTQW@He>7Mf8YOHDzRnldu@ zVGR;AXIMkR2rZ#N1d&sOW*8#_3&eB$KACx`ex<odsYM})Nja&E44mnyC7#eE$(^2B z0!nO<bSMt<4w?mw3|#4{C4R6ZC<0T4Y$YQD$SjaKkkkhX8g$n)GH?|mnS&B2(DVdy zIY&u8gvZFh8(fl@ob8)f0ChW8aDHh~a;jS<$RmQF90AK`dZ1WlWDs!5&o3!1DM~Ex zO)bgDPbubSWANc(@MZ90XYdE5%K%0O6_8R$md?y8%g;{Lhgb(ms&0wNCHX~_j0`i7 z;|!`0VyH)AUP?}Cv5HTAes*aAG*XZQ11UyOG=@|bq+(GXjieq+R)ZShoS2gnoLQ1; z&A|}F$l!?Vd4*_58Dq<+qW~*bKx}BK0b;_+1rWQSJjIqVmXU$SGcPZ-2%KzFi`f}M z85vYDf(Dz9*%`ta8RYOQWn^H31P_BE0|x^W0|Nsq0~4r>WME)m0+oPZT9`ouOp7x} zfN4cApOb-+ftA6Efsw(Qfq}t|fr){Qfq_9vYdZs@mh@Hzb}dPktqi<cI$Ie8wRE>K zh;C$HU|?jh0jUA2<Y8c8;AP-s;A7xt;AaqF5MYpG5M*Fvuw~GOnkmb`$iN74lhzgn z_BC+rY+ylQ21W)u274?@c{iXb6=PszaA0u6qErxFsU!m<gA;=@7Nw%-N@W-r8C)1# zp-Pn)n84x3rlq}=K@j0rP?^NQAkV<cpuoV$;0AYv1p_PC8ww!5X>DQP-N7KKwS_@Y zYYT%Ygekv^L5YC@-Bx7=Mo@tXwe=0u);ty)0eR^RkXZ>Z7VmKecIM>_Tp+`@F{r`C z1rg$c+Zc4<;-Uy~(QOR6aB+ErxI9?BG$<;Vz%ePuz|O$Hpvl0*pvAz$pv|Ddpu=Fp zpvw@#pvREIpwHmWz`)?a!113!nt_R(frF8Ok?}tR8<fq&$QVEhmw^#fUPFA&7z}Cv zFfcHz)6!nXz{;{l`#1wD^BS#f3<lcU7z~zzINApoIDA1tqO*m8eLhG86coo9cyzWf z@E&6jWnKf~gE-q5OlCpl1tIc+FnK|pEewL&7%X7&q7Zpen7pXY76#F643;o?d5F9` zOkQ4R3xhmNKMNw{su<)L7#NHhSQ$(h*cnV2xEahCcp1zYBp56hq!=t2<Qc3Ov>2?x z;c3iZ%V5P|$6&)?&)~)2z~IB+$Pmon#1O^c%n-xi!jQ$_%8<k0#!$@Q&QQhR!BE5C z$<W2%#n8jx%`ln4hhY|jFT)%LKZaEd{tRmv0>H5%%)rCW%JYXokez{p9|{<l89cxl k+>^nJfq{X8fsw(RfsrAQA((-Ifs28WA%r1}A%Z~?0Oi;qF#rGn delta 350 zcmZn{e$B>p>ff$?3=9mm3>p);ZZk77*i6o66rDVsNp<o$CQTM*4NcF<Uzw&)Ud}Af z#h}Q*!NA18z`!y&g;i0Qje(JYl|hn$kwJ=qfx(S|iGg+U0#@aEX$A%cDF!wM1_o{h z76u*$P6l2Eeg-}U5e9w+Nd^H1Mg|!MS*R`$&B(yOz^b){fqe}F0|O%iNIS@A1_mJp zMg}<sc`QnKH=rpMWng4bU{C}pt!H2W8xJ#95M8YV10#bHgEB}hno?18rP2(H3@Qw& lP^C%?OknS`X=!g|5ZnlN0vA|Rj)4{IR(3T81_mYubpQ>VAeI0C diff --git a/WEB-INF/classes/dao/ConversationDao.class b/WEB-INF/classes/dao/ConversationDao.class index 9f49a0f6e0117fa17fa6eab5fa2f8874b9847139..a2930172d2374868a20253fe952d727e48f96892 100644 GIT binary patch delta 108 zcmdnb@`r`%)W2Q(7#J9A86-Ax6)-YdOs-~B5%kGQEKAhSNz6;v4=yRn%uAm<k5N&c yJv~1^C7?WokwHwu6GMsh<lT&hjO>%&GI|KHFfxcRh%zuRFfxcSFfcGNhywsypB<+F delta 50 zcmeyvvY&<P)W2Q(7#J9A8N@bn6)-ZYO|E8CnY@uvVe%J7T}HOaN=zPH42%pS3=9lR G459#(e+)eU diff --git a/WEB-INF/classes/dao/ConversationJdbcDao.class b/WEB-INF/classes/dao/ConversationJdbcDao.class index d12c821c417bc2040428c62041dc7de3593f5a69..21c0c2d04aa20f9680699cd709e95b6cc96324ec 100644 GIT binary patch delta 2117 zcmZ2((r(3d>ff$?3=9mm46inFB{4JmX?RY4$Ra#>KAXVgNz9^?KXD0dUe0X5%;+_l zk;85?3ws75zYqgE!)6`^8HO#44C)%5lV7u`GP5&mo1D+#$hdp+Mh-(pMvKXe93o&t zK5+?6X6I6nXHU=1PYEbbVPp`~@bt+_EKAhSNz6;v4=yRn%uBbPtjy)Wcb<#k0>edi zhD#vBFHbJyI>LB$vKhA#<Mqjz+~$loCokl7V!S>13AZle-N`~c_AK`q8GI*)@@VVn zC=`^ZXexv``h>a$Yp64->nMN;Ul&slPgB#HgW(|~gSLySk86nQWJhjwmdA_?4wEgp zbu<+m{airW6>Jq?%B>k0cs%p+Qj45(5{rvdi`f~TF*2x5p34RD=!?mWyvE{N85kKD z82A|Y85kHi85kK@8Q2&Y8MaUM=2c|eF*%o4oOe3|0~0#~Cj$oq1H;$J6M17eBw0Cj zGT1ONOn%GT?IM)5oxyhl13Lo`LlwhBhERs-409P4FoZI&GPE$PVF+cI$gl=XZ)Dic zu!|v-fq|iq;Rr)C!$gK7V48_x$K+jn@{XAd;tT~05)5SwQVdlL(hPkJQVbIr1R0Jn zNHZK|kYTvOAj@!rL7rhJ0|P??1LuE+76uM>25v@n22pkfZFYuTlco6c+4nH)Wng01 zzIg(_0Au|Q1_lN<20;b}1{DS#22}<T1~mp526YBC1`P&%22BP_1}%mF1|5cQ23>|& z20eyE27QK720exf1{H?Y4EhXf7z`M8GZ-@LXD|j^JAr}wKZ8C4J39k6JHsxx#q11* z><o1b3<`f3q}UniIR7&+F|e>Ra7)4!F)*?-g#KsXV_=17om?O+E(Vc>O7VhqfPCQ~ zDI&$runQy}%>YW%Obq)O7#R*Q90Yr8vY;npD#BwH3_J{$3?d9x3^EMX3~CHE4EhYV z43-Rb44n)P3=<d}8KyBfG0b9cW?0AI#ITXUg5e2+Gs9B`7ltnkt_(jI+`%4eLwF1+ zJROCL1tAVN#K6dK80vtd!cvfs^<xlbU|{fJ;9>A(5Ml6RkYVs=P-6&S&}Rr_Fk%Q| zuwe*h2w@0eh++t1NMs0SNN0#($YzLSsAq^^XkzeT*vb&eu#F*#;V45i!%2o%utQow z4lzQDSV;IXGBBva0(f$qXhJ>2X-60s8ICd>10`Ap2FCXc%nY0i3=G?}wlN4;u}HG) zWDsFwuwvEL*~TzMcNfES1_mp(O$>69Y}*)ABv~cdb~0!&F<7xnvhQRtU}Ojf(E*GM zAbr7%3@m0GlB~xVxFlJ3GK7FcL2Q<t48e>Hq8#;Wtk^)ZVo=%T3_Mosl5CRf+Ze(n z+4ftpO0pbd5QCZol4Jwf2a;snZ^g2SAy$%Q8$-e_h7<+{kXu-`F{CrEVPI$AXYgQ1 zW(Z}-Vkl%NVF+blV+dhrU<hSMW@rG@?F@b3d{)oEkiamPA(|nXVJ?_vVgMxzJ8)J` zV&G>;W{_b>VNhX6Wzc6xV=!k(XRu?)U~px~Wbk0fVn|@fWJqR6VwlU2#W0^Cn_)de z4#O6PJa8<m24$}h22My~WoO8SBvnW@V`ngAWMJU_U(dkAz=o*;lx{=+GYBAZ39{}` zurvoKhd{Fe+;p%ENF%19NV-7z3hbI}A$C|MVPrVYZ~~M7Ca)KNo{R{DVg??D5(W{5 zQU)1@G6pq<a&Xo*WvFDZW~gGYW2j~bVyI#WWhiFoV5ny3WT;`7!BEREhoK%E2-ToK z@Bn)QktZOYpBy8a#L2`U#2^f|HAT`P9%QQ;IO(-9Ff+6>urYKna58i<@G^8W2r=|9 zNHO#=NHg>^s4`3fo6g3-7{$)8o`I3!B*Q6?DGUsZhZ&f_rR)k&;`P&oBwZG1om~u@ zCVvo}UGK;c#SqGn$dJL14K81O8Oj+#8KM}<!E`M{GeaA=d<|!q#1PF8#V`p>BPWX) z47?088N?W7F~~8@X3%7q!(hlTm%)Nz9)lgjd<I8`1q|T~^BJNTW-v@*SimruVIjjJ zhD8j^7?yzCT+h%83KCyf?nEg785uxwOyB~J5gb9FQW+&q5yI>YXfX<vf+~j;lTa~) z+R0s_ToKT6k(uE%0|NsS!x@IN3=9lL3>*yS7#JC@fXQoM@&=f^1t#x+$$Mb(0hoNm U@PvVZfs28W;VHv&hL;SI0P;AUBLDyZ delta 1461 zcmZp-T5iI1>ff$?3=9mm439T*B{4JFOwMJt+Pst5fSJicV{!nu>|_B}_R02~?3*>% zGZ>lK88%No&f&<oV>2hGAtRHT#^iiv<;jIy3X`{R+3=m>VmQrkhMnOo4}%QDxyk>y zjxb)Be3;va@zUgP+~$l|ChPGyF<zTo$fL`6WAc0+dzM>_40e+r@o39yDug-ugt`W6 zs57eTD5x{4Yg%(K++k$Uc5(G_4RM`(j$2iTk%7lEFE6#oIVZ8WIJKCa;r`?uyjm;| z85!gz@8*@8%)%!mzKMa6fq{XKfuDhafrEjOft7)cfstX$WL-W*#;ue6`NVm*FfcIw zW#DAsU|?W)J-L`KX7Y8uZl~=Gz8e_W8F(0q7&;k38TuKfGR$BIWng8fVOYWt%FxNM z1Wd1FSkJJDA(VlEp^ae=Lo`Dt!yYir#ISYpGJbilL<Vt&3<e2?JO)XIA_ggjHU>$C zP6k1SJq%I|dl{q|&M?R@Twsu6*v7!X(7?d?pP`0<gPnn!k)1)5ok5$OVLLm6Av=Q^ zJA>IIsT58|hMf$%7?>EgY_1UyV65NDz`)?fAjrVLpv=I-pu!-+pvoY_pvIuapw6Jr zpuu3tpve%xpv@4@pu-T$pv#cRpvO?kpvzFfpv<tEL62b#gFeG<1_Oru3`SrFOkm*t z&!Er1&d$IMwi($8bqov&e;B0L8R|IyGcYl*urqK=!WA(vvNMGKXW(OCg=n3uASEsa zk%da}f_1PnY@Zw`Bqp&PBpS`In}LCWiD3@|Bg0;XePD0Z3wbi8BD`hJz{6m{Ai`kD zAj4qApvGX$pwD2#V98+1(8*xWFoD5=VH$%Y!z>0ThII^%3>z8D8J;jWF+62(X86M3 z!tjH^4eYHpgtrjkI$2kwSP<fX{S1r@2cQnvC?dre3UYuSgD?XFgEs>YgAaoUgD-;& zgCBz$gFk~lLjZ#jLm-0<Ll8p<Loh=WLnuQcLl{FkLpVb=Lj*%TLpVbdgEzxgh6sjj z43P{+8KM|YGQ==!o2(!v&bWQDg;<dh#M*-lj0}eu4ueu70|VnF1}1O{T&=Z@LBLOU zCxZwhgB6Rm&NhZAyBMZV=8>LV@4^tv5Xz9kkj;<>PKf~wRScmFu?$sUx`Ck$oKhJW zq8O$!L^H%POa;?S3?T2=fiplN1201ogCs*TgCau;gAPL~g9$?#gEd1sgCj!*g9}3@ zLli>>Lo7og!&HV$hG`603`-fZ8CEjng2J($VJ0Yn27nVNIC8U*Qz;_@NR|nf1lSp% zvY@CA{m&r4zy?Vha0zyXP_P^aEIq-^1Pdc2Cx{j`6b;O9(?F`D85kLkFdPMi<>Va_ z&tnl@E@I$eC}t30C}EIcC}mJ%C}YrLC}%Kbs9>;WsARBXsA33WsALFbC}QYfsAA}3 zsAibKP{S~Xp$_C_hH8+XJis{uDe3%?EMVL+IakU7oCDPuI2jliS{axb+8Edv+8H<* zIv98vx)_8Qx*4PxdKsh{`WRFhCW6glV_=M8XIRg`%y0~x_K!21U|?X-VPI!C$-u~P n9!y>Ylb6BdRWNxSOx^^Ow;Ap-Ffed2Ff!a@c)-H&h(Qtnj@lp( diff --git a/WEB-INF/classes/dao/Message.class b/WEB-INF/classes/dao/Message.class index 7c7ecb66901903a3355227369aec6d02561d6767..74e4b4ebc05748592bbb9752c0cea2ea666b44f4 100644 GIT binary patch delta 624 zcmZ3)w}+4G)W2Q(7#J9A83H$QWiV=UF{m?Wurp}#FlaGoGcxd}B<AafmSpB+7AKaZ zmKHHGaHgl01Qe&1rsPk~V-n{QVqjp<<zdic(4SnxD8uBXF?k=O%H#`-3nsTSedcrF zVsK?}V`p#&sqmQG!F<Hci;=;=rnn$6PocP^GAGqmDJ?&*L>J7qQphYx%*jl)R<dKX z(FduqQ(#oEQeb3c;PK4MOD%HFNh~f-EoNu%o!rHu#p2J%AUC;}MQ-vn7B5x<21W+M z$*Qd8j7F1VSvBj88MHwn3=9kg49pCS3=9ksT3Z+-b}%StZDA1D#-OIPg+XQ)gAN13 z1_lNOMg}7W1_m~;I&lU@1``HTsBT#XMzAQW))of#HE2qu85kMNuqv(RMOQ1wz{p_E zV1dP00dyBAGB7e&GFV|zDuS+5g@KX5n!yG`>Ev!U&U%EO)EO8VY~dk->?av?6SWu^ z8SEJBp(ZLZFflNJf<{YwD}&5Nxc|ApqPh&M40;UA3=Rwo3``7;3{DIT3>*xM49*OU X44w@9-V6*3Tnvm1J`8>g0SuA=Qixe% delta 567 zcmdnPw}_AH)W2Q(7#J9A8GJT!WiWCHF)%Qw^Dt;IXinb8D8m$^G5H;%$|NSCNlXhS z&u0{!Jdf!spFJ0Y1A`+wgA+)d^W=rhN9<e~88lpT6EkxZtP~g(ToOxC!3>Yo(jo}U zH?_DpF&)fiWZ?14%S$bC&PgmTPAz6<@R+=sMT^CYkwI?qIu^Of-&wp^wHO!~v?sf< znltK5u4C1#*JaQHi7+rQm@}|2FfuSO$ZKt35ZJ+>ptXfT1VTwbD4AUhY77h;7#J8B z8FUyJ7}&td#TghG^cf7GhR8B7f<;-iwlJ`-K~pNtz{p^Ts<fVgfdQnJ7hSC!10#bG zgE1Ck1<+lf$iT>8!eEL;sR+7K6$VBIGX`^n(g3(?CD7HXGcYn(z(WVwV>0MUL4j(? zU<ERE@;f$hb5Q7TF)%SOFz7O{GUzcdGgvb)FfcLLFxWCMFmNz1GT1RNGPp3fF)%Q2 PF)%W?Gk7w1Ge`meVFpXP diff --git a/WEB-INF/classes/dao/MessageJdbcDao.class b/WEB-INF/classes/dao/MessageJdbcDao.class index 351df4f3a66ea2b41e6fc91905ccf6d72d6fe751..bcce12db5395236b73f4b1af3e128f3c3d2509ac 100644 GIT binary patch delta 648 zcmeyY`&oCxY$jcMMh5ou)DoA(l2k?pAq`JWpRB~PME&Bz9DR_OH5Y>;gA+T0GY^9c zgX?5DW*atl9tIBv&&dhQirn4|KI{y>JPdve{*!x{EflyJ3>gA>7=jpN85ua!Q%izN ziZb)kxfs|PLU<TL8Nw!SVlorpVlZQf;9+28h-734((v@0?8q!S`4_XgfKN(dzJ6#) zW=>{tVo7Rg(Pjk}QAS=ahEj$yc7}2uh6)DP$qQKJ+^ZO>*%@j;e1Ap;VX$*cGILY) zee#nNb3!t6Q#lxv*cs{>8Tio*<YK5}Xaw2Z#K>T&F*%o2WpX{M7-QY$N35Cbj69Ql zcs-0IS=n|n*f23{V{njUW#7r*24Z?ivU2QX2w-B++QPsk$tu7G=4@jK-p&wi#WtBy zpit5*l9_o2L&*+?N}<}_40Vx0wIH~ip<#0%pDZII_v8(NqLW+ro%KkwV6vIesmc2V zf*I>3hX|{R*ReB*vNLEiFtRhm|7YN1U}b0EW@o6IJV98}10)BP;ALQeNPv~cgGJf@ zGcYnRL4-j9sSHOL7#NrsjxsPZ9AY@ez{Iedfq_Yz0p!vM5?#63Oo)@2v2L=1s2pS6 t<akj@#=6OsqOuZo><kAO*%?GZ_Qn5a5MW?~*gtuls1#$}=98jYi~zNMj=BH< delta 644 zcmeyY`&oCxY$kD8Mh4FG)RN$mqRhN>E(Uf62Ob7T2B*n=%w}BN42BFYJPfW3Zj<LQ zDRO%-c(OBi@i2HZ_)I>*WW(mi!{E;lFqw;4kvoVXn4KYnhar?9Y_b`%g(4S&8AAjQ z11m!$BSVmer>9R!V!nQ8NoG!FabihoX_58hE6g^V6<I_W)z}$I85#J|<T)6WxEM+p zDnLe5GBQ|dOpfAEnViER91zCEP|Z-o&QQz4P{-iI$RM1RSeB??l9`*T?~|XLnB$UI zlFG=yoR?qD#n8ae$j;CNQW%D*FeEcKm5ZTd^CQ+wc1F(0KD-{rT3Z;nBw5*ZGT1ON zY-6yOWM$vU;0$8AOR{q8Wbg$s10`7nAS$*qgj=yqW)vutG>c?r-px=FDO3i6+ZoDt zFjVbes23{R9LOij$jCK$gP`c-7Jg?v(kz&4CUk1@et}@dlF1>$s^TT=45I7|+6;{B z4DtUN_!wB(8MxUQN+wSbmh=G0K_z$@SRfK$<?&!q_Wulw3``JVkU%QK5e5bZCWfO7 zj0}eujxjJX>}FtK(q;g;G=fA|ZZ;F*WM(Xx>>w(~STZ?YRFbh|a;2!OL<u{?0Y-KP bQILJ{{}}`r*dX>#UMDKWShD$~s1_pt6atLm diff --git a/WEB-INF/classes/dao/Utilisateur.class b/WEB-INF/classes/dao/Utilisateur.class index 676b01c2eedc15fa3fb762645030bf4f33c4a807..0c1a37ae55d3f5140bbf1bb8ce204d519e6f4a67 100644 GIT binary patch delta 1054 zcmZ3%HI<+1)W2Q(7#J9A8Js6_y{+eBkYJExXOQAykY<o!WDv+oEKAhSNz6;v4=yRn z%u8ov;K)cU&T!68No8bU*3k6iVqjvB<6)3zP+(->NKY+s&PgmTW@Hf7(DXs*1q)h( z%vR!IP-akJWME4zEKSTQW@Hf6KvL(=os^ZDTw<*m#mHbealh(hdB#{i-r$nN<ZR!> zf{?_doYcuxj7@xITny$67VHd`JPe`?R+G7yjxgFxKF_4VV$aB+Iys+7e6lYS9~(P^ zBO`+xm}|>y%+1BX$iT{=%D~8=Ho2Nvl~H~2LS|WZ4F*lH$WdnbdUXZ{1~vvp1_lOx z21W)ghztV*gDe9hSd>+33j_NG1_lO3282>!21Za=fec|_VA#yS#K6SBz~IATBOouG z0n%`sft`6d0~d(7jX^vCCeDix=Y@#ZLo^5=Bm}?`(rXwP7?{9TiZQS<Ffd3mFfm9m zNHIt=7%|8&crnN_XfrS{STeBvXAopyVrSrBWME|c&%g#{Gchs-;N>zff+B^Xo{>R~ zfq{{ofr){cfq|h>OM4juE6W<~;|#3KYqYj8$ZBt6kX;JmXdhtU@CAA3I0KK)76$fX z45G|yKztBq8-wC3kRq)u47?C|UYI<u&K3q<BzXadyZ}VLehY(u&K3p%m;x4rzvCFh z85kIp7+4vU8Q2+A7`Pc!8F(4g7$g|f8Kf9A7~~l=8PpiG7<3u58T1)+7;G7I8SEMK z7~B~28GIQG82lLw8DbfX7~&a>8PXU`7;+g*8S)v-7-|{J8R{7<z~Lw0%D~Ca%JYXo zgq?wd9|RZ}8Fa8F0$%h)V8g)3pbJqt*`GxWDJ3~DFf!;d=tGl-5;S?RX=!g|VBZK& zN}ycCz~I8b%HYbt$Y6k7JukX?4+d5SPX<N?Lv-~n3}6cc&^7olurl~EFf$l|6O=K7 g2?GNI2LmI6DFY*eHG?e!0|O|N*fBUTI59{902K+GD*ylh delta 389 zcmbQrzk-YF)W2Q(7#J9A8B8W}y`5ag*g9F5sew<Oi$Q}ylbu0}he4D<d-6i2BaFI} z)0j0F4JP+9YcU#4-o@<8&B4IPz{()bz{nsmS%^iIQF5{ci!8eogEUwqhDBafl7WGN zje(JYfq|cakwFG3Gl4}6Nk*7~kwF$JGm%ZK9-#+hvK&N)fq_Amfe~yHtJW3<fej1{ z42%p2r64Qi85BSkGcYhHF)%SOfvncj-patf5w4aCEGo~y3RbBICMD3+=QHr4Yfxrj zWl&*YWKhDYfk6OWy*dLcg9ZaLgE9jH0~3P^gDL|911PN27#JCJ81xtz7`PZ18T1(p I8H^bu0ZykSnE(I) diff --git a/WEB-INF/src/dao/Authent.java b/WEB-INF/src/dao/Authent.java new file mode 100644 index 0000000..2ab890e --- /dev/null +++ b/WEB-INF/src/dao/Authent.java @@ -0,0 +1,84 @@ +package dao; +import java.io.*; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; + +import jakarta.servlet.*; +import jakarta.servlet.http.*; +import jakarta.servlet.annotation.WebServlet; + +@WebServlet("/Authent") +public class Authent extends HttpServlet { + public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { + String loginSession = req.getParameter("email"); + String mdpSession = req.getParameter("pwd"); + + try (Connection con = getCon(); Statement stmt = con.createStatement()) { + String action = req.getParameter("action"); + if(action.equals("login")){ + String sql = "SELECT count(*) FROM Utilisateur WHERE email = '"+ loginSession +"' AND pwd = MD5('"+mdpSession+"');"; + System.err.println(sql); + ResultSet rs = stmt.executeQuery(sql); + res.setContentType("text/html;charset=UTF-8"); + PrintWriter out = res.getWriter(); + out.println("<head><title>Autent</title>"); + out.println("<META content=\"charset=UTF-8\"></head><body>"); + if(rs.next() && rs.getInt(1) == 1){ + HttpSession session = req.getSession(); + out.println("<p>Connecté</p>"); + session.setAttribute("token", loginSession); + res.sendRedirect("accueil.jsp"); + + }else{ + res.sendRedirect("login.html"); + } + out.println("</body>"); + con.close(); + }else if(action.equals("creer")){ + String sql = "INSERT INTO Utilisateur(pseudo, email, pwd) VALUES('"+ + req.getParameter("pseudo")+"',"+ + "'"+req.getParameter("email")+"',"+ + "MD5('"+req.getParameter("pwd")+"')"+ + ");"; + System.err.println(sql); + try{ + stmt.executeUpdate(sql); + con.close(); + res.sendRedirect("login.html"); + }catch (SQLException e){ + con.close(); + res.sendRedirect("login.html"); + } + } + } catch (SQLException e) { + System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); + e.printStackTrace(); + } + } + + public Connection getCon() { + + try { + + String driver = "org.postgresql.Driver"; + String url = "jdbc:postgresql://psqlserv/but2"; + String nom = "alexandredehaineetu"; + String mdp = "moi"; + + Class.forName(driver); + Connection connection = DriverManager.getConnection(url, nom, mdp); + return connection; + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + return null; + + } +} \ No newline at end of file diff --git a/WEB-INF/src/dao/Conversation.java b/WEB-INF/src/dao/Conversation.java index 8afd07e..779bc79 100644 --- a/WEB-INF/src/dao/Conversation.java +++ b/WEB-INF/src/dao/Conversation.java @@ -7,8 +7,9 @@ public class Conversation { private LocalDate dateCrea; private String nomConv; private Utilisateur createur; + private String pwd; - public Conversation(int idConv, String nomConv, Utilisateur createur, LocalDate dateCrea) { + public Conversation(int idConv, String nomConv, Utilisateur createur, LocalDate dateCrea, String pwd) { this.idConv = idConv; this.dateCrea = dateCrea; this.nomConv = nomConv; @@ -29,5 +30,55 @@ public class Conversation { public void setNomConv(String nomConv) { this.nomConv = nomConv; } + @Override + public String toString() { + return "Conversation [idConv=" + idConv + ", dateCrea=" + dateCrea + ", nomConv=" + nomConv + ", createur=" + + createur + ", pwd=" + pwd + "]"; + } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + idConv; + result = prime * result + ((dateCrea == null) ? 0 : dateCrea.hashCode()); + result = prime * result + ((nomConv == null) ? 0 : nomConv.hashCode()); + result = prime * result + ((createur == null) ? 0 : createur.hashCode()); + result = prime * result + ((pwd == null) ? 0 : pwd.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Conversation other = (Conversation) obj; + if (idConv != other.idConv) + return false; + if (dateCrea == null) { + if (other.dateCrea != null) + return false; + } else if (!dateCrea.equals(other.dateCrea)) + return false; + if (nomConv == null) { + if (other.nomConv != null) + return false; + } else if (!nomConv.equals(other.nomConv)) + return false; + if (createur == null) { + if (other.createur != null) + return false; + } else if (!createur.equals(other.createur)) + return false; + if (pwd == null) { + if (other.pwd != null) + return false; + } else if (!pwd.equals(other.pwd)) + return false; + return true; + } + } diff --git a/WEB-INF/src/dao/ConversationDao.java b/WEB-INF/src/dao/ConversationDao.java index d62cbee..9f61d27 100644 --- a/WEB-INF/src/dao/ConversationDao.java +++ b/WEB-INF/src/dao/ConversationDao.java @@ -7,6 +7,7 @@ public interface ConversationDao { List<Message> findAllMessages(int idConv); List<Utilisateur> findAllUtilisateurs(int idConv); List<Conversation> findByUser(String email); - boolean createConversation(String nomConv, Utilisateur createur); + boolean createConversation(String nomConv, Utilisateur createur, String pwd); boolean deleteConversation(int idConv); + boolean goodPwd(int idConv, String pwd); } diff --git a/WEB-INF/src/dao/ConversationJdbcDao.java b/WEB-INF/src/dao/ConversationJdbcDao.java index 2e96f1a..d3897c2 100644 --- a/WEB-INF/src/dao/ConversationJdbcDao.java +++ b/WEB-INF/src/dao/ConversationJdbcDao.java @@ -19,15 +19,16 @@ public class ConversationJdbcDao implements ConversationDao{ System.err.println(sql); ResultSet rs = stmt.executeQuery(sql); rs.next(); - Conversation conversation = new Conversation(rs.getInt(1), rs.getString(2), jdbcUser.findByEmail(rs.getString(3)), rs.getDate(4).toLocalDate()); + Conversation conversation = new Conversation(rs.getInt(1), rs.getString(2), jdbcUser.findByEmail(rs.getString(3)), rs.getDate(4).toLocalDate(), rs.getString(5)); rs.close(); con.close(); + return conversation; }catch (SQLException e) { System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); e.printStackTrace(); } - return new Conversation(0, "err", new Utilisateur("err","err" , "err"),LocalDate.now()); + return new Conversation(0, "err", new Utilisateur("err","err" , "err"),LocalDate.now(), "err"); } @Override @@ -93,9 +94,9 @@ public class ConversationJdbcDao implements ConversationDao{ } @Override - public boolean createConversation(String nomConv, Utilisateur createur) { + public boolean createConversation(String nomConv, Utilisateur createur, String pwd) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { - String sql = "INSERT INTO Conversations(nomConv, createur) VALUES('"+nomConv+"', '"+createur.getEmail()+"');"; + String sql = "INSERT INTO Conversations(nomConv, createur, pwd) VALUES('"+nomConv+"', '"+createur.getEmail()+"', MD5('"+pwd+"'));"; System.err.println(sql); ResultSet rs = stmt.executeQuery(sql); rs.next(); @@ -145,5 +146,22 @@ public class ConversationJdbcDao implements ConversationDao{ return null; } + + @Override + public boolean goodPwd(int idConv, String pwd) { + try (Connection con = getCon(); Statement stmt = con.createStatement()) { + String sql = "SELECT * FROM Conversations WHERE idConv = "+ idConv +" AND pwd = MD5('"+pwd+"');"; + System.err.println(sql); + ResultSet rs = stmt.executeQuery(sql); + rs.next(); + rs.close(); + con.close(); + return true; + }catch (SQLException e) { + System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); + e.printStackTrace(); + } + return false; + } } diff --git a/WEB-INF/src/dao/Message.java b/WEB-INF/src/dao/Message.java index d3f2676..269fb61 100644 --- a/WEB-INF/src/dao/Message.java +++ b/WEB-INF/src/dao/Message.java @@ -20,7 +20,7 @@ public class Message { } @Override public String toString(){ - return "Email : " + utilisateur + " Date : " + jour + " Heure : " + heure + " Message : " + message; + return "<span style=\"font-style: italic;\">"+heure+"</span> " + utilisateur.getPseudo() + " : " + message; } public int getIdMessage() { diff --git a/WEB-INF/src/dao/Utilisateur.java b/WEB-INF/src/dao/Utilisateur.java index 72d4e5e..2894834 100644 --- a/WEB-INF/src/dao/Utilisateur.java +++ b/WEB-INF/src/dao/Utilisateur.java @@ -19,6 +19,43 @@ public class Utilisateur { return pseudo; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((pseudo == null) ? 0 : pseudo.hashCode()); + result = prime * result + ((email == null) ? 0 : email.hashCode()); + result = prime * result + ((pwd == null) ? 0 : pwd.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Utilisateur other = (Utilisateur) obj; + if (pseudo == null) { + if (other.pseudo != null) + return false; + } else if (!pseudo.equals(other.pseudo)) + return false; + if (email == null) { + if (other.email != null) + return false; + } else if (!email.equals(other.email)) + return false; + if (pwd == null) { + if (other.pwd != null) + return false; + } else if (!pwd.equals(other.pwd)) + return false; + return true; + } + public String getEmail() { return email; } diff --git a/accueil.jsp b/accueil.jsp index dd9cdb3..8729b9c 100644 --- a/accueil.jsp +++ b/accueil.jsp @@ -1,65 +1,123 @@ <%@ page pageEncoding="UTF-8" %> <%@ page import="dao.*" %> <%@ page import="java.util.List" %> +<%@ page import="java.sql.*" %> <%@ page import="jakarta.servlet.*" %> <!DOCTYPE html> <html> <head> <title> Accueil </title> - <%-- <% response.setIntHeader("Refresh", 5); %> --%> + <% response.setIntHeader("Refresh", 5); %> </head> <body> <% - UtilisateurJdbcDao jdbcUser = new UtilisateurJdbcDao(); - Utilisateur utilisateur= jdbcUser.findByEmail("alexandre.dehaine.etu@univ-lille.fr"); - out.println(utilisateur); - - ConversationJdbcDao jdbcConv = new ConversationJdbcDao(); - List<Conversation> conv = jdbcConv.findByUser(utilisateur.getEmail()); + String UserEmail = (String) session.getAttribute("token"); + if (UserEmail == null || UserEmail.isEmpty() || UserEmail == "err") { + out.println("null"); + response.sendRedirect("login.html"); + } + UtilisateurJdbcDao jdbcUser = new UtilisateurJdbcDao(); + Utilisateur utilisateur = jdbcUser.findByEmail(UserEmail); + out.println(utilisateur); + ConversationJdbcDao jdbcConv = new ConversationJdbcDao(); + List<Conversation> conv = jdbcConv.findByUser(utilisateur.getEmail()); + String stringConv = request.getParameter("idConv"); + int selectedConvId; + try { + selectedConvId = Integer.parseInt(stringConv); + } catch (NumberFormatException e) { + selectedConvId = 0; + } + MessageJdbcDao jdbcMessage = new MessageJdbcDao(); + if(request.getParameter("Message") != null && selectedConvId != 0){ + if(request.getParameter("pwd") == null){ + jdbcMessage.createMessage(utilisateur, request.getParameter("Message"), selectedConvId); + response.sendRedirect("http://localhost:8080/sae-r4.01/accueil.jsp?idConv=" + selectedConvId); + }else if(jdbcConv.goodPwd(selectedConvId, request.getParameter("pwd"))){ + jdbcMessage.createMessage(utilisateur, request.getParameter("Message"), selectedConvId); + response.sendRedirect("http://localhost:8080/sae-r4.01/accueil.jsp?idConv=" + selectedConvId); + } + } + if(request.getParameter("param") == "create"){ + jdbcConv.createConversation(request.getParameter("nomConv") ,utilisateur, request.getParameter("pwd")); + jdbcMessage.createMessage(utilisateur, request.getParameter("Message"), selectedConvId); + response.sendRedirect("http://localhost:8080/sae-r4.01/accueil.jsp?idConv=" + selectedConvId); + } + %> - %> - <br> - <style> + <br> + <style> table, th, td { - border: 1px solid black; + border: 1px solid black; } - </style> - <table> - <tr> - <th>idConv</th> - <th>nomConv</th> - <th>createur</th> - <th>dateCrea</th> - </tr> - <% for (int i = 0; i < conv.size(); i++){ + </style> + <br> + <table> + <tr> + <th>Identifiant</th> + <th>Nom</th> + <th>Createur</th> + <th>Date de création</th> + </tr> + <% + if(conv.size()==0){ + out.println("<tr> <td colspan=\"4\">Aucune conversation rejointe</td></tr>"); + }else{ + for (int i = 0; i < conv.size(); i++) { out.println("<tr>"); out.println("<td>" + conv.get(i).getIdConv() + "</td>"); - out.println("<td>" + conv.get(i).getNomConv() + "</td>"); - out.println("<td>" + conv.get(i).getCreateur() + "</td>"); + out.println("<td> <a href=http://localhost:8080/sae-r4.01/accueil.jsp?idConv="+conv.get(i).getIdConv()+">"+conv.get(i).getNomConv() + "</a></td>"); + out.println("<td>" + conv.get(i).getCreateur().getPseudo() + "</td>"); out.println("<td>" + conv.get(i).getDateCrea() + "</td>"); out.println("</tr>"); } - - String stringConv = request.getParameter("idConv"); - int selectedConvId; - try{ - selectedConvId = Integer.parseInt(stringConv); - } catch (NumberFormatException e){ - selectedConvId = 0; - } - out.println(selectedConvId); + } + %> + </table> - List<Message> selectedConv = jdbcConv.findAllMessages(selectedConvId); - for(int i =0; i < selectedConv.size();i++){ - out.println(selectedConv.get(i) + "<br>"); - } + <% + if (selectedConvId > 0 && conv.contains(jdbcConv.findById(selectedConvId))) { + List<Message> selectedConv = jdbcConv.findAllMessages(selectedConvId); + out.println("<h3>Messages de la conversation :</h3>"); + for (int i = 0; i < selectedConv.size(); i++) { + out.println(selectedConv.get(i) + "<br>"); + } + out.println("<form action='accueil.jsp' method='POST'>"); + out.println("<label for=\"Message\">Message:</label>"); + out.println("<input type=\"text\" id=\"Message\" name=\"Message\" onfocus=\"this.select()\">"); + out.println("<button type=\"submit\" name=\"idConv\" value=\""+stringConv+"\" class=\"btn btn-primary\">Envoyer</button>"); + out.println("</form>"); + } else { + out.println("<p>Aucune conversation sélectionnée.</p>"); + } + %> + <h3>Rejoindre une conversation :</h3> + <% + out.println("<form action='accueil.jsp' method='POST'>"); + out.println("<label for=\"idConv,\">Identifiant de la conversation:</label>"); + out.println("<input type=\"text\" id=\"idConv\" name=\"idConv\">"); + out.println("<label for=\"pwd\">Mot de passe:</label>"); + out.println("<input type=\"text\" id=\"pwd\" name=\"pwd\">"); + out.println("<label for=\"Message\">Message:</label>"); + out.println("<input type=\"text\" id=\"Message\" name=\"Message\">"); + out.println("<button type=\"submit\" name=\"param\" value = \"join\" class=\"btn btn-primary\">Rejoindre</button>"); + out.println("</form>"); + %> - %> - </table> - + <h3>Créer une conversation :</h3> + <% + out.println("<label for=\"nomConv\">Nom de la conversation:</label>"); + out.println("<input type=\"text\" id=\"nomConv\" name=\"nomConv\">"); + out.println("<label for=\"pwd\">Mot de passe:</label>"); + out.println("<input type=\"text\" id=\"pwd\" name=\"pwd\">"); + out.println("<label for=\"Message\">Message:</label>"); + out.println("<input type=\"text\" id=\"Message\" name=\"Message\">"); + out.println("<button type=\"submit\" name=\"param\" value = \"create\" class=\"btn btn-primary\">Créer</button>"); + out.println("</form>"); + %> </body> diff --git a/login.html b/login.html new file mode 100644 index 0000000..c4d1f97 --- /dev/null +++ b/login.html @@ -0,0 +1,33 @@ +<!doctype html> +<html lang="fr"> + +<head> + <meta charset="utf-8"> + <title>Log In</title> +</head> + +<BODY> + <div> + <form method='get' action='Authent'> + <label for="email">Email:</label> + <input type="text" id="email" name="email"> + <br> + <label for="pwd">Mot de passe:</label> + <input type="password" id="pwd" name="pwd"> + <button type="submit" name="action" value="login">Se connecter</button> + </form> + <br><br><br> + <form method='get' action='Authent'> + <label for="pseudo">Pseudo :</label> + <input type="text" id="pseudo" name="pseudo"> + <br> + <label for="pwd">Mot de passe :</label> + <input type="password" id="pwd" name="pwd"> + <br> + <label for="email">Email :</label> + <input type="text" id="email" name="email"> + <br> + <button type="submit" name="action" value="creer">Créer le compte</button> + </form> +</BODY> +</HTML> \ No newline at end of file diff --git a/util.txt b/util.txt index 40168bc..993006c 100644 --- a/util.txt +++ b/util.txt @@ -1,4 +1,4 @@ -Url d'appel : http://localhost:8080/sae-r4.01/monobjet.jsp +Url d'appel : http://localhost:8080/sae-r4.01/accueil.jsp Pour compiler : dans rep src : -- GitLab