You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Bruce Schuchardt <bs...@pivotal.io> on 2017/08/15 20:46:04 UTC

Review Request 61672: GEODE-3249: internal messages should require credentials

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

Review request for geode, Alexander Murmann, Galen O'Sullivan, Hitesh Khamesra, Udo Kohlmeyer, and Brian Rowe.


Bugs: GEODE-3249
    https://issues.apache.org/jira/browse/GEODE-3249


Repository: geode


Description
-------

Internal messages that could alter server state now require security credentials.

This was merely a matter of changing the server to require the credentials and changing the client to send credentials.  I removed the general overriding of AbstractOp.processSecureBytes() because it made no sense.  If the server sends a secure byte "part" in a message the client is obligated to process it or the next message it sends will cause a security violation.

I've added a server-side property that folks can set to allow old clients to continue to work.  This must be used to roll the servers forward to the new version that contains this change.  Clients must then be rolled forward & the servers can then be rolled once again without the property set.


Diffs
-----

  geode-core/src/main/java/org/apache/geode/cache/client/internal/AbstractOp.java c4035f9cf5db1c031e35eef4be0908afbddefffb 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXEnumOp.java ca7790aca5cab703c2180f85f01e37c91fa3c956 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXTypeOp.java 88c85514c891d19399257bb2d85cb463b92ed6bb 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/CloseConnectionOp.java ffcdc39c3ba05e90bf7b9c49509b72de70451f85 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/CommitOp.java edffb2b18bde31435c9555b13c3e630aee1e4027 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPRMetaDataOp.java 2ba3e3a9a8044fcd7d991fd444fcaf75b2a5c2f4 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPartitionAttributesOp.java 49567dd31d9f617162768b5066bbb5307785a85f 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetEventValueOp.java 3fb5fcfa497264d5e0a14d95ed0935f392216680 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetFunctionAttributeOp.java c7edbfea719e75291287824c3654c0e7fac3e7bb 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumByIdOp.java 7bbf74056f6ecfb7efe27c575029281b98d01b47 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumsOp.java be4c092298df497f6c145b26d8b87234d59c6be8 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForEnumOp.java d87371c6778e9a9ea44c956dbef9e169338c7930 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForTypeOp.java 27f600e3e5e2803cfd2f1c312036b57f61a12751 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypeByIdOp.java bee50b5f02c2d891f8c450ce1dc799757a39453f 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypesOp.java 5256924e94fd533dc27c8eb28073a4e68bd68174 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/MakePrimaryOp.java e1d3d5030bb2b31f6471cfc14f147d7780357dc1 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/PingOp.java 2e5254226c3ef461e93033bb623dfca31cdce1c5 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/PrimaryAckOp.java e380e99e00815d3d56763d429dfc8ad51c3f4113 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/PutOp.java 447ed382cda810c99f3400ba862db9537794a01b 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/ReadyForEventsOp.java f6d0ccb5a9892e38d83b7fafc831fef6f1f14bb7 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterDataSerializersOp.java 5b259615a1482a6c4835fec12096012001f616d4 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterInstantiatorsOp.java 114bebee931ad4b890adf54d3fdadf1d0d7bbc23 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/RollbackOp.java 4704f3a3f4651f9d719e5f3226c9c372307804f8 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/SizeOp.java ac8c95e9145d601a23d7fe4e6e67039cefa1d1be 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/TXFailoverOp.java 17fc701f6da43ae56748af57590ac4f0c13f77aa 
  geode-core/src/main/java/org/apache/geode/cache/client/internal/TXSynchronizationOp.java 0c4086cf23bfcfd8d2d24f4e2b3390fccc79a0a0 
  geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java 1f9ef91b22b382e94b6c98158a04dd1f992772bc 
  geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java 870d0ff5cc624271992649acc049ea3a727332d8 
  geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/AddPdxType.java cb4b261586a3536cfd5609e627a37cbca7ecf81f 
  geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetPDXIdForType.java caa0661528dc3d3824c60ac540ca77468d010459 
  geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java 3cf2efce3a48d4f1ede4e072d52b6a9dc84cc6b3 
  geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationTestCase.java 1293affda5b0ced0ea21c7644aba9744d1220d25 
  geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java 9d3f72100fe4a3e747a300d2e1b1da53c372b63e 
  geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java b1c09075b2ebf143c1b1ea822df62d7710ebba97 
  geode-core/src/test/java/org/apache/geode/test/dunit/standalone/VersionManager.java 739b690329101306fe4874369446af267599a8d2 
  geode-wan/src/main/java/org/apache/geode/cache/client/internal/GatewaySenderBatchOp.java b8616a92366d1d0791e5cca8a1ca8fb633cb9932 


