[Geoserver-devel] Upgrading Spring

Hey folks,

I am working on a project where I need to integrate some custom code into GeoServer that requires a newer version of spring than is currently used. I was wondering if anyone would be opposed to a spring upgrade on master?

If not, then the question becomes what to upgrade to? Currently the code base depends on spring 3.1.x. The current release of spring is 4.2.x. I haven’t explored how much work upgrading to 4.2.x will be but a while back I did look at upgrading to 3.2.x and the changes were pretty simple.

My vote (fwiw) would be to explore the upgrade to 4.2.x and if we encounter any blockers potentially upgrade to 3.2.x for the time being.

Let me know what y’all think.

Thanks!

-Justin

Hi,

For our product, it would be great to get further up the Spring release with GeoServer.

+1 from us

Chris Snider
Intelligent Software Solutions

-------- Original message --------
From: Justin Deoliveira jdeolive@anonymised.com
Date: 10/23/2015 12:11 PM (GMT-07:00)
To: Geoserver-devel Geoserver-devel@lists.sourceforge.net
Subject: [Geoserver-devel] Upgrading Spring

Hey folks,

I am working on a project where I need to integrate some custom code into GeoServer that requires a newer version of spring than is currently used. I was wondering if anyone would be opposed to a spring upgrade on master?

If not, then the question becomes what to upgrade to? Currently the code base depends on spring 3.1.x. The current release of spring is 4.2.x. I haven’t explored how much work upgrading to 4.2.x will be but a while back I did look at upgrading to 3.2.x and the changes were pretty simple.

My vote (fwiw) would be to explore the upgrade to 4.2.x and if we encounter any blockers potentially upgrade to 3.2.x for the time being.

Let me know what y’all think.

Thanks!

-Justin

+1 Now is the time with a fresh master branch.

···

On 23 October 2015 at 11:10, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Hey folks,

I am working on a project where I need to integrate some custom code into GeoServer that requires a newer version of spring than is currently used. I was wondering if anyone would be opposed to a spring upgrade on master?

If not, then the question becomes what to upgrade to? Currently the code base depends on spring 3.1.x. The current release of spring is 4.2.x. I haven’t explored how much work upgrading to 4.2.x will be but a while back I did look at upgrading to 3.2.x and the changes were pretty simple.

My vote (fwiw) would be to explore the upgrade to 4.2.x and if we encounter any blockers potentially upgrade to 3.2.x for the time being.

Let me know what y’all think.

Thanks!

-Justin



Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

+1. Upgrade on master would be welcome.

On 24/10/15 07:10, Justin Deoliveira wrote:

Hey folks,

I am working on a project where I need to integrate some custom code into
GeoServer that requires a newer version of spring than is currently used.
I was wondering if anyone would be opposed to a spring upgrade on master?

If not, then the question becomes what to upgrade to? Currently the code
base depends on spring 3.1.x. The current release of spring is 4.2.x. I
haven’t explored how much work upgrading to 4.2.x will be but a while back
I did look at upgrading to 3.2.x and the changes were pretty simple.

My vote (fwiw) would be to explore the upgrade to 4.2.x and if we encounter
any blockers potentially upgrade to 3.2.x for the time being.

Let me know what y’all think.

Thanks!

-Justin

------------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Ben Caradoc-Davies <ben@anonymised.com>
Director
Transient Software Limited <http://transient.nz/&gt;
New Zealand

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Great, thanks guys. I’ll report back when I make some progress.

···

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com.> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

···

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

Hey Christian,

Yes, I was planning to upgrade spring security as well. Unfortunately that is not proving to be very easy.

I tried jumping to 4.x but indeed the deprecated apis we are using are now gone. This impacts two of the most important classes in our security framework, one of them being GeoserverSecurityManager which more or less controls everything. Basically the base classes we are extending no long expose setter methods for various properties, with the only option begin to use constructor injection. Which is a major problem because we rely on those methods to change security configuration after the fact. I am not sure how to solve that… thoughts I have had (none of which are ideal).

  1. Update GeoServerSecurityManager and GeoServerFilterChain to be non-singletons so we can re-instantiate them when configuration changes. This would be a pretty far reaching change, especially for the dependencies of GeoServerSecurityManager.

  2. Require the user to restart GeoServer after making security configuration changes, or at least some kind of changes, basically when changing a provider or a filter.

  3. Copy + modify versions of the base class from spring security into our codebase… and re-instate those method we need. A pretty ugly hack :slight_smile:

