Thanks, I'll try to delve into this.  We are currently using the parent
query parser, within we could use {!secure} I think.  Ultimately I would
want the solr qparser to actually do the work of parsing and I'd just wrap
that.  Are there any examples that I could look at for this?  It's not
clear to me what to do in the qparser once I have the user auths though.
Again thanks, this is really good stuff.
On Aug 18, 2015 8:54 PM, "Yonik Seeley" <ysee...@gmail.com> wrote:

> On Tue, Aug 18, 2015 at 8:38 PM, Jamie Johnson <jej2...@gmail.com> wrote:
> > I really like this idea in concept.  My query would literally be just a
> > wrapper at that point, what would be the appropriate place to do this?
>
> It depends on how much you are trying to make everything transparent
> (that there is security) or not.
>
> First approach is explicitly changing the query types (you obviously
> need to make sure that only trusted code can run queries against solr
> for this method):
> q=foo:bar&fq=inStock:true
> q={!secure id=user}foo:bar&fq={!secure id=user}inStock:true
>   you could even make the {!secure} qparser look for global security
> params so you don't need to repeat them.
> q={!secure}foo:bar&fq={!secure}inStock:true&security_id=user
>
> Second approach would prob involve a search component, probably that
> runs after the query component, that would handle wrapping any queries
> or filters in the prepare() phase.  This would be slightly more
> difficult since it would require ensuring that none of the solr code /
> features you use re-grab the "q" or "fq" parameters re-parse without
> the opportunity for you to wrap them again.
>
> > What would I need to do to the query to make it behave with the cache.
>
> Probably not much... record the credentials in the wrapper and use in
> the hashCode / equals.
>
> -Yonik
>
>
> > Again thanks for the idea, I think this could be a simple way to use the
> > caches.
> >
> > On Tue, Aug 18, 2015 at 8:31 PM, Yonik Seeley <ysee...@gmail.com> wrote:
> >
> >> On Tue, Aug 18, 2015 at 8:19 PM, Jamie Johnson <jej2...@gmail.com>
> wrote:
> >> > when you say a security filter, are you asking if I can express my
> >> security
> >> > constraint as a query?  If that is the case then the answer is no.  At
> >> this
> >> > point I have a requirement to secure Terms (a nightmare I know).
> >>
> >> Heh - ok, I figured as much.
> >>
> >> So... you could also wrap the main query and any filter queries in a
> >> custom security query that would contain the user, and thus still be
> >> able to use filter and query caches unmodified. I know... that's only
> >> a small part of the problem though.
> >>
> >> -Yonik
> >>
>

Reply via email to