Diff: https://reviews.apache.org/r/61672/diff/1/


Testing
-------


Thanks,

Bruce Schuchardt


Re: Review Request 61672: GEODE-3249: internal messages should require credentials

Posted by Udo Kohlmeyer <uk...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61672/#review182997
-----------------------------------------------------------


Ship it!




Ship It!

- Udo Kohlmeyer


On Aug. 15, 2017, 8:46 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61672/
> -----------------------------------------------------------
> 
> (Updated Aug. 15, 2017, 8:46 p.m.)
> 
> 
> Review request for geode, Alexander Murmann, Galen O'Sullivan, Hitesh Khamesra, Udo Kohlmeyer, and Brian Rowe.
> 
> 
> Bugs: GEODE-3249
>     https://issues.apache.org/jira/browse/GEODE-3249
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> Internal messages that could alter server state now require security credentials.
> 
> This was merely a matter of changing the server to require the credentials and changing the client to send credentials.  I removed the general overriding of AbstractOp.processSecureBytes() because it made no sense.  If the server sends a secure byte "part" in a message the client is obligated to process it or the next message it sends will cause a security violation.
> 
> I've added a server-side property that folks can set to allow old clients to continue to work.  This must be used to roll the servers forward to the new version that contains this change.  Clients must then be rolled forward & the servers can then be rolled once again without the property set.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AbstractOp.java c4035f9cf5db1c031e35eef4be0908afbddefffb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXEnumOp.java ca7790aca5cab703c2180f85f01e37c91fa3c956 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXTypeOp.java 88c85514c891d19399257bb2d85cb463b92ed6bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CloseConnectionOp.java ffcdc39c3ba05e90bf7b9c49509b72de70451f85 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CommitOp.java edffb2b18bde31435c9555b13c3e630aee1e4027 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPRMetaDataOp.java 2ba3e3a9a8044fcd7d991fd444fcaf75b2a5c2f4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPartitionAttributesOp.java 49567dd31d9f617162768b5066bbb5307785a85f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetEventValueOp.java 3fb5fcfa497264d5e0a14d95ed0935f392216680 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetFunctionAttributeOp.java c7edbfea719e75291287824c3654c0e7fac3e7bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumByIdOp.java 7bbf74056f6ecfb7efe27c575029281b98d01b47 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumsOp.java be4c092298df497f6c145b26d8b87234d59c6be8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForEnumOp.java d87371c6778e9a9ea44c956dbef9e169338c7930 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForTypeOp.java 27f600e3e5e2803cfd2f1c312036b57f61a12751 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypeByIdOp.java bee50b5f02c2d891f8c450ce1dc799757a39453f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypesOp.java 5256924e94fd533dc27c8eb28073a4e68bd68174 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/MakePrimaryOp.java e1d3d5030bb2b31f6471cfc14f147d7780357dc1 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PingOp.java 2e5254226c3ef461e93033bb623dfca31cdce1c5 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PrimaryAckOp.java e380e99e00815d3d56763d429dfc8ad51c3f4113 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PutOp.java 447ed382cda810c99f3400ba862db9537794a01b 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/ReadyForEventsOp.java f6d0ccb5a9892e38d83b7fafc831fef6f1f14bb7 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterDataSerializersOp.java 5b259615a1482a6c4835fec12096012001f616d4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterInstantiatorsOp.java 114bebee931ad4b890adf54d3fdadf1d0d7bbc23 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RollbackOp.java 4704f3a3f4651f9d719e5f3226c9c372307804f8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/SizeOp.java ac8c95e9145d601a23d7fe4e6e67039cefa1d1be 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXFailoverOp.java 17fc701f6da43ae56748af57590ac4f0c13f77aa 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXSynchronizationOp.java 0c4086cf23bfcfd8d2d24f4e2b3390fccc79a0a0 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java 1f9ef91b22b382e94b6c98158a04dd1f992772bc 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java 870d0ff5cc624271992649acc049ea3a727332d8 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/AddPdxType.java cb4b261586a3536cfd5609e627a37cbca7ecf81f 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetPDXIdForType.java caa0661528dc3d3824c60ac540ca77468d010459 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java 3cf2efce3a48d4f1ede4e072d52b6a9dc84cc6b3 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationTestCase.java 1293affda5b0ced0ea21c7644aba9744d1220d25 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java 9d3f72100fe4a3e747a300d2e1b1da53c372b63e 
>   geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java b1c09075b2ebf143c1b1ea822df62d7710ebba97 
>   geode-core/src/test/java/org/apache/geode/test/dunit/standalone/VersionManager.java 739b690329101306fe4874369446af267599a8d2 
>   geode-wan/src/main/java/org/apache/geode/cache/client/internal/GatewaySenderBatchOp.java b8616a92366d1d0791e5cca8a1ca8fb633cb9932 
> 
> 
> Diff: https://reviews.apache.org/r/61672/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>