Anyways, all things considered that is a little dirtier than I can afford to get my hands :slight_smile: So I was thinking for now just upgrading to the latest 3.x versions. However that also leads to some issues in the cas module. Knowing nothing about how the cas extensions work I’m not seeing obvious alternatives to the method calls we were using.

If you would be willing to take a look that would be awesome in case it’’s obvious what to do. I’ve pushed the current changes up to a branch in my git repo:

https://github.com/jdeolive/geoserver/tree/spring-upgrade

Everything should compile up to extension/security/cas.

Thanks!

-Justin

···

On Sat, Oct 24, 2015 at 5:45 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Hi Justin

Currently we use cas-client-core.jar version 3.1.12, the new version of spring security needs version 3.3.3.

The API of org.jasig.cas.client.session.SingleSignOutHandler has changed. This is the reason for the compile errors.

Not easy to solve, will have a lookt at it.

Cheers
Christian

···

On Sat, Oct 24, 2015 at 6:43 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Hey Christian,

Yes, I was planning to upgrade spring security as well. Unfortunately that is not proving to be very easy.

I tried jumping to 4.x but indeed the deprecated apis we are using are now gone. This impacts two of the most important classes in our security framework, one of them being GeoserverSecurityManager which more or less controls everything. Basically the base classes we are extending no long expose setter methods for various properties, with the only option begin to use constructor injection. Which is a major problem because we rely on those methods to change security configuration after the fact. I am not sure how to solve that… thoughts I have had (none of which are ideal).

  1. Update GeoServerSecurityManager and GeoServerFilterChain to be non-singletons so we can re-instantiate them when configuration changes. This would be a pretty far reaching change, especially for the dependencies of GeoServerSecurityManager.

  2. Require the user to restart GeoServer after making security configuration changes, or at least some kind of changes, basically when changing a provider or a filter.

  3. Copy + modify versions of the base class from spring security into our codebase… and re-instate those method we need. A pretty ugly hack :slight_smile:

Anyways, all things considered that is a little dirtier than I can afford to get my hands :slight_smile: So I was thinking for now just upgrading to the latest 3.x versions. However that also leads to some issues in the cas module. Knowing nothing about how the cas extensions work I’m not seeing obvious alternatives to the method calls we were using.

If you would be willing to take a look that would be awesome in case it’’s obvious what to do. I’ve pushed the current changes up to a branch in my git repo:

https://github.com/jdeolive/geoserver/tree/spring-upgrade

Everything should compile up to extension/security/cas.

Thanks!

-Justin

On Sat, Oct 24, 2015 at 5:45 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com…> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com.> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

Circling back on this one. So until the cas issue can be sorted out it looks like any upgrade to spring security is a no go. I was however able to update the base spring version to the latest 3.2 version. That at least gets us onto a version that is currently still being maintained, albeit probably for not much longer. Here is the pull request.

https://github.com/geoserver/geoserver/pull/1327

@Christian: any luck looking at the cas issue?

···

On Sun, Oct 25, 2015 at 10:23 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

Hi Justin

Currently we use cas-client-core.jar version 3.1.12, the new version of spring security needs version 3.3.3.

The API of org.jasig.cas.client.session.SingleSignOutHandler has changed. This is the reason for the compile errors.

Not easy to solve, will have a lookt at it.

Cheers

Christian

On Sat, Oct 24, 2015 at 6:43 PM, Justin Deoliveira <jdeolive@anonymised.com…> wrote:

Hey Christian,

Yes, I was planning to upgrade spring security as well. Unfortunately that is not proving to be very easy.

