Hi Justin,

Thanks. I forgot to mention that I had seen the TransactionPlugin extension point; that one is awesome and I see how to use it support my second suggestion.

Would changes in the GML2/3ParsingUtils to inject attributes into a SimpleFeature's userData be sensible / more broadly useful? I'm a bit shy about pushing hard for such a change since I am not sure about any other ramifications.

Thanks,

Jim

On 04/08/2016 10:45 AM, Justin Deoliveira wrote:

Hey Jim,

The wfs native element might be the cleanest way to handle this. I’ve seen folks use it before for security and validation type stuff with some success. In GeoServer you can plug in WFS transactions callbacks pretty easily using the TransactionPlugin <[https://github.com/geoserver/geoserver/blob/master/src/wfs/src/main/java/org/geoserver/wfs/TransactionPlugin.java]%28https://github.com/geoserver/geoserver/blob/master/src/wfs/src/main/java/org/geoserver/wfs/TransactionPlugin.java> extension point. It has direct access to the transaction object which has the native content on it.

If you do want to go with approach (1): during GML parsing I don’t believe there is any way to tag a GML attribute as something you want to store in user data. Folks might correct me on that one though. To support it I wonder if we could do something simple like a custom attribute on the gml attribute element. Something like:

|<ns:someAttribute userData=“true”>foo</ns:someAttribute> |

One potential downside might be validation… however in GeoServer last I checked we don’t validate features on the way in… mostly because it’s a pain to have to specify all the schema references properly so a parser can actually validate. It may also be there in the gml schema there is some attribute we might be able to use /abuse for this purpose… I can’t think of one off hand though.

As far as I know the feature parsing logic still lives in the GML3ParsingUtils and GML2ParsingUtils classes. To add some support for putting an attribute in user data rather than a normal attribute I think you would be looking at modifying this method <[https://github.com/geotools/geotools/blob/master/modules/extension/xsd/xsd-gml2/src/main/java/org/geotools/gml2/bindings/GML2ParsingUtils.java#L338-L362]%28https://github.com/geotools/geotools/blob/master/modules/extension/xsd/xsd-gml2/src/main/java/org/geotools/gml2/bindings/GML2ParsingUtils.java#L338-L362>.

As you’ll notice this only applies to simple features. If working with complex features i am actually not sure where that logic lives anymore. One of the app-schema folks can point you at that if need be.

Hope that helps!

-Justin



On Fri, Apr 8, 2016 at 8:09 AM Jim Hughes <jn...@ccri.com <mailto:jn...@ccri.com>> wrote:

    Hi all,

    Apologies for the cross-post, but my question hits a little of how
    GeoServer handles WFS transactions and a little bit of how
    GeoTools may
    handle WFS/GML parsing.

    My high-level goal is to find a way to add security info to a WFS
    transaction.  I can see three big options:  1. add some bits to
    the GML
    feature / WFS call which would set a SimpleFeature's userData or
    otherwise provide additional data, 2. leverage a WFS 'Native' tag,
    or 3.
    store the security info in the SimpleFeature.

    I've got a pretty good handle on the last two options.  The first
    option
    would provide the greatest flexibility, so I'm wondering if anyone can
    help point me in the right direction there.  (Or otherwise say
    that this
    is impossible without re-writing GT/GS XML handling...)

    Thanks in advance,

    Jim

    
------------------------------------------------------------------------------
    _______________________________________________
    GeoTools-Devel mailing list
    GeoTools-Devel@lists.sourceforge.net
    <mailto:GeoTools-Devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geotools-devel


------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to