Re: Review Request 61672: GEODE-3249: internal messages should require credentials

Posted by Bruce Schuchardt <bs...@pivotal.io>.

> On Aug. 16, 2017, 4:51 p.m., Brian Rowe wrote:
> > geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
> > Lines 1059 (patched)
> > <https://reviews.apache.org/r/61672/diff/1/?file=1798185#file1798185line1059>
> >
> >     Is this intended to be new logging or was it just for debugging?

Thanks, I removed that log stmt


> On Aug. 16, 2017, 4:51 p.m., Brian Rowe wrote:
> > geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java
> > Lines 62 (patched)
> > <https://reviews.apache.org/r/61672/diff/1/?file=1798188#file1798188line62>
> >
> >     Does this call do anything? serverConnection is a mock and you haven't told it how to handle this call.

That statement is no longer required - I'll remove it.


- Bruce


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


On Aug. 15, 2017, 1:46 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61672/
> -----------------------------------------------------------
> 
> (Updated Aug. 15, 2017, 1:46 p.m.)
> 
> 
> Review request for geode, Alexander Murmann, Galen O'Sullivan, Hitesh Khamesra, Udo Kohlmeyer, and Brian Rowe.
> 
> 
> Bugs: GEODE-3249
>     https://issues.apache.org/jira/browse/GEODE-3249
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> Internal messages that could alter server state now require security credentials.
> 
> This was merely a matter of changing the server to require the credentials and changing the client to send credentials.  I removed the general overriding of AbstractOp.processSecureBytes() because it made no sense.  If the server sends a secure byte "part" in a message the client is obligated to process it or the next message it sends will cause a security violation.
> 
> I've added a server-side property that folks can set to allow old clients to continue to work.  This must be used to roll the servers forward to the new version that contains this change.  Clients must then be rolled forward & the servers can then be rolled once again without the property set.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AbstractOp.java c4035f9cf5db1c031e35eef4be0908afbddefffb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXEnumOp.java ca7790aca5cab703c2180f85f01e37c91fa3c956 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXTypeOp.java 88c85514c891d19399257bb2d85cb463b92ed6bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CloseConnectionOp.java ffcdc39c3ba05e90bf7b9c49509b72de70451f85 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CommitOp.java edffb2b18bde31435c9555b13c3e630aee1e4027 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPRMetaDataOp.java 2ba3e3a9a8044fcd7d991fd444fcaf75b2a5c2f4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPartitionAttributesOp.java 49567dd31d9f617162768b5066bbb5307785a85f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetEventValueOp.java 3fb5fcfa497264d5e0a14d95ed0935f392216680 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetFunctionAttributeOp.java c7edbfea719e75291287824c3654c0e7fac3e7bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumByIdOp.java 7bbf74056f6ecfb7efe27c575029281b98d01b47 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumsOp.java be4c092298df497f6c145b26d8b87234d59c6be8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForEnumOp.java d87371c6778e9a9ea44c956dbef9e169338c7930 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForTypeOp.java 27f600e3e5e2803cfd2f1c312036b57f61a12751 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypeByIdOp.java bee50b5f02c2d891f8c450ce1dc799757a39453f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypesOp.java 5256924e94fd533dc27c8eb28073a4e68bd68174 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/MakePrimaryOp.java e1d3d5030bb2b31f6471cfc14f147d7780357dc1 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PingOp.java 2e5254226c3ef461e93033bb623dfca31cdce1c5 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PrimaryAckOp.java e380e99e00815d3d56763d429dfc8ad51c3f4113 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PutOp.java 447ed382cda810c99f3400ba862db9537794a01b 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/ReadyForEventsOp.java f6d0ccb5a9892e38d83b7fafc831fef6f1f14bb7 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterDataSerializersOp.java 5b259615a1482a6c4835fec12096012001f616d4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterInstantiatorsOp.java 114bebee931ad4b890adf54d3fdadf1d0d7bbc23 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RollbackOp.java 4704f3a3f4651f9d719e5f3226c9c372307804f8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/SizeOp.java ac8c95e9145d601a23d7fe4e6e67039cefa1d1be 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXFailoverOp.java 17fc701f6da43ae56748af57590ac4f0c13f77aa 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXSynchronizationOp.java 0c4086cf23bfcfd8d2d24f4e2b3390fccc79a0a0 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java 1f9ef91b22b382e94b6c98158a04dd1f992772bc 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java 870d0ff5cc624271992649acc049ea3a727332d8 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/AddPdxType.java cb4b261586a3536cfd5609e627a37cbca7ecf81f 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetPDXIdForType.java caa0661528dc3d3824c60ac540ca77468d010459 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java 3cf2efce3a48d4f1ede4e072d52b6a9dc84cc6b3 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationTestCase.java 1293affda5b0ced0ea21c7644aba9744d1220d25 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java 9d3f72100fe4a3e747a300d2e1b1da53c372b63e 
>   geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java b1c09075b2ebf143c1b1ea822df62d7710ebba97 
>   geode-core/src/test/java/org/apache/geode/test/dunit/standalone/VersionManager.java 739b690329101306fe4874369446af267599a8d2 
>   geode-wan/src/main/java/org/apache/geode/cache/client/internal/GatewaySenderBatchOp.java b8616a92366d1d0791e5cca8a1ca8fb633cb9932 
> 
> 
> Diff: https://reviews.apache.org/r/61672/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>


