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

Karl Wright commented on CONNECTORS-754:
----------------------------------------

This graphic is especially useful:

http://www.wictorwilen.se/Media/Default/Windows-Live-Writer/How-Claims-encoding-works-in-SharePoint-_14813/image_10.png

So it appears that Microsoft replaces valid user and group names with "claim 
space names", when Claim Space is enabled, and in the SID world it is therefore 
necessary to lookup the group SID by taking the group name and decoding it to 
obtain the SID.

So one proposal to support Claim Space is as follows:
- The repository connector indexes the role names, group names, and user names 
which seem to have the READ permission, as already determined by the getACLs 
and getDocumentACLs methods in SPSProxyHelper.  But it does not attempt to map 
these to SIDs, and instead leaves them as claim space IDs (which I presume is 
in the Name field).
- The authority connector converts the incoming user to a SharePoint user 
(form: domain\user), then (a) looks up the group SIDs in Active Directory, 
converting them to Claim Space identifiers natively, and (b) looks up the 
SharePoint user claimspace ID, groups claimspace IDs, and role descriptions 
claimspace IDs, using the usergroup.asmx web service.

I don't know for sure whether this would work, and without a testbed system 
there would be no way to confirm it.  Otherwise it seems straightforward and 
worth a try.

> SharePoint connector does not work with claim space authentication properly
> ---------------------------------------------------------------------------
>
>                 Key: CONNECTORS-754
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-754
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: SharePoint 2010 MCPermissions extension, SharePoint 
> connector
>    Affects Versions: ManifoldCF 1.2
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>             Fix For: ManifoldCF 1.5
>
>         Attachments: MCPermissionsService-Claims.zip
>
>
> When the SharePoint Connector is used against a SharePoint claimspace 
> instance, it fails in the following ways:
> (1) The MCPermissions.asmx plugin is unable to write to the log.  
> "EventLog.XXX" is not allowed, apparently, under this configuration option.
> (2) It is needing to write to the log, which indicates there is some hidden 
> exception taking place that we aren't seeing.
> (3) When this fails, we're getting bad data returned from the list method, 
> which causes ArrayIndexOutOfBoundsException's being thrown in the relative 
> path manipulation code, due to the fact that the library/list name is not at 
> the front of the relative path, e.g.:
> {code}
> FATAL 2013-07-17 19:24:57,927 (Worker thread '46') - Error tossed: String 
> index out of range: 19
> java.lang.StringIndexOutOfBoundsException: String index out of range: 19
>     at java.lang.String.substring(String.java:1955)
>     at 
> org.apache.manifoldcf.crawler.connectors.sharepoint.SharePointRepository$FileStream.addFile(SharePointRepository.java:1890)
>     at 
> org.apache.manifoldcf.crawler.connectors.sharepoint.SPSProxyHelper.getChildren(SPSProxyHelper.java:655)
>     at 
> org.apache.manifoldcf.crawler.connectors.sharepoint.SharePointRepository.processDocuments(SharePointRepository.java:1411)
>     at 
> org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector.processDocuments(BaseRepositoryConnector.java:423)
>     at 
> org.apache.manifoldcf.crawler.system.WorkerThread.run(WorkerThread.java:559)
> {code}
> (Regardless of the full resolution of the problem, we should definitely 
> harden the connector against this kind of issue.)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to