Skip to content

Conversation

@jinmeiliao
Copy link
Member

Problem:
StopCQ with expired credentials does not trigger re-authentication.

Cause:
the server side doesn't send the AuthenticationExpiredException to the client with the MessageType.EXCEPTION, rather it only sends down only the error message with MessageType.CQ_EXCEPTION_TYPE, that's now how it's generally handled.

}

@Test
public void stopCQ() throws Exception {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test name could be more descriptive. Something like "stopCQTriggersClientReAuthentication" maybe?

@jinmeiliao jinmeiliao merged commit f61e32f into apache:develop Nov 22, 2021
@jinmeiliao jinmeiliao deleted the stopCQ branch November 22, 2021 18:07
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Mar 23, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Mar 23, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
jmelchio pushed a commit to jmelchio/geode that referenced this pull request Mar 23, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Mar 24, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Mar 24, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
jmelchio pushed a commit to jmelchio/geode that referenced this pull request Mar 25, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors
jmelchio pushed a commit to jmelchio/geode that referenced this pull request Mar 25, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors
jmelchio pushed a commit to jmelchio/geode that referenced this pull request Mar 28, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors

Still more compile errors

Fix assembly content file

Fix sanctioned-geode-core-serializables

GEODE-10163: upgradeTest serialization issues (apache#7488)

- AuthExpirationTransactionUpgradeTest had issues with serialization of
  TXId class between different versions of test VMs during the
  upgradeTest.
- Change made to the test so that we serialize a String instead of the
  TXId to avoid this issue and gain the ability to run the test across a
  wider range of client versions.

Back-port test fixes and adjust versions

Reduce number of upgrade version to run against

Manually fix merge errors

- as a result of rebase on support/1.14
jmelchio added a commit to jmelchio/geode that referenced this pull request Mar 28, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors

Still more compile errors

Fix assembly content file

Fix sanctioned-geode-core-serializables

GEODE-10163: upgradeTest serialization issues (apache#7488)

- AuthExpirationTransactionUpgradeTest had issues with serialization of
  TXId class between different versions of test VMs during the
  upgradeTest.
- Change made to the test so that we serialize a String instead of the
  TXId to avoid this issue and gain the ability to run the test across a
  wider range of client versions.

Back-port test fixes and adjust versions

Reduce number of upgrade version to run against

Manually fix merge errors

- as a result of rebase on support/1.14
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Mar 29, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
jmelchio pushed a commit to jmelchio/geode that referenced this pull request Mar 30, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors

Still more compile errors

Fix assembly content file

Fix sanctioned-geode-core-serializables

GEODE-10163: upgradeTest serialization issues (apache#7488)

- AuthExpirationTransactionUpgradeTest had issues with serialization of
  TXId class between different versions of test VMs during the
  upgradeTest.
- Change made to the test so that we serialize a String instead of the
  TXId to avoid this issue and gain the ability to run the test across a
  wider range of client versions.

Back-port test fixes and adjust versions

Reduce number of upgrade version to run against

Manually fix merge errors

- as a result of rebase on support/1.14

Change SystemPropertyHelper back for expiry
jmelchio added a commit to jmelchio/geode that referenced this pull request Mar 30, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors

Still more compile errors

Fix assembly content file

Fix sanctioned-geode-core-serializables

GEODE-10163: upgradeTest serialization issues (apache#7488)

- AuthExpirationTransactionUpgradeTest had issues with serialization of
  TXId class between different versions of test VMs during the
  upgradeTest.
- Change made to the test so that we serialize a String instead of the
  TXId to avoid this issue and gain the ability to run the test across a
  wider range of client versions.

Back-port test fixes and adjust versions

Reduce number of upgrade version to run against

Manually fix merge errors

- as a result of rebase on support/1.14

Temp checkin not to lose changes

Fix things and so on

Everything appears to compile version
jmelchio added a commit to jmelchio/geode that referenced this pull request Mar 30, 2022
…apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

Fix some compile errors

Fix more compile errors

Still more compile errors

Fix assembly content file

Fix sanctioned-geode-core-serializables

GEODE-10163: upgradeTest serialization issues (apache#7488)

- AuthExpirationTransactionUpgradeTest had issues with serialization of
  TXId class between different versions of test VMs during the
  upgradeTest.
- Change made to the test so that we serialize a String instead of the
  TXId to avoid this issue and gain the ability to run the test across a
  wider range of client versions.

Back-port test fixes and adjust versions

Reduce number of upgrade version to run against

Manually fix merge errors

- as a result of rebase on support/1.14

Temp checkin not to lose changes

Fix things and so on

Everything appears to compile version
jinmeiliao added a commit to jinmeiliao/geode that referenced this pull request Apr 1, 2022
… (squashed)

GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (apache#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

GEODE-9985: add region redundancy to avoid data loss. (apache#7308)

GEODE-9900: ensure AuthenticationExpiredException handling (apache#7207)

* GEODE-9900: ensure AuthenticationExpiredException handling

- in CloseCQ command
- Add unit tests to confirm proper message is sent

GEODE-9875: client operation should not send in invalid userId. (apache#7173)

GEODE-9867: do not process the message if the connection is terminated (apache#7158)

GEODE-9803: Fix the flaky "Failed To find authenticated user" problem (apache#7149)

* GEODE-9803: Fix the flaky "Failed To find authenticated user" problem

* Only to update subject on the ClientCacheProxy if it's waiting for re-auth
* logout the subject in one place when we close the dispatcher
* reset the timer when we stopped waiting

GEODE-9820: stopCQ should handle general exception same way as ExecuteCQ61 (apache#7122)

GEODE-9803: turning on security debug log in the test and add more debug logging (apache#7117)

GEODE-9746: do not logout old subjects immediately when we get a new subject for the same uniqueId (apache#7063)

* add more logging for future debugging
* minor bug fix in CacheClientProxy

GEODE-9792: synchronize multi-user authentication on different threads (apache#7088)

GEODE-9792: avoid sending in multiple authentication request on the same connection by different threads. (apache#7067)

GEODE-9723: test transactions with auth expiration (apache#7012)

Add tests to confirm that client transactions are not disrupted when authentication expires and automatic re-authentication takes place.

    complete transaction with commit
    transaction rollback
    suspended and resumed transaction with commit
    failed re-authentication with commit and rollback on partial transaction
    add test to include PARTITION region behavior

GEODE-9674: For durable client, when client reconnects, server should retrieve the message from the queue, not continue to try to deliver the last un-delivered message.

GEODE-9749: ignore the test case that shows GEODE-9704. (apache#7015)

GEODE-9534, GEODE-9540: add more tests for peer communication and bulk operations (apache#6985)

* add more tests for durable clients

GEODE-9674: fix durable client message loss issue in tests. (apache#6947)

* for caching_proxy region, count the events received instread of the region size
* do not try to dispatch residual messages when exception occurred.
* add durable client flag when register interest

GEODE-9534: get rid of some test warnings (apache#6945)

GEODE-9663: refactor authenticateIfRequired (apache#6948)

GEODE-9663: throw and handle AuthenticationExpiredException at login time (apache#6927)

* GEODE-9663: throw and handle AuthenticationExpiredException at login time

GEODE-9658: refactor test AuthInit to not use static field for credentials. (apache#6922)

GEODE-9570: make sure re-authentication works with registered interests (apache#6885)

GEODE-9459: testing clients with WAN connected cluster (apache#6901)

GEODE-9457: re-authentication in event dispatcher (apache#6835)

* authorize the message before dispatching the message to the client
* add a new message type to be sent to the client for re-authentiate
* message dispatcher will wait for a certain time for client to reauthenticate before terminating the client
* when re-authenticate, the new subject will re-use the original uniqueId. Credentials will be sent to the user along with the old uniqueId if exists.
* old subject will be cleaned out when new subject re-authenticate back.
* re-auth multi-user mode in event dispatching is not supported (yet).

GEODE-9458: Enhance function execution testing auth expiry (apache#6865)

* GEODE-9458: Enhance function execution testing auth expiry

GEODE-9521: add more multi-server test scenario (apache#6860)

* remove the static methods in ExpirableSecurityManager

GEODE-9586: modify 1.15.0's client server protocol version (apache#6846)

GEODE-9458: function execution with expiring authentication (apache#6789)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)

* Add tests and throw AuthenticationExpiredException
Co-authored-by: Joris Melchior <joris.melchior@gmail.com>

* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-Authored-By Jinmei Liao <jiliao@vmware.com>

* review update

* revert accidental change

* GEODE-9458: function execution with expiring authentication

* Changes based on review

* Changes based on review, parameterization

Co-authored-by: Jinmei Liao <jiliao@pivotal.io>

GEODE-9451: On demand authentication expiration and re-authentication (apache#6787)

* GEODE-9456, GEODE-9452: Authentication Expiration (apache#6721)
* Add tests and throw AuthenticationExpiredException
* GEODE-9460: Add testing for mutli-user scenarios (apache#6755)

Co-authored-by: Joris Melchior <joris.melchior@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants