Skip to content

Mark initialization of selector as privileged#5641

Closed
jasontedor wants to merge 1 commit intonetty:4.1from
jasontedor:selector-securely
Closed

Mark initialization of selector as privileged#5641
jasontedor wants to merge 1 commit intonetty:4.1from
jasontedor:selector-securely

Conversation

@jasontedor
Copy link
Copy Markdown
Contributor

Motivation:

Instrumenting the NIO selector implementation requires special
permissions. Yet, the code for performing this instrumentation is
executed in a manner that would require all code leading up to the
initialization to have the requisite permissions. In a restrictive
environment (e.g., under a security policy that only grants the
requisite permissions the Netty transport jar but not to application
code triggering the Netty initialization), then instrumeting the
selector will not succeed even if the security policy would otherwise
permit it.

Modifications:

This commit marks the necessary blocks as privileged. This enables
access to the necessary resources for instrumenting the selector. The
idea is that we are saying the Netty code is trusted, and as long as the
Netty code has been granted the necessary permissions, then we will
allow the caller access to these resources even though the caller itself
might not have the requisite permissions.

Result:

The selector can be instrumented in a restrictive security environment.

Motivation:

Instrumenting the NIO selector implementation requires special
permissions. Yet, the code for performing this instrumentation is
executed in a manner that would require all code leading up to the
initialization to have the requisite permissions. In a restrictive
environment (e.g., under a security policy that only grants the
requisite permissions the Netty transport jar but not to application
code triggering the Netty initialization), then instrumeting the
selector will not succeed even if the security policy would otherwise
permit it.

Modifications:

This commit marks the necessary blocks as privileged. This enables
access to the necessary resources for instrumenting the selector. The
idea is that we are saying the Netty code is trusted, and as long as the
Netty code has been granted the necessary permissions, then we will
allow the caller access to these resources even though the caller itself
might not have the requisite permissions.

Result:

The selector can be instrumented in a restrictive security environment.
@normanmaurer
Copy link
Copy Markdown
Member

Cherry-picked into 4.1 (a6dfd08) and 4.0 (9a3576f)

@jasontedor thanks!

@jasontedor jasontedor deleted the selector-securely branch August 5, 2016 17:06
@jasontedor
Copy link
Copy Markdown
Contributor Author

Thanks @normanmaurer!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants