From 12bc494f72753c57be0fdac86fd46734181f33a0 Mon Sep 17 00:00:00 2001 From: Robbie Gemmell Date: Thu, 11 Jun 2020 17:49:39 +0100 Subject: [PATCH] ARTEMIS-2109: use default 1.8 compiler source/target config as with other examples, newest JDKs no longer target 1.6. Fix SSL example. Allows building on JDK 14+. --- examples/features/sub-modules/tomcat/pom.xml | 12 +----------- .../stomp/stomp-dual-authentication/readme.md | 4 ++-- .../StompDualAuthenticationExample.java | 4 ---- .../activemq/server0/client-side-keystore.jks | Bin 1303 -> 2597 bytes .../server0/client-side-truststore.jks | Bin 963 -> 1170 bytes .../activemq/server0/server-side-keystore.jks | Bin 2253 -> 2565 bytes .../server0/server-side-truststore.jks | Bin 1732 -> 1202 bytes 7 files changed, 3 insertions(+), 17 deletions(-) diff --git a/examples/features/sub-modules/tomcat/pom.xml b/examples/features/sub-modules/tomcat/pom.xml index cc642cf757..4aaab0ffb8 100644 --- a/examples/features/sub-modules/tomcat/pom.xml +++ b/examples/features/sub-modules/tomcat/pom.xml @@ -35,7 +35,6 @@ under the License. ${project.basedir}/../../../.. UTF-8 ${project.baseUri} - 1.6 3.0-alpha-1 @@ -76,15 +75,6 @@ under the License. - - org.apache.maven.plugins - maven-compiler-plugin - - ${java.version} - ${java.version} - - - org.apache.tomcat.maven tomcat7-maven-plugin @@ -122,4 +112,4 @@ under the License. - \ No newline at end of file + diff --git a/examples/protocols/stomp/stomp-dual-authentication/readme.md b/examples/protocols/stomp/stomp-dual-authentication/readme.md index 0da536a373..d8b95b8aa0 100644 --- a/examples/protocols/stomp/stomp-dual-authentication/readme.md +++ b/examples/protocols/stomp/stomp-dual-authentication/readme.md @@ -6,9 +6,9 @@ This example shows you how to configure 2-way SSL along with 2 different authent The various keystore files are generated using the following commands: -* `keytool -genkey -keystore server-side-keystore.jks -storepass secureexample -keypass secureexample -dname "CN=ActiveMQ Artemis Server, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -keyalg RSA` +* `keytool -genkey -keystore server-side-keystore.jks -storepass secureexample -keypass secureexample -dname "CN=localhost, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -keyalg RSA` * `keytool -export -keystore server-side-keystore.jks -file server-side-cert.cer -storepass secureexample` * `keytool -import -keystore client-side-truststore.jks -file server-side-cert.cer -storepass secureexample -keypass secureexample -noprompt` * `keytool -genkey -keystore client-side-keystore.jks -storepass secureexample -keypass secureexample -dname "CN=ActiveMQ Artemis Client, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -keyalg RSA` * `keytool -export -keystore client-side-keystore.jks -file client-side-cert.cer -storepass secureexample` -* `keytool -import -keystore server-side-truststore.jks -file client-side-cert.cer -storepass secureexample -keypass secureexample -noprompt` \ No newline at end of file +* `keytool -import -keystore server-side-truststore.jks -file client-side-cert.cer -storepass secureexample -keypass secureexample -noprompt` diff --git a/examples/protocols/stomp/stomp-dual-authentication/src/main/java/org/apache/activemq/artemis/jms/example/StompDualAuthenticationExample.java b/examples/protocols/stomp/stomp-dual-authentication/src/main/java/org/apache/activemq/artemis/jms/example/StompDualAuthenticationExample.java index dd5259d17b..688c03ab3f 100644 --- a/examples/protocols/stomp/stomp-dual-authentication/src/main/java/org/apache/activemq/artemis/jms/example/StompDualAuthenticationExample.java +++ b/examples/protocols/stomp/stomp-dual-authentication/src/main/java/org/apache/activemq/artemis/jms/example/StompDualAuthenticationExample.java @@ -29,9 +29,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.nio.charset.StandardCharsets; -import java.security.Security; - -import com.sun.net.ssl.internal.ssl.Provider; /** * An example where a client will send a Stomp message on a TCP socket @@ -45,7 +42,6 @@ public class StompDualAuthenticationExample { Connection connection = null; InitialContext initialContext = null; - Security.addProvider(new Provider()); try { // set up SSL keystores for Stomp connection diff --git a/examples/protocols/stomp/stomp-dual-authentication/src/main/resources/activemq/server0/client-side-keystore.jks b/examples/protocols/stomp/stomp-dual-authentication/src/main/resources/activemq/server0/client-side-keystore.jks index cb65a44ddc868383e07e700b941d9ac0709daf58..88ed01f015bbc8029c4162a4b0ff988a94c993bb 100644 GIT binary patch literal 2597 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 literal 1303 zcmezO_TO6u1_mY|W&~r_+{*0KN+2&_z1sy2Al+}!#Mo`X$Ht}2#>m2`#U#kc$jZRd z#903PyT#h@IPs9J5x3RWJvkMao!|^cgJXbP~&rKw3WXmtk#sink!k~r2bsZtnRxq zlbF1@GPb>#=puS4LgYpNeOINWEf3}{X3x7k*|KgH_o=I|w?4db!fN`RJMwi5k39}L zX6)6Hd?{eN?WvX9|D@@Pzl$_joEDm1opopd`@0I0UlUoZmoWX`CPm<%dVT& z+ld{q+Uii6bVKsq9n({h74y8Z&i*{ZR5#Cz&3*q&f5zM?=f$IE)M%=S?OLT7;`aFU z6yJFtr+>dE)9h??n296K=J@#)UUpIYk4348gtzZud3pYF)ayA9i{z40({1P1?$g#6 z?PT|!ysAIUXz(iwzYFw_C*ONBIp z?t9JAd-LS^H^J>eHt$^+4$Ij$YztJ&bd7aT3j7^u+Z*v~|Ix3z48EP79h!5!(Yis_ zB>z)d!uIT$0ZW(6pZ|iTT0rTL|L&F7|7|}e{lhx^`LPwtMEO~MH-Ec)RPHd7X^3!? z*hHgmrJvVnCtlZj|4E5ia_&VB#^X$)4AT<=`bCww&up5svuV-m7VZxbGG9SX`~Gl2 z>$Tao_fGFw9b>j5d}rm9^}Byry=wXy?!#@%-jp5~8Q!<+N~Hg@LUw`1hAp0Ag~~5{ zG{l6rpXW5{IkD`ajaXH8NKLQCgT?FQv^Os+otU?{p8J=gY0}5vNmYz0)@PP{+_xfd zLg$L+`wyd@&S#s{ofg+n9jcnb=wtowyr&j(V+#XQV?)s~+5CQI;iS;)p4oc!kN0cY zZd<*dUtrpOX#?iMImV0LU7d1rPO%8oXYWFo~$HDUtbi!Q0ufZ=QC6{toV=3z~tVvYLw}L)s#Bx<2`Yw2hW8Bt2LUiC1_~;MNQU$-fpOUkKMspPcQ_A!L?;r zn8E=Ag&1fo;rys&7Z2(BWMfse=ZtBHTgyn;Uo_5iqmX3}3WW_*eZ2fbuD zZLfw^>)q?u{2#v2oF=v6dv3$|>l2-_(3s_aC@`(<`lHPMS#`T*q zS~V6pky>1ghzLbM6l$ABv-9MJxkL=c5gw0GOgpgAT$aza67E`VM>=$myUp3iGAa7PJt!wQvYAn#_1^EBVlY?$2j# zr}GJ|uAahRkuUIJRGlrx8&KOd^GTgc2m7d!S9kW>d{pel@*Bsk?=YJ~ItG3`MMaK& zF>#!x7xK`Wi;JC92H1oBx8l)K=^!Z!r9n+9fWK?jk2h}R$+eP;k0&qW8LJf0Y2w{n z*2MZ*CzO^Br?V2epfgBtWR*rtgeVXS)%pT;+$?VYS|2E4d-(_13q zCK65tg`HW87kF9{$exQwC$#W`dh5O3%~cV57yOi0ic?0Lq@L^ug3B9e%C!>o`M}P4 z*Xm!V{ZpTQDG#_}6~~K9Y$I3faPjL+t-+4r#w7VO3|v^7*Rp`lffiP>6aS-WSXLDP zY>70F_01F?6wfbP@>uKa+!3GQB1ltuk7}OwhE5I?3jzy`vC^jIihN*LiHLJRuc-`K zvob^FcD_F#+SpJ!+UPdnBPe{LFr(-B7@q>SJ93*U4!yyX+2{I@fzrnMt-)1HC%fST z_L?}JBz*I%W3SpL0pm6pR+2_HrM-~gRd~z0nu$*` zehq#W3Z=aAv8G@|w>XlJl6Ah0=P*7nAutIB1uG5%0vZJX1QbCvsq3s^{>&V#mr1&i kPkN;s+^GZ<`bdx@7sgC~_^AtInC^A*_N0ut0s{etpno$assI20 literal 963 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 NTVMhKfr69ie*s^NqD24z literal 2253 zcmc(g`8yP98^>qH7<=}8XfS0d%rHhsQI=tB#TX zMG0f)HfzKH?CB_ZS2S2C9LCfj~|Gm<*opF;lu|jT=7V;`C@?5&_}u zYK=(7(luT3FOLbZsgr`m>P>~kHCuBJ5j#hWA1-h*!x>Z9lT29*-_x*b?~at=i?fp) zdi=L{piIMX_dfb8fx%UP!)to-c^7jIL(|`m$|~fuH}w{+JG$1#^uQ_sl)KwF;tK=F z67}Pu!dlne)Lxwr?S&;J^6(;086MfH;*yxgO%EKGc(oG=KN@a0hY3<=2#q#;%|+jM zT$>2t!8?LJ#sw;^tr4&2owN49PNbNVikLBXroaMZ?`|LuhOmRq`h%$4yB~gR&HyM|J5@jD9Iqz+ib3WJy?uoe}p!z zK}pUT$oO{YTeKz1JT6HkfiMM?sW6HZuw`Kv>!XfS%hb5QV{&?ekEB${cR|{Wimhjo zP5JcGUVB{&@5>oyGBQ+(IR_0eXA{bXHFHK<@0Ac=J70@P7=5AorY3jV8J@lJvsT@$ zY})?9(JV}nJGr~Go3`I-+M8^3|G-_qmJ>naK+kP_#Ig#!*9Six%p=5xpq-qWyhnl=x>C3 zJ*W_D%dmN*xyF@dU)|;?{ZCzUC70li)Kl`Ww0z7TE2KN105;7;)?AH7R4+%v6b&Qc zwb#~4pWQd5z>n4kaQc48hLX~J_a8(mjV&EotXhz`p6y>_L=0W*o8_w>ptWN8m`qBc z*snd~<^I-?cnbGbK?8KSgSq%tO4kArkHjagTPx)F%t$ zjF$F7gxd@R866u~IZHSPW3XjkuX=1Zs=zGkt;$=VYZ4p#W8{LFXgc~#ON?Qo2+Q-! zd<{o#6mBGyY^2^+_Aan_sOVngRsRgQsOwXSJm64T|MSB|Iw%c83?Fs*9PbH>QhUzRCYt{`vB24%T$dmVlOl}HEjiNqS!fMQh#2R9@PAd%_ zlYvg1r%5)6L3YbwA@_7kzf{ZznwTZ0x>I=tv@OJ)eaFwR&IS)JZbVs#NY@TYbl0bR zw9Sh~Rao7QHq4dNTwO&c(qV8dPfztDo_-}3VKp~hmjJoBZxuEFSd2~@ItV=gfFl7x z=7>d*L4L&?ARq_?hE=;>LkK{4)Dkg?+X6r!A1442jO0h~LO5_>h$x4#^|`-@`ya&h z2MHqte|PeVavNU`@eB1junQgR+XIPDl*^bH;uYjaLc$R8zbhP~l7E?Ce_p}ty@;V+ zM1;Jg08$5u(9%O7wRCiJT@Da^aMb-1|BWY+fr@_*=HTDpAOi&f2r`ftLx0(zCF<)ThrF8y$4GD=myAP(LFALf4@uOiS za@rW3qYt{G&mM@(93uo{yl1SXVn#Y`qjrg*9B zMar)wGhVs;wmD}_u;I;7_c!PSd4EkbvL$~fNmO&WTPNwaM>=#Dt>WbTIpSe?KR{ik+zDz#s)blTpsbi@+jOW IlooIIKQG79H~;_u diff --git a/examples/protocols/stomp/stomp-dual-authentication/src/main/resources/activemq/server0/server-side-truststore.jks b/examples/protocols/stomp/stomp-dual-authentication/src/main/resources/activemq/server0/server-side-truststore.jks index 0b7e224163358aef1f20d04f5c6720f98b97679a..edb5e59aee1d03eea9b9aeb5a08a71fdf1e64d1a 100644 GIT binary patch literal 1202 zcmV;j1Wo%ef&{Jt0Ru3C1ZM^bDuzgg_YDCD0ic2eSOkIuR4{@BP%wf7Oa=)mhDe6@ z4FLxRpn?QFFoFa*0s#Opf&?-K2`Yw2hW8Bt2LUiC1_~;MNQU%0s{cUP=JC1_;6^@#6c5ia37P}@P0&Z5 z&p6o8jKZl2ognVZ^w$JS8<;Xmc9CGRUIu^@Sbkf6o(&kIM0%&|;0g{r_l0>cF}|KX zhS^ul3}=w3yy2?>6wB zvLxN1x7+VK+WpPxpJcY#H|$uY=B2<_AQhJ;nxea9KIK+6%qOc|Z2JT-B(#6GzWR2{ zQbR-AWC`=g}9b@+v9?S^kq;A#0IK(?nU%o6A zkj}%EsDV+ImM%!8mmzan-oX=W6Nm=9GP1!s&Ijhf>iOzBb&9KSv84PW=rPs?kKE9j zqi#+JZF{a!s-=WY}?QLKI?7h#KnSHRk7`mq??h=!98&iL+u^*RH4O z?vW}9qcAj$Z;EM|z913P%d>~^BNXbGtf8L!ee?<61`482$R#yDKnN{2!TYqp6DwLd3*mnKtr6(gj%`{H_E6)Q#b%! z^f~zIJ7WXX-?@LSQU5^-LEkztH3nSj$4;OCcv8rOSV@#>{+m$l|NFDi@z@!zy$!)s zB3i%!5m$~0<~zP?dbrvFbjxIM(aXNq3aS(8=R(sCRIYZe)9Vh3{C)$~`{At9nM?o7 z`HctZ*J(X5&}1Bvq4B<{>8N|XmGmTL=-Dc^DSF}=T-LdDxUFr7^h>KXt)kv@R8S|u zXz9>``70t;tv!tY=-q7sljXa5-P@bmOAnZ*^PuH-mBq=eQ9!%VtmlI}a3W%*OIxS9 z5OL4OextFV5}rb)E@^^87)sY6TiBnX)>?dW1{>3&NE8|FrdOT#1}<`Gxob(wdd z?JzztAutIB1uG5%0vZJX1QbUM=LQ@p_&C9K3f^sLh1x)4H|qoxMJW=XiJU{)I$*`P QcxWdpp@hbE0s{etpbq9YE&u=k literal 1732 zcmezO_TO6u1_mZLW=={>VPIek*!;DvkAXEp&(y$@fq_}Wpov+p`ni!fH z8AJiOW(I~v=1?x3T+zh1-Jpq42j+c7AV;35v610#eQ={}sgP#SeXlusZ=O8=Cb&Jw z=DiEUVLAJTZGmc;uCWeEfxjbddn11BKl*i-!MD@1LvyY-S~tj=+HZ6MH!u=sa<}1i)-ybe$y*AtS-swH7W6XAh z@2s4%e)lh{S4}^|eYkDeo6-X#!~1q!iS&O~$S%;>u*FlXQ2B+AhM4g7^PEOKCzd_5 z5v%GBsp-{tuy~!E_U2`!6Z00=bN^B_P5Ssdsftm>`plA#`&I-_=v>i!|6$bA`D~NA z)8ZPcLse54eXReT_tau;Y++z(Y%r=kbN_I)aQjBz7apnmULCHGthwoYIiq;Vm%RmV z?@n47b>?ra)6b>tSrY0=%WwEk-FIip&c&-Y+G@ zt&Qi`{8=yFqpKpTwk+J%ihWU}<mkT;M8rYl)K7BLo)MB_7#Mv^mDt4;Yl_xFC?=tt8y4N;Ocvp$1?4wHy=*^=l6 zw!k~;c?Q#?BJOs1TP)kkB*NsMsjZi_Qb6d)+Gd^R=1KCew@n1+Bi7u??9@t7E?Vy{ z@eh%UoPfE=4w#GnKy#6z#DORj>kJBE`G#7#NWnl3l8eM)Sxo_&!O*jm1u#RIo0!6~ zlo^ye5KbD+U*zVmqGPi8{m#Nkq1ipN_39t**RtKVdOyFwwENNq%!PA|7rnbW<>Z`V z5!OF#8z<$xSh<$n_rn~n4xMAQd-wMFMyjs4dd87s#twc1g?$D>+tw=_V_Ov;pnB)) zo5XCZu0#%(eRM%HFxSayE|v^wi`12K k_4O@1aE-GsYR(x({$u$93H;)JLJaM8R