> On March 24, 2014, 9:18 a.m., Benjamin Hindman wrote:
> > include/mesos/mesos.proto, line 486
> > <https://reviews.apache.org/r/18730/diff/6/?file=532713#file532713line486>
> >
> >     Can you share this in JSON so we can get an idea of what it looks like?
> 
> Vinod Kone wrote:
>     I logged the JSON for each of the ACLs set in the tests. This is how it 
> looks:
>     
>     [ RUN      ] AuthorizationTest.AnyPrincipalRunAsUser
>     I0325 01:28:10.681622 41814 authorization_tests.cpp:48] 
> {"runs":[{"principals":{"type":"ANY"},"users":{"values":["guest"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.NoPrincipalRunAsUser
>     I0325 01:28:10.684216 41814 authorization_tests.cpp:68] 
> {"runs":[{"principals":{"type":"NONE"},"users":{"values":["root"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.PrincipalRunAsAnyUser
>     I0325 01:28:10.685173 41814 authorization_tests.cpp:87] 
> {"runs":[{"principals":{"values":["foo"]},"users":{"type":"ANY"}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.AnyPrincipalRunAsAnyUser
>     I0325 01:28:10.687325 41814 authorization_tests.cpp:107] 
> {"runs":[{"principals":{"type":"ANY"},"users":{"type":"ANY"}}]}
>     
>     [ RUN      ] AuthorizationTest.SomePrincipalsRunAsSomeUsers
>     I0325 01:28:10.688889 41814 authorization_tests.cpp:129] 
> {"runs":[{"principals":{"values":["foo","bar"]},"users":{"values":["user1","user2"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.PrincipalRunAsSomeUserRestrictive
>     I0325 01:28:10.692108 41814 authorization_tests.cpp:156] 
> {"permissive":false,"runs":[{"principals":{"values":["foo"]},"users":{"values":["user1"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.AnyPrincipalOfferedRole
>     I0325 01:28:10.693452 41814 authorization_tests.cpp:179] 
> {"offers":[{"principals":{"type":"ANY"},"roles":{"values":["*"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.SomePrincipalsOfferedRole
>     I0325 01:28:10.694710 41814 authorization_tests.cpp:200] 
> {"offers":[{"principals":{"values":["foo","bar"]},"roles":{"values":["ads"]}}]}
>     
>     [ RUN      ] AuthorizationTest.PrincipalOfferedRole
>     I0325 01:28:10.695742 41814 authorization_tests.cpp:220] 
> {"offers":[{"principals":{"values":["foo"]},"roles":{"values":["analytics"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.PrincipalNotOfferedAnyRoleRestrictive
>     I0325 01:28:10.696688 41814 authorization_tests.cpp:243] 
> {"offers":[{"principals":{"values":["foo"]},"roles":{"values":["analytics"]}}],"permissive":false}
>     
>     
>     [ RUN      ] AuthorizationTest.AnyClientGETSomeURL
>     I0325 01:28:10.697864 41814 authorization_tests.cpp:268] 
> {"gets":[{"clients":{"type":"ANY"},"urls":{"values":["\/help"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.SomeClientsPUTSomeURL
>     I0325 01:28:10.698837 41814 authorization_tests.cpp:289] 
> {"puts":[{"clients":{"values":["127.0.0.1","localhost"]},"urls":{"values":["\/admin"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.NoClientGETPUTSomeURL
>     I0325 01:28:10.700235 41814 authorization_tests.cpp:316] 
> {"gets":[{"clients":{"type":"NONE"},"urls":{"values":["\/sshhh"]}}],"puts":[{"clients":{"type":"NONE"},"urls":{"values":["\/sshhh"]}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.SomeClientsCannotGETAnyURL
>     I0325 01:28:10.701879 41814 authorization_tests.cpp:339] 
> {"gets":[{"clients":{"values":["127.0.0.1","localhost"]},"urls":{"type":"NONE"}}]}
>     
>     
>     [ RUN      ] AuthorizationTest.NoClientsCanGETPUTAnyURLRestrictive
>     I0325 01:28:10.703636 41814 authorization_tests.cpp:359] 
> {"permissive":false}
>

Out of curiousity, I patched this to instead use repeated Client and Entity 
objects in the ACL messages, and changed the repeated 'values' to an optional 
value.

The benefit: Consistency between 'type' and 'value' both being singular. 
The drawback: Verbosity.

JSON:

[ RUN      ] AuthorizationTest.AnyPrincipalRunAsUser
I0326 10:44:43.700340  9036 authorizer.hpp:262] 
{"runs":[{"principals":[{"type":"ANY"}],"users":[{"value":"guest"}]}]}

[ RUN      ] AuthorizationTest.NoPrincipalRunAsUser
I0326 10:44:43.702419  9036 authorizer.hpp:262] 
{"runs":[{"principals":[{"type":"NONE"}],"users":[{"value":"root"}]}]}

[ RUN      ] AuthorizationTest.PrincipalRunAsAnyUser
I0326 10:44:43.702764  9036 authorizer.hpp:262] 
{"runs":[{"principals":[{"value":"foo"}],"users":[{"type":"ANY"}]}]}

[ RUN      ] AuthorizationTest.AnyPrincipalRunAsAnyUser
I0326 10:44:43.703035  9036 authorizer.hpp:262] 
{"runs":[{"principals":[{"type":"ANY"}],"users":[{"type":"ANY"}]}]}

[ RUN      ] AuthorizationTest.SomePrincipalsRunAsSomeUsers
I0326 10:44:43.703289  9036 authorizer.hpp:262] 
{"runs":[{"principals":[{"value":"foo"},{"value":"bar"}],"users":[{"value":"user1"},{"value":"user2"}]}]}

[ RUN      ] AuthorizationTest.PrincipalRunAsSomeUserRestrictive
I0326 10:44:43.703522  9036 authorizer.hpp:262] 
{"permissive":false,"runs":[{"principals":[{"value":"foo"}],"users":[{"value":"user1"}]}]}

[ RUN      ] AuthorizationTest.AnyPrincipalOfferedRole
I0326 10:44:43.703752  9036 authorizer.hpp:262] 
{"offers":[{"principals":[{"type":"ANY"}],"roles":[{"value":"*"}]}]}

[ RUN      ] AuthorizationTest.SomePrincipalsOfferedRole
I0326 10:44:43.703971  9036 authorizer.hpp:262] 
{"offers":[{"principals":[{"value":"foo"},{"value":"bar"}],"roles":[{"value":"ads"}]}]}

[ RUN      ] AuthorizationTest.PrincipalOfferedRole
I0326 10:44:43.704205  9036 authorizer.hpp:262] 
{"offers":[{"principals":[{"value":"foo"}],"roles":[{"value":"analytics"}]}]}

[ RUN      ] AuthorizationTest.PrincipalNotOfferedAnyRoleRestrictive
I0326 10:44:43.704409  9036 authorizer.hpp:262] 
{"offers":[{"principals":[{"value":"foo"}],"roles":[{"value":"analytics"}]}],"permissive":false}

[ RUN      ] AuthorizationTest.AnyClientGETSomeURL
I0326 10:44:43.704653  9036 authorizer.hpp:262] 
{"gets":[{"clients":[{"type":"ANY"}],"urls":[{"value":"\/help"}]}]}

[ RUN      ] AuthorizationTest.SomeClientsPUTSomeURL
I0326 10:44:43.704908  9036 authorizer.hpp:262] 
{"puts":[{"clients":[{"value":"127.0.0.1"},{"value":"localhost"}],"urls":[{"value":"\/admin"}]}]}

[ RUN      ] AuthorizationTest.NoClientGETPUTSomeURL
I0326 10:44:43.705157  9036 authorizer.hpp:262] 
{"gets":[{"clients":[{"type":"NONE"}],"urls":[{"value":"\/sshhh"}]}],"puts":[{"clients":[{"type":"NONE"}],"urls":[{"value":"\/sshhh"}]}]}

[ RUN      ] AuthorizationTest.SomeClientsCannotGETAnyURL
I0326 10:44:43.705448  9036 authorizer.hpp:262] 
{"gets":[{"clients":[{"value":"127.0.0.1"},{"value":"localhost"}],"urls":[{"type":"NONE"}]}]}

[ RUN      ] AuthorizationTest.NoClientsCanGETPUTAnyURLRestrictive
I0326 10:44:43.705708  9036 authorizer.hpp:262] {"permissive":false}


- Dominic


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18730/#review38304
-----------------------------------------------------------


On March 21, 2014, 4:44 p.m., Vinod Kone wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18730/
> -----------------------------------------------------------
> 
> (Updated March 21, 2014, 4:44 p.m.)
> 
> 
> Review request for mesos, Adam B, Benjamin Hindman, and Niklas Nielsen.
> 
> 
> Bugs: MESOS-911
>     https://issues.apache.org/jira/browse/MESOS-911
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> See summary.
> 
> 
> Diffs
> -----
> 
>   include/mesos/mesos.proto 37f8a7fcd23d467b1274c46c405b836510afbd49 
>   src/Makefile.am 0775a0df293e945d41c7ba90fd1bbb503ae22f9e 
>   src/authorizer/authorizer.hpp PRE-CREATION 
>   src/tests/authorization_tests.cpp PRE-CREATION 
>   src/tests/master_contender_detector_tests.cpp 
> 8da7420e18c7a960b566fae13a5975857eb777ee 
> 
> Diff: https://reviews.apache.org/r/18730/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Vinod Kone
> 
>

Reply via email to