I tried jumping to 4.x but indeed the deprecated apis we are using are now gone. This impacts two of the most important classes in our security framework, one of them being GeoserverSecurityManager which more or less controls everything. Basically the base classes we are extending no long expose setter methods for various properties, with the only option begin to use constructor injection. Which is a major problem because we rely on those methods to change security configuration after the fact. I am not sure how to solve that… thoughts I have had (none of which are ideal).

  1. Update GeoServerSecurityManager and GeoServerFilterChain to be non-singletons so we can re-instantiate them when configuration changes. This would be a pretty far reaching change, especially for the dependencies of GeoServerSecurityManager.

  2. Require the user to restart GeoServer after making security configuration changes, or at least some kind of changes, basically when changing a provider or a filter.

  3. Copy + modify versions of the base class from spring security into our codebase… and re-instate those method we need. A pretty ugly hack :slight_smile:

Anyways, all things considered that is a little dirtier than I can afford to get my hands :slight_smile: So I was thinking for now just upgrading to the latest 3.x versions. However that also leads to some issues in the cas module. Knowing nothing about how the cas extensions work I’m not seeing obvious alternatives to the method calls we were using.

If you would be willing to take a look that would be awesome in case it’’s obvious what to do. I’ve pushed the current changes up to a branch in my git repo:

https://github.com/jdeolive/geoserver/tree/spring-upgrade

Everything should compile up to extension/security/cas.

Thanks!

-Justin

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Sat, Oct 24, 2015 at 5:45 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com…> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


@Justin, not so far, I hope to get a time gap at the weekend.

Christian

···

On Sat, Nov 7, 2015 at 6:14 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Circling back on this one. So until the cas issue can be sorted out it looks like any upgrade to spring security is a no go. I was however able to update the base spring version to the latest 3.2 version. That at least gets us onto a version that is currently still being maintained, albeit probably for not much longer. Here is the pull request.

https://github.com/geoserver/geoserver/pull/1327

@Christian: any luck looking at the cas issue?

On Sun, Oct 25, 2015 at 10:23 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

Hi Justin

Currently we use cas-client-core.jar version 3.1.12, the new version of spring security needs version 3.3.3.

The API of org.jasig.cas.client.session.SingleSignOutHandler has changed. This is the reason for the compile errors.

Not easy to solve, will have a lookt at it.

Cheers

Christian

On Sat, Oct 24, 2015 at 6:43 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Hey Christian,

Yes, I was planning to upgrade spring security as well. Unfortunately that is not proving to be very easy.

I tried jumping to 4.x but indeed the deprecated apis we are using are now gone. This impacts two of the most important classes in our security framework, one of them being GeoserverSecurityManager which more or less controls everything. Basically the base classes we are extending no long expose setter methods for various properties, with the only option begin to use constructor injection. Which is a major problem because we rely on those methods to change security configuration after the fact. I am not sure how to solve that… thoughts I have had (none of which are ideal).

  1. Update GeoServerSecurityManager and GeoServerFilterChain to be non-singletons so we can re-instantiate them when configuration changes. This would be a pretty far reaching change, especially for the dependencies of GeoServerSecurityManager.

  2. Require the user to restart GeoServer after making security configuration changes, or at least some kind of changes, basically when changing a provider or a filter.

  3. Copy + modify versions of the base class from spring security into our codebase… and re-instate those method we need. A pretty ugly hack :slight_smile:

Anyways, all things considered that is a little dirtier than I can afford to get my hands :slight_smile: So I was thinking for now just upgrading to the latest 3.x versions. However that also leads to some issues in the cas module. Knowing nothing about how the cas extensions work I’m not seeing obvious alternatives to the method calls we were using.

If you would be willing to take a look that would be awesome in case it’’s obvious what to do. I’ve pushed the current changes up to a branch in my git repo:

https://github.com/jdeolive/geoserver/tree/spring-upgrade

Everything should compile up to extension/security/cas.

Thanks!

-Justin

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Sat, Oct 24, 2015 at 5:45 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com03…> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com3…> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

Hey Christian,

Bringing the convo back on the public list since I think it’s important info for other devs and the PSC.

