[ 
https://issues.apache.org/jira/browse/SOLR-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109292#comment-13109292
 ] 

Karl Wright commented on SOLR-1895:
-----------------------------------

bq. The core of this path is an allow/deny matrix to lucene Query; this is 
applicable to many security strategies not just manifold.  My hope with 
introducing the AccessTokenService is to separate the user-to-token mapping

I agree - there should be a unified framework to the degree feasible.  This 
would allow common testing and reasonable maintenance across Lucene and Solr 
versions for the future.

For ManifoldCF, there's also an unrelated release-engineering question, 
specifically for the ManifoldCF-specific portion of the proposal, which is why 
we'd think introducing a code dependency on something like Solr/Lucene would be 
a good idea, especially since we'd be building a jar specifically for 
deployment within Solr.  We do this reluctantly for a couple of other 
connectors but it's a complete one-of each time and requires a great deal of 
work by end users.  This inconvenience greatly impacts the level of deployment 
of the affected connectors.  Since Solr is Apache licensed we could make this 
easier in Solr's case, but probably not without redistributing a specific 
version of Solr and Lucene, and providing build targets which fire up an 
already configured Solr/Lucene instance.  We would need this also for testing, 
if the plugin code lived in ManifoldCF.  It is also the case that the current 
ManifoldCF search component needed significant rework even to build between 
version 3.x and version 4.x, because many of the classes that were necessary 
changed their packages.  Thus we'd need to redistribute more than one 
Solr/Lucene instance, and release perhaps twice as frequently to keep up.

Given all that, does everyone still think it is desirable for ManifoldCF to 
build Solr components itself?  The alternative would be a Solr contrib module, 
which I'd be very happy with.  To me, it is the obvious choice if you want a 
straightforward overall user experience.  The underlying http-based protocol 
that the component will need to use is well-defined, quite complete, and is 
unlikely to change.



> ManifoldCF SearchComponent plugin for enforcing ManifoldCF security at search 
> time
> ----------------------------------------------------------------------------------
>
>                 Key: SOLR-1895
>                 URL: https://issues.apache.org/jira/browse/SOLR-1895
>             Project: Solr
>          Issue Type: New Feature
>          Components: SearchComponents - other
>            Reporter: Karl Wright
>              Labels: document, security, solr
>             Fix For: 3.5, 4.0
>
>         Attachments: LCFSecurityFilter.java, LCFSecurityFilter.java, 
> LCFSecurityFilter.java, LCFSecurityFilter.java, 
> SOLR-1895-service-plugin.patch, SOLR-1895-service-plugin.patch, 
> SOLR-1895.patch, SOLR-1895.patch, SOLR-1895.patch, SOLR-1895.patch, 
> SOLR-1895.patch, SOLR-1895.patch
>
>
> I've written an LCF SearchComponent which filters returned results based on 
> access tokens provided by LCF's authority service.  The component requires 
> you to configure the appropriate authority service URL base, e.g.:
>   <!-- LCF document security enforcement component -->
>   <searchComponent name="lcfSecurity" class="LCFSecurityFilter">
>     <str 
> name="AuthorityServiceBaseURL">http://localhost:8080/lcf-authority-service</str>
>   </searchComponent>
> Also required are the following schema.xml additions:
>    <!-- Security fields -->
>    <field name="allow_token_document" type="string" indexed="true" 
> stored="false" multiValued="true"/>
>    <field name="deny_token_document" type="string" indexed="true" 
> stored="false" multiValued="true"/>
>    <field name="allow_token_share" type="string" indexed="true" 
> stored="false" multiValued="true"/>
>    <field name="deny_token_share" type="string" indexed="true" stored="false" 
> multiValued="true"/>
> Finally, to tie it into the standard request handler, it seems to need to run 
> last:
>   <requestHandler name="standard" class="solr.SearchHandler" default="true">
>     <arr name="last-components">
>       <str>lcfSecurity</str>
>     </arr>
> ...
> I have not set a package for this code.  Nor have I been able to get it 
> reviewed by someone as conversant with Solr as I would prefer.  It is my 
> hope, however, that this module will become part of the standard Solr 1.5 
> suite of search components, since that would tie it in with LCF nicely.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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

Reply via email to