Ivan, thanks for the explanation.  I added some log messages to the DSpaceAuthorizationFilter, and it is not getting executed as I navigate the OAI web service.

Since I am using SOLR to drive my harvester, I am leaning towards changing org.dspace.xoai.filter.SolrFilterResult to always search for "item.public:true".

    public SolrFilterResult()
        _nothing = false;

    public SolrFilterResult(String query)
    log.debug("XOAI SolrQuery: "+ query);
        _nothing = false;
        _where = "item.public:true AND " + query;

I have previously made a similar change to prevent moreLikeThis from returning non-public items by appending "read:g0" to queries.

Do you have any advice to offer on this approach?

Thanks, Terry

On Thu, Aug 22, 2013 at 5:14 AM, helix84 <helix84@centrum.sk> wrote:
On Wed, Aug 21, 2013 at 9:33 PM, Terry Brady <twb27@georgetown.edu> wrote:
> I would like the OAI harvester to honor my collection/item access rules.

Hi Terry,

like Ian correctly noted above, this functionality was dropped during
the DSpace 3 OAI rewrite.

One obvious solution to me would be to use the same approach as
bitstreamaccessFilter [1] uses. If I'm right, all you need to do is
copy the DSpaceAuthorizationFilter class [2] under a new name, change
the SQL query to select all items with Anonymous READ access, add your
new filter and configure your OAI context to use it in xoai.xml.

If you can make this work, please send us the code via Jira/GitHub, I
think we should include it again.

Please also note the Item state controversy [3] (there are now
multiple mutually inconsistent ways DSpace uses to hide items).

[1] https://github.com/DSpace/DSpace/blob/dspace-3.2/dspace/config/crosswalks/oai/xoai.xml#L230
[2] https://github.com/DSpace/DSpace/blob/dspace-3.2/dspace-oai/src/main/java/org/dspace/xoai/filter/DSpaceAuthorizationFilter.java
[3] https://wiki.duraspace.org/display/~bollini/DSpace+Item+state+definitions


Compulsory reading: DSpace Mailing List Etiquette

Terry Brady
Applications Programmer Analyst
Lauinger Information Technology