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

STORM-2556 Break down AutoCreds implementations into two kinds of cla… #2161

Merged
merged 1 commit into from
Jun 21, 2017

Conversation

HeartSaVioR
Copy link
Contributor

@HeartSaVioR HeartSaVioR commented Jun 15, 2017

…sses

  • Nimbus plugin: implements INimbusCredentialPlugin, ICredentialsRenewer
  • Worker & Topology submitter: implements IAutoCredentials
  • also changed field name for storm-core interfaces to make them clear
    • whether it's cluster conf or topology conf

I also removed cluster-wide configurations, since it was also confusing me, and may open potential security vulnerability. (Even small code change could open it)

Because of fixing two things, this breaks backward compatibility. Hope this is OK.

Please review and comment. Thanks in advance!

@revans2
Copy link
Contributor

revans2 commented Jun 15, 2017

I am fine with splitting things up, but I am not super excited about how we setup the Abstract* classes. Perhaps it is just how we are naming them, because there are a lot of things in them that are very Hadoop specific, aka UserGroupInformation. Could we at least rename the current set of Abstract base classes to have Hadoop somewhere in the name? If you want to go overboard we could look at truly providing a generic base class for credentials that has pluggable pieces for pulling out the raw string credentials (similar to CredentialKeyProvider), deserializing them, and putting them in the Subject correctly. Then on the other side getting the credentials, serializing them to a string, and finally putting them into the string credentials object (again similar to CredentialKeyProvider).

@HeartSaVioR
Copy link
Contributor Author

@revans2
Totally agreed. Currently it's tightly coupled with Hadoop security but is not represented in abstract class name. I'll see whether we can extract non-Hadoop things from current abstract base classes, and rename current classes to represent Hadoop.

…sses

* Nimbus plugin: implements INimbusCredentialPlugin, ICredentialsRenewer
* Worker & Topology submitter: implements IAutoCredentials
* Add 'Hadoop' to abstract classes which depends on Hadoop
* also changed field name for storm-core interfaces to make them clear
  * whether it's cluster conf or topology conf
@HeartSaVioR
Copy link
Contributor Author

@revans2
I renamed abstract classes to have 'Hadoop' on their name.
Btw I don't see other cases to not using Hadoop, hence not sure that generalization provides some benefits for now. If you see some benefits, let's file an issue and track it.

@revans2
Copy link
Contributor

revans2 commented Jun 21, 2017

@HeartSaVioR I don't think more generalization is a benefit. My comment was mostly around making it hadoop specific or truly making it generic.

Copy link
Contributor

@revans2 revans2 left a comment

Choose a reason for hiding this comment

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

+1 looks good to me

@HeartSaVioR
Copy link
Contributor Author

@revans2 OK. Got it. Thanks for reviewing!

@asfgit asfgit merged commit 9ca6d95 into apache:master Jun 21, 2017
@HeartSaVioR HeartSaVioR deleted the STORM-2556 branch June 29, 2017 13:48
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.

3 participants