To answer the question I left the spring-security dependency as is because I was able to upgrade the spring dependency without it. While I don’t specifically have a need to upgrade spring security at the moment I think it’s a bad thing for the project to stay on an unmaintained version of it. And it will limit our ability to upgrade spring any further because moving to the core spring 4.x series will require an upgrade of spring-security to at least the 3.2.x version.

To recap the issues with spring-security upgrade:

  1. Moving to latest 3.2.x is doable safely except for the problems in the cas module.
  2. Moving to spring security 4.x is pretty much a no go at this point with the way the security subsystem is architected because it relies on some setter methods (which allow us to re-configure settings on the fly). Those setters are removed in the latest spring security and say to use constructor injection. This is a problem because those classes are singletons which means we can no longer re-configure them on the fly.

I think I wrote up some options to address (2) in a previous email but I’ll re-iterate here.

Option A: Simply require a GeoServer restart after changing security settings (authentication providers or security filters).
Option B: Do a major refactor of GeoServerSecurityManager and GeoServerFIlterChain so that instead of extending the spring security classes they delegate to them. That way the SS can be re-instantiated as needed when settings change.

Let me know if that all makes sense.

-Justin

···

On Mon, Nov 16, 2015 at 8:57 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

Hi Justin

I checked out your latest version of your “spring_upgrade” branch and I have seen you changed the spring-security version back to 3.0.5-RELEASE. Do you have a need to migrate to 3.2.9 ?

Cheers

Christian

On Thu, Nov 12, 2015 at 10:49 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

@Justin, not so far, I hope to get a time gap at the weekend.

Christian

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Sat, Nov 7, 2015 at 6:14 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Circling back on this one. So until the cas issue can be sorted out it looks like any upgrade to spring security is a no go. I was however able to update the base spring version to the latest 3.2 version. That at least gets us onto a version that is currently still being maintained, albeit probably for not much longer. Here is the pull request.

https://github.com/geoserver/geoserver/pull/1327

@Christian: any luck looking at the cas issue?

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Sun, Oct 25, 2015 at 10:23 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

Hi Justin

Currently we use cas-client-core.jar version 3.1.12, the new version of spring security needs version 3.3.3.

The API of org.jasig.cas.client.session.SingleSignOutHandler has changed. This is the reason for the compile errors.

Not easy to solve, will have a lookt at it.

Cheers

Christian

On Sat, Oct 24, 2015 at 6:43 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Hey Christian,

Yes, I was planning to upgrade spring security as well. Unfortunately that is not proving to be very easy.

I tried jumping to 4.x but indeed the deprecated apis we are using are now gone. This impacts two of the most important classes in our security framework, one of them being GeoserverSecurityManager which more or less controls everything. Basically the base classes we are extending no long expose setter methods for various properties, with the only option begin to use constructor injection. Which is a major problem because we rely on those methods to change security configuration after the fact. I am not sure how to solve that… thoughts I have had (none of which are ideal).

  1. Update GeoServerSecurityManager and GeoServerFilterChain to be non-singletons so we can re-instantiate them when configuration changes. This would be a pretty far reaching change, especially for the dependencies of GeoServerSecurityManager.

  2. Require the user to restart GeoServer after making security configuration changes, or at least some kind of changes, basically when changing a provider or a filter.

  3. Copy + modify versions of the base class from spring security into our codebase… and re-instate those method we need. A pretty ugly hack :slight_smile:

Anyways, all things considered that is a little dirtier than I can afford to get my hands :slight_smile: So I was thinking for now just upgrading to the latest 3.x versions. However that also leads to some issues in the cas module. Knowing nothing about how the cas extensions work I’m not seeing obvious alternatives to the method calls we were using.

If you would be willing to take a look that would be awesome in case it’’s obvious what to do. I’ve pushed the current changes up to a branch in my git repo:

https://github.com/jdeolive/geoserver/tree/spring-upgrade

Everything should compile up to extension/security/cas.

Thanks!

-Justin

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Sat, Oct 24, 2015 at 5:45 AM, Christian Mueller <christian.mueller@anonymised.com> wrote:

HI Justin

Do you plan to migrate Spring Security too ? Maybe we are using some depricated APIs, please let me know.

