Jetty, Windows and IdP 3.4
Rod Widdowson
rdw at steadingsoftware.com
Mon Aug 27 10:36:48 EDT 2018
> Re: jetty-ssl-context
> Per my other note, is there a compatibility limitation preventing is from just combining the truststore and keystore
settings? That
> would suck but it's understandable. We could defer that 4.0.
There are two issues, one painful, the other probably unfixable
The painful one is that if we want to do this with properties the deployer moves from having this
jetty.sslContext.keyStoreType=PKCS12
jetty.sslContext.keyStorePassword=My_Special_pass
jetty.sslContext.keyStorePath=Whatever.p12
to:
jetty.sslContext.keyStoreType=PKCS12
jetty.sslContext.trustStoreType=PKCS12
jetty.sslContext.keyStorePassword=My_Special_pass
jetty.sslContext.trustStorePassword=My_Special_pass
jetty.sslContext.keymanagerPassword=My_Special_pass
jetty.sslContext.keystoreStorePath=Whatever.p12
jetty.sslContext.trustStorePath=Whatever.p12
Which is confusing. Actually I think it sucks that we will even have to document this for the non-windows version, but that’s the
suckiness of Jetty for you. We could ship our own truststore (which is effectively what the idp.ini which is checked in right now
does) but that seems even more fraught.
The unfixable one is because we have allowed (and, actually, encouraged) absolute pathnames. I can probably work out how to replace
jetty.sslContext.keyStorePath=c:\path\to\pkcs12
with
jetty.sslContext.keyStorePath=..\..\..\..\path\to\pkcs12.
(and I have tested that that works), but if the keystore was on "d:\" then the deployer is SOL.
> Re: jetty-deploy.xml
> Same thing really...did we allow the warfile to be placed elsewhere such that we can't just generate idp.xml with the right
path in
> it?
Well, we have the property so people might have done anything. Will they have? I would be astounded (particularly for the war path,
the deploy path slightly less so). But we (wrongly) gave them the option so we have to respect it.
> Even if we did, do we know the path?
Not sure what you mean.
> If they can't touch idp.xml, which I think is true
Correct.
> I would advise we control that file anyway, and
> it's not that big a deal to generate it, it's not long.
When? I suppose we could do it during install (with pain), or as an add on to the "build" command - somewhere where we can get into
the flow and read the damn property file. For V4 I have no qualms about ditching this (useless) control point, the only question
being whether we bother to even warn on the old property. Could we get away with this in 3.4? I wouldn't like to risk it.
> Anywhere we have to pull in Jetty files is the place we'll run into compatibility bugs on simple Jetty updates because they don't
respect
> their own config in patches.
Absolutely and those three files do worry me. But I hope that by casting the documentation in terms of "the file differs from the
distributed one by these simple changes" we will avoid shipping breakage. And the changes *are* simple.
We would probably need to be proactive in watching the (or even the changes) as they happen. Anybody know how noisy the jetty
repository is? I'll subscribe to the change stream (I already do this for curl - and a large chunk of windows documentation) and
see what happens
It is the jetty-ssl-context changes that cause me the most angst, but I can live with that for 3.4 (it has been changing about three
times a year). We can come up with a plan for V4 (possibly a "prepare for upgrade" program). Jetty-deploy and logging-logback
change even less frequently.
But, going back over my notes for the last week, most of the pain was where things had just been broken on windows; i.e. not because
of semi-reserved files that we changed. By far the most painful part was finding and fixing the logging-lockback issue and that
only became visible because of the use of conditional imports in spring. Go figure.
The pain in jetty-ssl-context was really just a matter of reading and code and re-discovering the changes that we had had to make in
the 9.3 stream.
/R
More information about the dev
mailing list