I am not sure I follow everything that is happening here quite yet as I
have not had time to go over this in more detail and digest it.

But, I certainly hope that the security-manager property in Geode is not
impacted by this in anyway since *Spring Data Geode* builds on this and,
well, this
<https://github.com/apache/geode/blob/develop/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java#L355-L368>
[1],
as way to configure Geode (Integrated) Security.

Thanks,
John

[1]
https://github.com/apache/geode/blob/develop/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java#L355-L368


On Fri, Jun 9, 2017 at 1:11 PM, Kirk Lund <kl...@apache.org> wrote:

> Yeah I think we need #2 in the long run. Right now nearly all of the
> gemfire.properties are ignored if you use Cluster Config. The few
> gemfire.properties that are mutable by RuntimeDistributionConfigImpl will
> work when used in Cluster Config -- I believe all other gemfire.properties
> would be ignored until we complete #2.
>
> On Fri, Jun 9, 2017 at 1:02 PM, Udo Kohlmeyer <ukohlme...@pivotal.io>
> wrote:
>
> > +1 for #2. It does seem more correct
> >
> >
> >
> > On 6/9/17 12:45, Kirk Lund wrote:
> >
> >> The new changes for SecurityService don't work with Cluster Config. We
> >> only
> >> had one test that would've failed but it was annotated with @Ignore.
> >>
> >> The problem is this:
> >>
> >> The security-manager is a gemfire property and is now used by the
> >> InternalDistributedSystem because membership needs SecurityService to
> >> handle peer-to-peer authentication. So with my changes, the
> >> InternalDistributedSystem now creates SecurityService and passes it into
> >> the constructor of GemFireCacheImpl.
> >>
> >> Next, GemFireCacheImpl#initialize requests Cluster Config. If this is a
> >> new
> >> Server with no gemfire properties, it will have already joined the
> Cluster
> >> (before and after my changes). It then gets Cluster Config that has
> >> gemfire.properties including security-manager. But it's too late, the
> >> immutable SecurityService has already been created by
> >> InternalDistributedSystem.
> >>
> >> In theory, Cluster Config should be requested before the creation of
> >> InternalDistributedSystem so that other gemfire.properties in Cluster
> >> Config can be applied (such as member-timeout). In fact most of the
> >> gemfire.properties control aspects of InternalDistributedSystem.
> >> Presently,
> >> all gemfire.properties that would configure InternalDistributedSystem
> are
> >> ignored because Cluster Config is loaded after InternalDistributedSystem
> >> was created and the member has joined the cluster.
> >>
> >> We would need to make one of these changes:
> >>
> >> 1) GemFireCacheImpl creates its own SecurityService which is different
> >> from
> >> the one used by membership. Locators are the only members that really
> need
> >> membership to have a fully configured SecurityService (and I think we
> >> already have a bug in which 2nd Locators need to be manually configured
> >> rather than use Cluster Config).
> >>
> >> 2) Move Cluster Config request from GemFireCacheImpl to
> >> InternalDistributedSystem. This is actually more correct, since Cluster
> >> Config is potentially going to contain a lot of
> InternalDistributedSystem
> >> configuration options that are currently ignored (in both Geode 1.x and
> >> current develop).
> >>
> >> Unfortunately #2 is a fairly big refactoring change.
> >>
> >> We should probably revert my changes from develop and 1.2 until #1 or #2
> >> can be completed. Or we have to file a bug that says Cluster Config and
> >> Security don't play nice together until we can complete one of these
> >> options. I think the latter is probably not acceptable.
> >>
> >>
> >
>



-- 
-John
john.blum10101 (skype)

Reply via email to