Well, then `connect` will be inconsistent with other commands (e.g. `start
locator`) at best.

Geode is going to pick up the gfSecurity.properties file in your HOME
directory whether you want it to or not, and especially regardless of the
options given to either `start locator` or `start server` since Geode looks
in well known locations (work dir, HOME dir and CLASSPATH) for both
gemfire.properties and gfSecurity.properties, by default.

See here...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionConfigImpl.java#L864

Then here...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/DistributedSystem.java#L687

And finally, here...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/DistributedSystem.java#L690-L710

This...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/DistributedSystem.java#L691-L693

... is going to looking working directory (of the running GemFire
process... Locator/Server, Manager)

This...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/DistributedSystem.java#L700-L702

... checks the user's HOME dir, and finally...

This...

https://github.com/apache/geode/blob/rel/v1.2.0/geode-core/src/main/java/org/apache/geode/distributed/DistributedSystem.java#L709

... resorts to resolving the [gemfire|gfSecurity].properties files from the
CLASSPATH.


I am not opposed to the `connect` command changing in how it deals with
SSL, but it should be...

1. Obvious to the user
2. Consistent where it is not obvious.

$0.02

-John



On Thu, Aug 3, 2017 at 2:24 PM, Jinmei Liao <jil...@pivotal.io> wrote:

> I don't have any problem of having all the "security" info in another
> properties file, but the fact that it's still trying to load a property
> file even if the command did not say so explicitly. I might have such a
> file sitting in my home dir for some occasions, but I may not want to use
> it in this command. If I do want it to load a gfSecurity.properties, I
> would have just issued "connect
> --security-properties-file=gfSecurity.properties" instead. This feature is
> there just to, in my opinion, save user a few key strokes in typing out the
> command, but it can cause a lot of unnecessary confusion and implementation
> hassle.
>
>
> On Thu, Aug 3, 2017 at 9:46 AM, Kirk Lund <kl...@apache.org> wrote:
>
> > Historically, gfSecurity.properties is a companion to gemfire.properties
> in
> > which sensitive key/value pairs can be kept in. The log banner does not
> (or
> > did not) log any values in gfSecurity.properties. Users would also
> > typically protect gfSecurity.properties with tighter permissions than
> > gemfire.properties.
> >
> > At the same time SecurityLogWriter was introduced to the APIs (Cache,
> > DistributedSystem). The idea behind this was that all security related
> log
> > statements would go to a special log file with tighter permissions.
> >
> > I would prefer not having either gfSecurity.properties or
> > SecurityLogWriter.
> > Now that we use Log4J2 for logging, it would be pretty straightforward to
> > configure "security" loggers to log to a special log file without having
> a
> > dedicated SecurityLogWriter. As for gfSecurity.properties, we already
> > redact all security related values from logging, so the only value of
> > having it is that Users who have permissions to read gemfire.properties
> can
> > be blocked from viewing the contents of gfSecurity.properties. I don't
> know
> > if this is useful or still a requirement for existing Users or not.
> >
> > I think another purpose for gfSecurity.properties was to avoid having
> > system properties such as -Dmy.password=foo from showing up in the list
> of
> > Java processes when using a command such as ps. There must be a better
> way
> > to protect against exposing sensitive configuration values.
> >
> > On Wed, Aug 2, 2017 at 10:15 PM, Jinmei Liao <jil...@pivotal.io> wrote:
> >
> > > I am looking at a behavior of Gfsh's connect command using ssl. I am
> not
> > > sure whether it's a valid use case or just some side effect of
> spaghetti
> > > code.
> > >
> > > So if SSL is configured on locator, and we need to connect to it in
> Gfsh
> > > gfsh>connect --security-properties-file=ssl.properties
> > > this will try to load the file for ssl configs, and use that for
> > > connection, sounds good.
> > >
> > > gfsh> connect --use-ssl
> > > this will look for a gfSecurity.properties file in current location,
> home
> > > dir, or classpath in order and use that for connection. But if that
> file
> > > doesn't exist or empty, it will prompt for all the ssl info.
> > >
> > > So when user issues "connect --use-ssl", sometimes they will get
> > prompted,
> > > sometimes not depending on whether this "special" file exists somewhere
> > in
> > > your environment. This just does not feel right. I am wondering if
> > looking
> > > for this "special" file really a good feature?
> > >
> > > --
> > > Cheers
> > >
> > > Jinmei
> > >
> >
>
>
>
> --
> Cheers
>
> Jinmei
>



-- 
-John
john.blum10101 (skype)

Reply via email to