From d8265f091083bd662fec5b4a65a46c28538f90a9 Mon Sep 17 00:00:00 2001 From: Linjie Zhang <ljzhang@gitlab.cn> Date: Wed, 30 Mar 2022 14:45:48 +0800 Subject: [PATCH] Add omniauth provider AliCloud Changelog: added --- Gemfile | 1 + Gemfile.lock | 3 +++ app/assets/images/auth_buttons/alicloud_64.png | Bin 0 -> 3538 bytes app/helpers/auth_helper.rb | 1 + config/gitlab.yml.example | 6 ++++++ lib/gitlab/auth/o_auth/provider.rb | 1 + .../profiles/accounts_controller_spec.rb | 2 +- spec/features/oauth_login_spec.rb | 2 +- 8 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 app/assets/images/auth_buttons/alicloud_64.png diff --git a/Gemfile b/Gemfile index 65816b9a8339..cc3d93e3db9d 100644 --- a/Gemfile +++ b/Gemfile @@ -41,6 +41,7 @@ gem 'omniauth-azure-activedirectory-v2', '~> 1.0' gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version gem 'omniauth-cas3', '~> 1.1.4' gem 'omniauth-dingtalk-oauth2', '~> 1.0' +gem 'omniauth-alicloud', '~> 1.0.1' gem 'omniauth-facebook', '~> 4.0.0' gem 'omniauth-github', '~> 1.4' gem 'omniauth-gitlab', '~> 1.0.2' diff --git a/Gemfile.lock b/Gemfile.lock index dae55ebb0fd3..e53370f4ad75 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -829,6 +829,8 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-alicloud (1.0.1) + omniauth-oauth2 (~> 1.7.1) omniauth-atlassian-oauth2 (0.2.0) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) @@ -1570,6 +1572,7 @@ DEPENDENCIES ohai (~> 16.10) oj (~> 3.10.6) omniauth (~> 1.8) + omniauth-alicloud (~> 1.0.1) omniauth-atlassian-oauth2 (~> 0.2.0) omniauth-auth0 (~> 2.0.0) omniauth-authentiq (~> 0.3.3) diff --git a/app/assets/images/auth_buttons/alicloud_64.png b/app/assets/images/auth_buttons/alicloud_64.png new file mode 100644 index 0000000000000000000000000000000000000000..bd67a199e130369663ecf94cac649707c5e2dfe1 GIT binary patch literal 3538 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS!$SkfJR9T^xl_H+M9WMyDr zP)PO&@?~JCQe$9fXklRZ#lXPO@PdJ%)PRBERRRNp)eHs(@q#(K0&N%=7}%1$-CY>| zgW!U_%O^81FtC?+`ns||W0quRFk1bf{67N&&oxgM$B>F!ZzHQqre2-;|Ly16?-QS} zecHiksN&?I^xj=yV{;>yk`}X-*z)Gh8+P3?(tBML=av0D@nw&<_35zHB{vJV1Uovu zer1r`%hlU8p<_>^qUXdt4J@DhPCVYX|NR`>`kL=*ig#4LM_r6u{eAnj>D9&WcRqh} z|NWcI=k0zoaH>pjU_v7PylhO$m9U9p+ik|dA-nI`<OQ?JAAI=c;K`8Ca7A?gMTG<> z=GPAY+0Pcdx8(BDW(xc@<8j4pf97v09jC50oSMFHGSiKoyj47n&(^d1Ml<n!WeRc< z$z||ip5nPcvs?YiQvWLlGA!9_-&e8p?PL7E@A<?nFMZifLsEr>8)qIAylio5y(9}8 zd+n5On`I|!Xs(z08+-8Mau<dM;az(hmON}!b2xMHw${lfb4*x0S02^r>3*`iWLnqr z@|pU199i|>N<TD;3(hJQmU-7Y-?yQ0)AEFrT??5Lmam>sEVjll?&q(!yXq6{YGj+v zD!AM*TNdbMbU;90O~Mji)tlG8%*pli)2*^P79KNG;N|tqH!uIBZ;0`{XD58*@MZf; zf-`3J@0r*1s@&M|nZoOHa+S{}YiY&oYFAJFf6S(ONv*<X#fnw;TC*SCdQsJ%>3-W$ z<HZ8z`~x1R|9JoU@}NH8^hKt#^_&4h3j(+GyqdzO!Li|8gW>bO+AY5(`aY4*C|&lv z`IFbNC-*NG2xyA?HN<2tU6u4ZZ*5)uv<8+&!&|4<6iO^PbbkT^xAc`IG6_*99piR< ztByMS@zg=z|D8|fxmnzC4ewDuwngPCukLfUvpy&H&F6bl<94MsU_tdRhn%L4cAial zF8{Lsr0|E2VZ!DGR|8{y?YLI4WGefvW2*cNGhI(V`0;A{$3v5Rr<y#UCSOq17`}<2 z*}>VizeYz)g+Yn+pkv3r&kngijeb2@8_%}v?gpjGY)*~M24(y&?6+~B{Mz1-`T5$4 z{`lXbrm}v@2QNf4MI@e3R2Ftpwo7R6Y~HloY3K6aNB`{pr~2Um|9s!fWR5P~XGO2= zH2V1hW3ss4{yE1T^823o!?)WezidyiRAHU?l+ospvBsZpP1!ZK71P&RwWfamYsqRO z{>D|?@g}P<_l5E-^QO=5uc`0-vei6iYxO(9GzK4z^Lh+w8eG2_n4374WG2|Mo;V>J zFtas%%I+5ycPjI(*Tw&~vpV1EvtEAN(emRe3=A`lpH`UVcVNa|9oOF_?{y{KM5yb} z)m^ym*~}+z{aPg(IxallpyE6)^QgSRf=R{+=l1^Hy{~q?{p5|!j*Hb4vjmpd%QQSb zvrzI%&{t8TzslFDXP87X3FJ5gX@z)IX)k?xwJ7SL<CF7x)4l(#IyQ6KZF#L~rWYAZ zX98lLFe*e?aC?gGZnz^ESFx*Jye8rI?Qg$oC;xns|J-~2^SFzbOZL9Wp0~DUdeGJd z>;XbYu1(sY=H1xo@GtIy!*Aww>ivID{rJ-S?BZh=QHMQ$gKu23{bG9d`t<aj=FB!* zUM=)!_R;?Ia;NK4rP^0=%C_nDQ|or0{5W;bf{&Bs9k*OP@S&=)QrdyF`;n5IqgRwl z!rP{gnUXSRMb}i#`mOO~b;Xy)aIJayc1Drc_H1{Mf3q{R%yg}z_tmcwIafP%@)?W; z?#*2ByJllptl8wLl8YJSnYJuSwmNyB!~bT~ZH6DSEaT#KedK&U>-cud`7v1qCuJ}A zPfuR(M`lZce9ZibUm`Y~jWYjoul`4Q#jcHlPx9ZUD~Bl7?^&x9aPLR(@qh7uB5FU~ zs!ci|#F)bO*6mRJ$z#hlI>_7&m7C0PGMJ%wLGZ*NiCb4V64W$ybDx<1y?cpizkU0z z?>mZb6+O}2E3H)h=f%HD#h1sd+wV!=Rp0peM(~Y_X9es3K0Dh#GrixheR=ZI6yc~H zyoSv)6~8XA`F!Z6wz~B#1)a4A&ei<9=e<Nh=A>F`Otj>Uoik0B%U-X0d{e*YPsWWq zsyA-Lb06>heyC>AlIby#qCw?R@9c9-J2<4K2n7nAS|Rt~YNHB=0OJy+##V<l3p6jE z7SDcVqPW06`tMQ!dCuogb_UE1z3}N-Q}A8KOF055g6wUdMK^FpPqEE^<HBL{EnMWc z;;Zh46LB0(O#&{4%cPt;>cl#3bx!RzocPts@%TUf`R(&&^54A7b%H_Wl>GEW9%+@E z3a!iq&l{(-B!6r(yuI4u*Sv^^jShz^{~gI?Rrr#5;Y(z~Tt?e(hs~K4WE*-THnVzc zmQ4?vH{<M<O&?b)FeJUd@%xo>LGGXJzY9LiT`M9LGU=>EyC8$GhVFTR_`lcEZr<CV zeeM3SgZ6Ta89%O`vOb>scGgyol3(9@7p;wIet22wpqkoy$%8H)&cU^F>pE`u^sfH@ zgQY__g;_gHA<^|#ftqCYgswT72N{+GDSI=`S6?@aLFuj3hP2=lG8`Kp%HJ}7ROp{} zV9p%rkX?t%x4zkv#q`2BoXKhZgq_^ijhUMsmH4SOh;H;_+!1r!!}8yLjspzF8H;+| zJq=dK25pO8X>xq0!`dU=Qy3y5&$GOJyyD|OK_&xdkK#i|b@D28-mUwuv4L#^+ar&8 zVzX~OPH74kO4%TKddbOv`KDiYaNVix4Y;sCL_(m@GAe}8#QM<IeGj$bm#8st?0%_N zaN6_c1m>;rX64+T#tQ!REE0eDl1y{*T@(^n`XyL4v@%TC6lTdgy<W1xgz2PF<|nJS z``$L?l(A&r`w_HLnz#MI?gEBq`j(MxZ26A@7<Ae)UC(W1S(K5e@~dzMZ-edBiZ4+@ z46JMp&$G>>L-TW=)bAHwv`fnE=J|tr#A9~;<yJgvzngpEx-6De|JZAa%qM*gbI|_% z(ELJBt?&~0B$Hsr1_8SzH`l+=&Jy79W1SP}Dwk!&!ovLUm3HfN2F9=QOFiPh_q$wt zWLdCePjge~@vGPNbF7p$Qwj-gbFAjt@<8Fzv-_Rrx&Iyh&-(OKgWZef|BpCTc0LbW zu{%|3(xhp>>g&!IU99`XxOewKO{HQpr4~)wNTJVyaUTsfyxn>FSFhA5=l{Po9-NBk z?g}r@p3BR}^_z2Y=}p0%9RhsfH)h^Ez3xlDtKUaQJ)O12%XKZjBpv*;tv&9)*zL6Y zJZI-ISKM+q{jPuhmy70!yY6iGI*0Y@KRNOL&vZ{&f4%*3)$Tmgt)_Q8-lm7Gm{-jD z;oGZS4>v1`Z4Bk-oZm4+GVS3fzqjAsuU9-AzjS&`-J+g2;W?Y7W=tvdF`M^?c~`X8 z0XC&Xm+mRu3<WFXm2S*m$d>#1Vr|}DtN7Fax46sYF_G*O=53!|@_Xg8wb`%M*S=NS zv7gW6=dKwifAhU(m=wG)?e3z7ANnGn=tbClJz8q6;s2gX>V<~TJiU$y;!LM*eRG@g zR<~a?f$fH&<P_WF?RMY$vP!PS8v1>iY;SCHU%Tz^wf6T<`?vq!elP5;h!d~6aY?24 znG{}+hr6ZE^1bvjpJ=*yX4<-{C7)N;SDEksbZXY09h={0w;NlsAB?yEC-KVej?yo^ zl*#M)Cor!5<ICi7jWxz(#)X9r0oV0bEx+XZJ>Ww9slvNb0so$wAG^r9Bcy%7aqd&m zDdDNn+cVqm-_fah<=L>1<65f*vkrq)px*NnjuY3;apYvbvgdZxhF=G(SFC^Cv3I}x zmR}P&PoCcE@621qT$a9aO;x&iRQ4v8=#4!K+my`P51T}a-hOzui&KcnsD9)5Ipwea zUMYQeUGsj8=_?kOyQ~_2tv)31@A$S?VC}6xvAN&QMn9Qixwg$#bPbD2d;Zf1hsf=d z6d0N+UueyiP!MIh8vg9GaQ=S=RqbHrquc^7EKK!&-rKxf;LHp@(_+_sIaZ%cO6Q!s zv~U5Z_FuV71H;Bh2gV638m<%8I9pyi(0V$m;BtI^;oAC7=HIsdXDF?SzVh*yPwUn* zD<9k|c5rvLzq<FoaNO4yo~8d@++X<eiP8`2Vu4RLJ!kniP1t%vZ~u{WhOUm5hs_qj zh0^!-rZv|*jE}!s-lxydabb7L;&~sh-Os;hE$!vGnQ>S03Jq@6^*fZ((l+RJKA0o& zNThu6nfd$U^<#c@y`Rb6|GGH5nMZz$YQ6M)hHsji85s`lJ>MXw>z;A^yM2kxpR}bv zUM!8NT$w7TCsTaULENCW(D2sl*_Icc?>}>VO47u6v-=j<bCkamnK<Xt>gk&u(!cJo zH1XziFK<6KdHu>|s?u>y%U90~TK;VFI}f-2N2~10SMaH1tT=L3D2QXlnj|6PX?#kH zKeQBoY%|-LZY8r@^2!IhFOQ;+%j6$AJmK*+-3hg?CsbXxXOaz743>Is@x+>4lIe`X zk<IHH!k;$<8?Rq+JbP>Pfs->Y*xlq`<KOqT!->U#yNz$}zfC*0K6|<(NFjieg<**v z>yf$K44HhTE;@{^4T4Ngb_aMIq<HM=S?-jk#e72QJb?QWe^x&F&v0Dgz*--#N_7SX z2GtVRh?11Vl2ohYqSVBaR0bmhBO_e{V_hTD5Cd~70|P4)BW(i%D+2?^$l68}4Y~O# anQ4`{H5jlQwPj#nVDNPHb6Mw<&;$V9^ob1s literal 0 HcmV?d00001 diff --git a/app/helpers/auth_helper.rb b/app/helpers/auth_helper.rb index ba6c0380edf4..6ac4a12bcd5c 100644 --- a/app/helpers/auth_helper.rb +++ b/app/helpers/auth_helper.rb @@ -2,6 +2,7 @@ module AuthHelper PROVIDERS_WITH_ICONS = %w( + alicloud atlassian_oauth2 auth0 authentiq diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 9ea6944de021..57106120fb2a 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -1035,6 +1035,9 @@ production: &base # arguments, followed by optional 'args' which can be either a hash or an array. # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html providers: + # - { name: 'alicloud', + # app_id: 'YOUR_APP_ID', + # app_secret: 'YOUR_APP_SECRET' } # See omniauth-cas3 for more configuration details # - { name: 'cas3', # label: 'cas3', @@ -1562,6 +1565,9 @@ test: external_providers: [] providers: + - { name: 'alicloud', + app_id: 'YOUR_APP_ID', + app_secret: 'YOUR_APP_SECRET' } - { name: 'cas3', label: 'cas3', args: { url: 'https://sso.example.com', diff --git a/lib/gitlab/auth/o_auth/provider.rb b/lib/gitlab/auth/o_auth/provider.rb index 41a8739b0b63..1a25ed10d81b 100644 --- a/lib/gitlab/auth/o_auth/provider.rb +++ b/lib/gitlab/auth/o_auth/provider.rb @@ -5,6 +5,7 @@ module Auth module OAuth class Provider LABELS = { + "alicloud" => "AliCloud", "dingtalk" => "DingTalk", "github" => "GitHub", "gitlab" => "GitLab.com", diff --git a/spec/controllers/profiles/accounts_controller_spec.rb b/spec/controllers/profiles/accounts_controller_spec.rb index 011528016ce5..1b4b67eeaff6 100644 --- a/spec/controllers/profiles/accounts_controller_spec.rb +++ b/spec/controllers/profiles/accounts_controller_spec.rb @@ -31,7 +31,7 @@ end end - [:twitter, :facebook, :google_oauth2, :gitlab, :github, :bitbucket, :crowd, :auth0, :authentiq, :dingtalk].each do |provider| + [:twitter, :facebook, :google_oauth2, :gitlab, :github, :bitbucket, :crowd, :auth0, :authentiq, :dingtalk, :alicloud].each do |provider| describe "#{provider} provider" do let(:user) { create(:omniauth_user, provider: provider.to_s) } diff --git a/spec/features/oauth_login_spec.rb b/spec/features/oauth_login_spec.rb index 93674057fed6..ea5bb8c33b2c 100644 --- a/spec/features/oauth_login_spec.rb +++ b/spec/features/oauth_login_spec.rb @@ -16,7 +16,7 @@ def stub_omniauth_config(provider) end providers = [:github, :twitter, :bitbucket, :gitlab, :google_oauth2, - :facebook, :cas3, :auth0, :authentiq, :salesforce, :dingtalk] + :facebook, :cas3, :auth0, :authentiq, :salesforce, :dingtalk, :alicloud] around do |example| with_omniauth_full_host { example.run } -- GitLab