Re: Review Request 61672: GEODE-3249: internal messages should require credentials

Posted by Brian Rowe <br...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61672/#review183089
-----------------------------------------------------------


Fix it, then Ship it!





geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
Lines 1059 (patched)
<https://reviews.apache.org/r/61672/#comment259090>

    Is this intended to be new logging or was it just for debugging?



geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java
Lines 62 (patched)
<https://reviews.apache.org/r/61672/#comment259091>

    Does this call do anything? serverConnection is a mock and you haven't told it how to handle this call.


- Brian Rowe


On Aug. 15, 2017, 8:46 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61672/
> -----------------------------------------------------------
> 
> (Updated Aug. 15, 2017, 8:46 p.m.)
> 
> 
> Review request for geode, Alexander Murmann, Galen O'Sullivan, Hitesh Khamesra, Udo Kohlmeyer, and Brian Rowe.
> 
> 
> Bugs: GEODE-3249
>     https://issues.apache.org/jira/browse/GEODE-3249
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> Internal messages that could alter server state now require security credentials.
> 
> This was merely a matter of changing the server to require the credentials and changing the client to send credentials.  I removed the general overriding of AbstractOp.processSecureBytes() because it made no sense.  If the server sends a secure byte "part" in a message the client is obligated to process it or the next message it sends will cause a security violation.
> 
> I've added a server-side property that folks can set to allow old clients to continue to work.  This must be used to roll the servers forward to the new version that contains this change.  Clients must then be rolled forward & the servers can then be rolled once again without the property set.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AbstractOp.java c4035f9cf5db1c031e35eef4be0908afbddefffb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXEnumOp.java ca7790aca5cab703c2180f85f01e37c91fa3c956 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/AddPDXTypeOp.java 88c85514c891d19399257bb2d85cb463b92ed6bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CloseConnectionOp.java ffcdc39c3ba05e90bf7b9c49509b72de70451f85 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/CommitOp.java edffb2b18bde31435c9555b13c3e630aee1e4027 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPRMetaDataOp.java 2ba3e3a9a8044fcd7d991fd444fcaf75b2a5c2f4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetClientPartitionAttributesOp.java 49567dd31d9f617162768b5066bbb5307785a85f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetEventValueOp.java 3fb5fcfa497264d5e0a14d95ed0935f392216680 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetFunctionAttributeOp.java c7edbfea719e75291287824c3654c0e7fac3e7bb 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumByIdOp.java 7bbf74056f6ecfb7efe27c575029281b98d01b47 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXEnumsOp.java be4c092298df497f6c145b26d8b87234d59c6be8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForEnumOp.java d87371c6778e9a9ea44c956dbef9e169338c7930 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXIdForTypeOp.java 27f600e3e5e2803cfd2f1c312036b57f61a12751 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypeByIdOp.java bee50b5f02c2d891f8c450ce1dc799757a39453f 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/GetPDXTypesOp.java 5256924e94fd533dc27c8eb28073a4e68bd68174 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/MakePrimaryOp.java e1d3d5030bb2b31f6471cfc14f147d7780357dc1 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PingOp.java 2e5254226c3ef461e93033bb623dfca31cdce1c5 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PrimaryAckOp.java e380e99e00815d3d56763d429dfc8ad51c3f4113 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/PutOp.java 447ed382cda810c99f3400ba862db9537794a01b 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/ReadyForEventsOp.java f6d0ccb5a9892e38d83b7fafc831fef6f1f14bb7 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterDataSerializersOp.java 5b259615a1482a6c4835fec12096012001f616d4 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RegisterInstantiatorsOp.java 114bebee931ad4b890adf54d3fdadf1d0d7bbc23 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/RollbackOp.java 4704f3a3f4651f9d719e5f3226c9c372307804f8 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/SizeOp.java ac8c95e9145d601a23d7fe4e6e67039cefa1d1be 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXFailoverOp.java 17fc701f6da43ae56748af57590ac4f0c13f77aa 
>   geode-core/src/main/java/org/apache/geode/cache/client/internal/TXSynchronizationOp.java 0c4086cf23bfcfd8d2d24f4e2b3390fccc79a0a0 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java 1f9ef91b22b382e94b6c98158a04dd1f992772bc 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java 870d0ff5cc624271992649acc049ea3a727332d8 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/AddPdxType.java cb4b261586a3536cfd5609e627a37cbca7ecf81f 
>   geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetPDXIdForType.java caa0661528dc3d3824c60ac540ca77468d010459 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationPart2DUnitTest.java 3cf2efce3a48d4f1ede4e072d52b6a9dc84cc6b3 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthenticationTestCase.java 1293affda5b0ced0ea21c7644aba9744d1220d25 
>   geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java 9d3f72100fe4a3e747a300d2e1b1da53c372b63e 
>   geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java b1c09075b2ebf143c1b1ea822df62d7710ebba97 
>   geode-core/src/test/java/org/apache/geode/test/dunit/standalone/VersionManager.java 739b690329101306fe4874369446af267599a8d2 
>   geode-wan/src/main/java/org/apache/geode/cache/client/internal/GatewaySenderBatchOp.java b8616a92366d1d0791e5cca8a1ca8fb633cb9932 
> 
> 
> Diff: https://reviews.apache.org/r/61672/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>