Christian

On Fri, Oct 23, 2015 at 10:07 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

Great, thanks guys. I’ll report back when I make some progress.



Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

DI Christian Mueller MSc (GIS), MSc (IT-Security)
OSS Open Source Solutions GmbH

On Fri, Oct 23, 2015 at 1:37 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Oct 23, 2015 at 9:21 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 Now is the time with a fresh master branch.

Agreed, +1

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


On Mon, Nov 16, 2015 at 7:17 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Option A: Simply require a GeoServer restart after changing security
settings (authentication providers or security filters).

I hope I'm stating the obvious for everyone, in saying this would be a
regression, and thus not really acceptable? :slight_smile:

About option B... hum... if you cannot change the status of an object via
setters, would it be possible to wrap
it with another object that delegates, and re-creates the delegate on state
change?
Just thinking out loud

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Mon, Nov 16, 2015 at 1:13 PM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

On Mon, Nov 16, 2015 at 7:17 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Option A: Simply require a GeoServer restart after changing security
settings (authentication providers or security filters).

I hope I'm stating the obvious for everyone, in saying this would be a
regression, and thus not really acceptable? :slight_smile:

It’s not ideal but I would say it is pretty common in a lot of software I

have seen, where you have to restart for a change in settings to finalize.
And really I wouldn’t expect the authentication provider and filter chain
settings to change all that often, once you have them set to whatever you
need you typically forget about them. The other security settings that
typically change more frequently would be unaffected. So I am not sure I
would consider it a regression but that’s up to the PSC to decide in the
end.

About option B... hum... if you cannot change the status of an object via
setters, would it be possible to wrap
it with another object that delegates, and re-creates the delegate on
state change?
Just thinking out loud

Yeah, that is what I meant more or less by option B.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Mon, Nov 16, 2015 at 10:08 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

It’s not ideal but I would say it is pretty common in a lot of software I

have seen, where you have to restart for a change in settings to finalize.
And really I wouldn’t expect the authentication provider and filter chain
settings to change all that often, once you have them set to whatever you
need you typically forget about them. The other security settings that
typically change more frequently would be unaffected. So I am not sure I
would consider it a regression but that’s up to the PSC to decide in the
end.

Indeed once setup it does not change often. But it changes very often while
setting it up: I've been sometimes cursing for a good hour
to get the desired setup, having to restart GeoServer at each attempt would
have made that quite a bit more frustrating.
Maybe smarter/more expert people can get it right in a couple of attempts,
I definitely could not :wink:

Thinking out loud, what if one has mutiple workspaces, and a new workspace
needs a different filter chain setup
than the others, think service provider scenario... would we have to
restart everybody's service to get a new workspace
configured properly? As said, not an expert, I may be misunderstanding.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Mon, Nov 16, 2015 at 10:08 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Yeah, that is what I meant more or less by option B.

What about a C option (haven't checked the details, so the suggestion might
not work, but still...)

I see that the list of providers is not copied nor wrapped... so basically
it's acting as a live list, and we have a getter... no?
I guess we'd need to initialize it with a concurrent list, a copy on write
should do the trick,
it's not modified often.

Something similar could probably be done for the FilterChainProxy
subclass... actually, in both cases, the removed
method could be added back leveraging this approach.

Cheers
Andrea
--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Mon, Nov 16, 2015 at 3:36 PM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

On Mon, Nov 16, 2015 at 10:08 PM, Justin Deoliveira <jdeolive@anonymised.com>
wrote:

Yeah, that is what I meant more or less by option B.

What about a C option (haven't checked the details, so the suggestion
might not work, but still...)

I see that the list of providers is not copied nor wrapped... so basically
it's acting as a live list, and we have a getter... no?
I guess we'd need to initialize it with a concurrent list, a copy on write
should do the trick,
it's not modified often.

Something similar could probably be done for the FilterChainProxy
subclass... actually, in both cases, the removed
method could be added back leveraging this approach.

Right, makes sense. Yeah, definitely worth pursuing this idea to see if it

can work.

Cheers
Andrea
--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------