-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Michael,

On 1/28/20 3:51 PM, Michael Osipov wrote:
> Am 2020-01-25 um 12:13 schrieb Mark Thomas:
>> On 23/01/2020 10:29, Michael Osipov wrote:
>> 
>> <snip/>
>> 
>>> Design questions: * Shall this remain a listener or do we want
>>> to introduce a new interface for that? If yes, how should it
>>> look like?
>> 
>> Given the use cases (could apply at various levels) a
>> LifecycleListener looks like a reasonable design choice to me.
>> 
>> I don't see the need for an additional interface (although I
>> could be persuaded if someone else makes an argument for one)
>> 
>>> * Where can this element be placed? Only in context.xml? Also
>>> in server.xml? If yes, at which level are contexts available to
>>> be modified? Can this be placed in server.xml at all?
>> 
>> LifecycleListener can be placed on most elements so it gives
>> plenty of flexibility.
>> 
>>> If it remains as a listener, I would be willing to donate my
>>> listener to the Tomcat codebase and add support for file:// or
>>> other stuff required.
>> 
>> Fantastic. Thank you. Take a look at the ConfigFileLoader. All
>> Tomcat config should be loaded through that.
>> 
>>> From my understanding, the mapping source can be arbitrary:
>>> inline, database, file, etc.
>> 
>> Agreed.
> 
> Great, I will pick this up next month and have a look how the 
> ConfigFileLoader works. I hope I can cover at least all current
> cases.
> 
> I wonder now which of the components implementing Container should
> be subject to this listener?
> 
> Engine, Host, Context? Context is trivial, but the rest? They
> start before the contexts, I cannot simply say Host#findChildren()
> at CONFIGURE_START_EVENT. It does not make sense logically.
> 
> At the moment the Context seems to be the only viable place unless
> the mappings are held in memory unless all contexts load and query
> them. This would require to change the Container interface.
> 
> Comments?

I think this only makes sense at the <Context> level because the
security-roles are all defined at the context-level as well. They may
be shared across a bunch of applications, but that's just a coincidence.

Mapping this across multiple <Context>s won't be a huge burden, given
the other options.

Another option might be to allow a LifecycleListener to attach some
information to a <Host> (not sure where that might be) and then you
can have /another/ LifecycleListener attached to the <Context>. The
global one defines the mapping but doesn't actually take any action.
The <Context>-attached LifecycleListener then looks-up the tree to
parent components looking for the mappings, and applies them as the
context is being deployed.

Seems more work than necessary, though. Just have admins bless each
<Context> and be done with it.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl4wrKwACgkQHPApP6U8
pFjKxw/7BNjDmsU1BHXUqEXbyxKcpHsP3x+iz++ECzkFiSse2kfSff018KSsqjYk
nosqP9TVTGbFA/7UV94TBNY8s2UbzN+bJAOveLweIU1CPTo8bcI9lpBwnnGezBci
PBMhw7BtAOcf9rCrSTZQSOeU1AkGHvoF+ikMfoqPGdbm0vbV9PJWZwcTbM/ILM9Q
jKkbZPTnaQyKmoJWZnMiJaa+JnzhJebCmQljQI+6E7r9mH2XixBiExG0ZljwwU8c
HvpObmOy/rjibUeR2XUZ/QtRYoBVWEBBa8dvysr63m9t9Vrz5kqMDUMkdSloc/6i
8I4/ZQWZ0FHjfM/3KB+Ng0L5rXzmeD6zasyTW6QTOQ9y9Uk+7EsGo9dCB+ei2yWv
3/PP0rTurt5/KycUKKUxHnTLPeYZ/RM62FPruxjmGhIy9MVpltTc22dLeTWgIEpg
Ztcc+tNAEkZ6WKNYMGiCUQkhh/LlZjgIWTqdq+GEFETzFVukekqjmqp32PUMZS8P
apAGiPvvzPzpRzJnxbB0hDQqFMd6uNpMVIQfZwfLJ9Ja1qLXak3NItwg87doYazj
tUYFofam73LIJ0CbIC2maIRInIP9+OfNVEZfZQTkCIZn4onb+MY8VKM5U3Z/41mt
xI6ewxcaxoX3pJ7I+BP3A8yxj2+nbMMz36Q9J+cWwEUNUoNcRco=
=1DpC
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to