Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introducing protocol 4.4 and User Impersonation #784

Merged
merged 41 commits into from
Oct 14, 2021

Conversation

bigmontz
Copy link
Contributor

@bigmontz bigmontz commented Oct 7, 2021

Users can, when they have been granted explicit permission, run transactions against the database as different users. When impersonating a user, the query is run as the complete security context of the impersonated user and not the authenticated user (e.g. home database, permissions etc).

  • Create protocol 4.4 version
  • Add protocol to the handshake
  • Change the messages RUN, BEGIN and ROUTE to support the impersonation parameter
  • Add support to the impersonation into the driver surface
  • Add special treatments for the default/home database

Sorry, something went wrong.

@bigmontz bigmontz force-pushed the 4.4-introduce-protocol-version-4.4 branch from 24194d3 to 38577dc Compare October 8, 2021 14:05

Unverified

This user has not yet uploaded their public signing key.
Users can, when they have been granted explicit permission, run transactions against the database as different users. When impersonating a user, the query is run as the complete security context of the impersonated user and not the authenticated user (e.g. home database, permissions etc).

- [x] Create protocol 4.4 version
- [ ] Add protocol to the handshake
- [ ] Change the messages RUN, BEGIN and ROUTE to support the impersonation parameter
- [ ] Add support to the impersonation into the driver surface
- [ ] Add special treatments for the default/home database

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.
@bigmontz bigmontz force-pushed the 4.4-introduce-protocol-version-4.4 branch from 38577dc to d5bf0cc Compare October 8, 2021 15:25

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.
…param

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.
@bigmontz bigmontz marked this pull request as ready for review October 12, 2021 10:33

Unverified

This user has not yet uploaded their public signing key.
Copy link
Member

@robsdedude robsdedude left a comment

Choose a reason for hiding this comment

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

Mostly formatting and typos.
However, there are some behavioral concerns. Great PR 🎸

packages/bolt-connection/src/bolt/create.js Outdated Show resolved Hide resolved
packages/bolt-connection/src/bolt/request-message.js Outdated Show resolved Hide resolved
packages/bolt-connection/src/bolt/request-message.js Outdated Show resolved Hide resolved
packages/bolt-connection/src/bolt/request-message.js Outdated Show resolved Hide resolved
packages/core/src/transaction.ts Outdated Show resolved Hide resolved
packages/neo4j-driver-lite/test/unit/index.test.ts Outdated Show resolved Hide resolved
packages/neo4j-driver/src/driver.js Outdated Show resolved Hide resolved
bigmontz and others added 6 commits October 12, 2021 16:30

Unverified

This user has not yet uploaded their public signing key.
Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
….test.js

Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
Co-authored-by: Robsdedude <[email protected]>
@bigmontz bigmontz force-pushed the 4.4-introduce-protocol-version-4.4 branch from 836159b to ae5a8bf Compare October 12, 2021 14:30
bigmontz and others added 4 commits October 12, 2021 16:48

Unverified

This user has not yet uploaded their public signing key.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…ovider-direct.js

Co-authored-by: Robsdedude <[email protected]>

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…rovider-routing.test.js

Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.
bigmontz and others added 11 commits October 12, 2021 16:54

Unverified

This user has not yet uploaded their public signing key.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…ovider-routing.js

Co-authored-by: Robsdedude <[email protected]>

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…rovider-routing.test.js

Co-authored-by: Robsdedude <[email protected]>

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Co-authored-by: Robsdedude <[email protected]>

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.

Unverified

This user has not yet uploaded their public signing key.
…version
@bigmontz bigmontz requested a review from robsdedude October 14, 2021 10:19

Unverified

This user has not yet uploaded their public signing key.
Copy link
Member

@robsdedude robsdedude left a comment

Choose a reason for hiding this comment

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

LGTM. Some minor comments.

bigmontz and others added 4 commits October 14, 2021 14:58

Unverified

This user has not yet uploaded their public signing key.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…rovider-routing.test.js

Co-authored-by: Robsdedude <[email protected]>

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…rovider-routing.test.js

Co-authored-by: Robsdedude <[email protected]>

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
…rovider-routing.test.js

Co-authored-by: Robsdedude <[email protected]>
Copy link
Member

@robsdedude robsdedude left a comment

Choose a reason for hiding this comment

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

😈

@bigmontz bigmontz merged commit c43b56e into neo4j:4.4 Oct 14, 2021
@bigmontz bigmontz deleted the 4.4-introduce-protocol-version-4.4 branch October 14, 2021 15:14
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.

None yet

2 participants