From 520a065dd2bb2a5871483481e7aaaaff996bf565 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Tue, 14 Sep 2021 13:51:20 +0300 Subject: [PATCH] [#338] v2/acl: add `Service` filter type Signed-off-by: Evgenii Stratonikov --- pkg/acl/eacl/enums.go | 7 +++++++ pkg/acl/eacl/enums_test.go | 7 ++++--- v2/acl/convert.go | 4 ++++ v2/acl/grpc/types.pb.go | Bin 38659 -> 38870 bytes v2/acl/types.go | 1 + 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/pkg/acl/eacl/enums.go b/pkg/acl/eacl/enums.go index 39a42531..2e8fc1f2 100644 --- a/pkg/acl/eacl/enums.go +++ b/pkg/acl/eacl/enums.go @@ -96,6 +96,9 @@ const ( // HeaderFromObject is a FilterHeaderType for object header. HeaderFromObject + + // HeaderFromService is a FilterHeaderType for service header. + HeaderFromService ) // ToV2 converts Action to v2 Action enum value. @@ -343,6 +346,8 @@ func (h FilterHeaderType) ToV2() v2acl.HeaderType { return v2acl.HeaderTypeRequest case HeaderFromObject: return v2acl.HeaderTypeObject + case HeaderFromService: + return v2acl.HeaderTypeService default: return v2acl.HeaderTypeUnknown } @@ -355,6 +360,8 @@ func FilterHeaderTypeFromV2(header v2acl.HeaderType) (h FilterHeaderType) { h = HeaderFromRequest case v2acl.HeaderTypeObject: h = HeaderFromObject + case v2acl.HeaderTypeService: + h = HeaderFromService default: h = HeaderTypeUnknown } diff --git a/pkg/acl/eacl/enums_test.go b/pkg/acl/eacl/enums_test.go index 53528494..d077a898 100644 --- a/pkg/acl/eacl/enums_test.go +++ b/pkg/acl/eacl/enums_test.go @@ -43,6 +43,7 @@ var ( eacl.HeaderTypeUnknown: v2acl.HeaderTypeUnknown, eacl.HeaderFromRequest: v2acl.HeaderTypeRequest, eacl.HeaderFromObject: v2acl.HeaderTypeObject, + eacl.HeaderFromService: v2acl.HeaderTypeService, } ) @@ -104,15 +105,15 @@ func TestMatch(t *testing.T) { func TestFilterHeaderType(t *testing.T) { t.Run("known header types", func(t *testing.T) { - for i := eacl.HeaderTypeUnknown; i <= eacl.HeaderFromObject; i++ { + for i := eacl.HeaderTypeUnknown; i <= eacl.HeaderFromService; i++ { require.Equal(t, eqV2HeaderTypes[i], i.ToV2()) require.Equal(t, eacl.FilterHeaderTypeFromV2(i.ToV2()), i) } }) t.Run("unknown header types", func(t *testing.T) { - require.Equal(t, (eacl.HeaderFromObject + 1).ToV2(), v2acl.HeaderTypeUnknown) - require.Equal(t, eacl.FilterHeaderTypeFromV2(v2acl.HeaderTypeObject+1), eacl.HeaderTypeUnknown) + require.Equal(t, (eacl.HeaderFromService + 1).ToV2(), v2acl.HeaderTypeUnknown) + require.Equal(t, eacl.FilterHeaderTypeFromV2(v2acl.HeaderTypeService+1), eacl.HeaderTypeUnknown) }) } diff --git a/v2/acl/convert.go b/v2/acl/convert.go index d4a52b82..d501b568 100644 --- a/v2/acl/convert.go +++ b/v2/acl/convert.go @@ -111,6 +111,8 @@ func HeaderTypeToGRPCField(t HeaderType) acl.HeaderType { return acl.HeaderType_REQUEST case HeaderTypeObject: return acl.HeaderType_OBJECT + case HeaderTypeService: + return acl.HeaderType_SERVICE default: return acl.HeaderType_HEADER_UNSPECIFIED } @@ -123,6 +125,8 @@ func HeaderTypeFromGRPCField(t acl.HeaderType) HeaderType { return HeaderTypeRequest case acl.HeaderType_OBJECT: return HeaderTypeObject + case acl.HeaderType_SERVICE: + return HeaderTypeService default: return HeaderTypeUnknown } diff --git a/v2/acl/grpc/types.pb.go b/v2/acl/grpc/types.pb.go index 319a472337512addd45900d558f06cf2daa1d15c..639bdf256aff2eaa888e9ba7d9b0505bb58ce600 100644 GIT binary patch delta 1815 zcmZ8hTWphM7|v!_Y3bH(u3gve@NbaKVYk1d?Ir`+27;O}3<4%w*Yp4Pd~VmZ-8w{# zF(JmmV?;yDmS`do4<%eEk%-0%6AeZ*?m~hi-kPXzfmt-f_xp-L*+ut1@AtmXdwRa_ zg%9i3KB`|%J}^3DJD>Ts{g_G=h5eCuUd{?RIa`PXWFaj3BsrTK5{`uBoGkdVvXD&W zg>*I*kaIa%68t6Mpq$!&n9P!#6MRWY&1mFeB$pS0se4Rw6rM`POG9ealbrNODJ^>r z?|bIir}pj>n5jX|k_}xA0;Ww_jmkDA^xi$kSEePS>R;45Cj95mc43csd3T)^+Hj{j zXc4T%QM*O0!nPR^@{$&jnVx!rCuYPt0heY(25vh0F%|5>kl)1ML}U`*&FZk?Y^t61 zsU6!HlXZthz`B#iXlF%qy9~G;<1uN1mnAFnzdFmP>s{h0mjdIV2l1}E83$Z?jC-~C zBdEl@%M2l+L!)O0szEL8Bvd#aIe>Au9xu8Lh`7zz;nj2BRkxmTu6qWs?p8LiBJ4Qk zdIS&0Cn!*h4Oa_uI5{(b5w{lSJ^c(;-8M9OEu8M4*G%=qydp-Xbe!D|75C11|y(Jq;A zg__ta@f}qXgOpZ-6{%L{hQ!PCNP6s&O<0ljh|6r04LBiNi2b50BAFb3F1QJsLk{Gn zE?f?2ph#KpXJ`yR2RVTzB;v1v3j0EQRtbV@$svWG$z;;GliE|^a*xN z5!qOt)~JX*u^z}#E#rQPK3|VE!5Qqp7tvN6^iN?m?ZxvkzWz62BEF9saU*7A-q(}; z5aOFCr4{=i5`6rXgos2?jWOEadZ>kK z;BQwqtVu5T@g(z2C%Nw`2UlyLE+t|r&QP%+Jlm)Uu$m_dTd-Id!nyKh?J#?3Nbx?l z=V2?Z&XFDqeXM9*L67$eCY*8d>D?}{-2L)MBB;@6cNWH_httOUcYm?+~oaZKV-t81$4G z(Q=s+eO?xusct*3zSe`)hhbkg^Xyp=@oR|{)Yfcwu>NY7-VtO&I5h7d%HCE#7r3uB zh0&T9ju+Y*YY|-k4m(!MZ8%eGYGT>=6K&tlSRP;O!w(DX6Wr~8Nk$lzonBx1W!H!P zamHaQPgo1!cg!x)6Fs*$$!h+1v6H%6s{vz$fzb*-X`D9I+x$3`FyQ?Pe-nP<#~Zcd QolBiKI&Hp?UwYN}51$4~ZU6uP delta 1573 zcmY*ZYfPI}7|yVi^#bimzYg0{TSN#M<+RWOO9VzTqgld&OP0V&OZ)Z43Y1=GDNrtR z(Kt1VdH#$)WcWkFj3QY=GLzvJqmzh4jhf78oY9ypG22XZi=A5v-Doubp_=ABsO z@y}$JQVeO0;&##mU7`YgQ_Z~8P%gsl`$&c0j1q4QImEp6xP)6nX1KBn^o6ug`0e=m zY%ijIJI(U8;_?u~6T?RA`fEgoeptdkelrRaT3k;l&=?RMb6`OwwgWn-c>Zp{f@?t& zY{M3WgDr|qL2-1LfdyRneoT+#83X6n$W_ryXOJDRBM@ZbfLDWzhSU#Nt7X~^wcq36 z3t>H2$S$h-Lk#N^4n9dI;0A|HvV;dA+L}RT*cvxsKsIZHc5h4!>cF{h4IiL{HCsb+ zKah}8brJ#4`FtPQ@17I(u3Me1RgAr~>=Xv8Mq zK!l+>W5PezA{GQyJ8IQB@I}J+3;H2 zi;F%R?#HU|>_`-H+{p`Hk5l1|IK!tS4(LKkP5V(=lSgdXH_=qirMhKYm)&TId$2j; z6r6q@Vfbi-bUk&J!5-A%55F4&p~li41E+B+A)!5C#d8UXAGDlcIFhNuorI2~zc_j; zWySGP3HrDVuY?RZn4W`jOoC=qkLEFw+Be4S%C+5(Y1PE4H7Z!S0^Rt0LPBvwRqkyQ z5#6{@eQcb>qzJ5*z!&3;%NNVDDP&Q)DfeM9N%mg|IPfr8i!YN7jK!KN=>@q$^bR`V zNY#mbsQ5m}@E#n>KF+Ch3jJ>G*?kJQH_<3Uhf@st6!%h!pg-fla;gdyQ9WIfVB)=?G_Io&+B=Zmb2=U zaFb^hSpx>M4PxkGR;*zoOH+O%V3;KESg{9@!Xe2^{|CM_eybiY3FD7)C2zvDNpVeI zmC7#{&9LP}z?-9fpKQTm&WI&hf#qDYIPBvbe}R)^fv%z*Pv^zO4&=Xn*9&^TQLb)=a;Ih(HmB;VgzBi!Ub4-TlU|%Ga&ycOFXJr3SV4`G zvkmmSYKvfc_6Ta_dTh^XDdcWNx?shFSsgBw=sNNZ@E29sE2@z$(luPl8~Hj7*ea?x zz3pOy#zWTfM1%pKnd{}zm*;8)%QXVOmVkP`7dHki=AGCHXmNF(47)Qg OT6GJe^@?+0t>!<*!}%)! diff --git a/v2/acl/types.go b/v2/acl/types.go index f7775319..58b310d1 100644 --- a/v2/acl/types.go +++ b/v2/acl/types.go @@ -85,6 +85,7 @@ const ( HeaderTypeUnknown HeaderType = iota HeaderTypeRequest HeaderTypeObject + HeaderTypeService ) const (