Return to Jive Software

Currently Being Moderated

SharePoint Integration v2.5.x & v3.0.0

VERSION 9  Click to view document history

Created on: Aug 22, 2008 2:40 PM by James Lee - Last Modified:  Apr 6, 2009 1:30 PM by James Lee

The SharePoint integration plugin gives your users the ability to search for SharePoint content, add links to SharePoint content from their Clearspace content, and view the contents of SharePoint locations. Please read the installation instructions before installing this plugin.

 

Deploying the Plugin

Use the Admin console to install the plugin as usual, it will require a restart of your Clearspace instance to complete the installation.

Configuring the Plugin

Setting up SharePoint and Clearspace

Before the Jive Clearspace SharePoint Integration plugin can be used, both the Clearspace and SharePoint administrators must set up their respective sites to accommodate the search utility.

 

SharePoint Installation Requirements:

The Jive Clearspace SharePoint Integration plugin supports the following installations of SharePoint:

  • WSS 3.0 with SP1 v12.0.06219
  • MOSS 2007 v12.0.0.6219

 

Web Services

Search Services needs to be be enabled in SharePoint for the plug-in to work.

 

Configuring SharePoint for Clearspace

Clearspace relies on SharePoint's indexing feature to provide direct links to SharePoint documents (used when adding links).  If a file type isn't indexed, Clearspace returns the SharePoint page the file is linked from, instead of the file itself.  In order to allow Clearspace to directly return all file types stored on SharePoint, the SharePoint admin should configure SharePoint to index all the file types stored on the SharePoint site.

 

See this article for more information: http://sharepointsearch.com/cs/blogs/notorioustech/archive/2007/07/17/the-sp-indexing-process-and-how-it-works.aspx

 

Setting up Search User Roles

Clearspace Search Results are gathered on behalf of a Clearspace Search User set up by the SharePoint Administrator.  All Clearspace users will search at the security permissions level of this User.

 

The Set-Up Process
  1. The SharePoint Admin receives from the Clearspace Admin a request to make a SharePoint site searchable.
  2. The SharePoint Admin sets up a User Role called ClearspaceSearchUser
  3. The SharePoint Admin gives the appropriate level of permission (usually Read, which provides read-only access to the site) to the User Role.
  4. The SharePoint Admin then sets up a User in that role with a login name and password.
  5. This login name and password are provided to Clearspace Admin, along with a URL to the SharePoint site and search webservices.
  6. The Clearspace Admin uses that info to add a SharePoint location (see below).

 

SHAREPOINT SECURITY WARNING:  Make sure to inform the SharePoint Administrator of the lowest security permissions level among your Clearspace user base, so that the SharePoint Admin can set the permissions for the ClearspaceSearchUser Role appropriately.  Sub-sites by default inherit the permission levels of the parent site, and should be adjusted separately as needed.

 

However, there is no user role in SharePoint that can prevent a user from viewing a file's indexed content.  Sensitive files, while they can be set not to be opened, will still be indexed, and as a result sensitive information could be viewable by people not cleared to view it.  The only way to guarantee that a file is not viewed is to avoid linking that SharePoint site to Clearspace!

 

Setting Up a SharePoint Location

Once you've installed the plugin, you'll need to configure Clearspace to be aware of SharePoint locations. With these connections made, users will have access to SharePoint from within Clearspace.

 

For each SharePoint location you add, Clearspace configures an OpenSearch engine. While you can change the OpenSearch settings, you should leave them unchanged -- instead, make all your SharePoint changes on the SharePoint Integration page.

 

  1. Log in as admin, go to System > Settings > SharePoint Locations.  
  2. Add a SharePoint location. For example, if the SharePoint instance is available on a server called example-location, it would look something like the following:

    Nameexample-location
    IconURLhttp://localhost:8080/clearspace/plugins/spintegration/logo_small.png
    SharePoint URLhttp://example-location/
    Site Webservices URLhttp://example-location/_vti_bin/webs.asmx
    Search Webservices URLhttp://example-location/_vti_bin/spsearch.asmx (for WSS 3.0)
    http://example-location/_vti_bin/search.asmx (for MOSS 2007)
    Query Test TermDocument
    (Pick something you know will return results from SharePoint search)
    Usernamedomain\username
    (Username must be in this format to be able to talk to a Windows SharePoint Server)
    PasswordPassword for the domain\username specified for the Username value.
    EnabledSelected
    SearchableSelected
    Maximum Number of Results15
    Content TypeAtom (this is only option available)

  3. Click Update.
  4. Make sure this entry shows up in the locations table with both "Enabled" and "Searchable" set as "Yes".
  5. To test the new location, press the "Test" button to the right of the new entry in the "SharePoint Locations" page.

 

Testing OpenSearch Engine Interaction

For each SharePoint location you add, Clearspace configures an OpenSearch engine. After adding your SharePoint locations, you can test the configuration by entering search terms that you know can be found in SharePoint content.

 

Note: While you can change the OpenSearch settings, you should leave them unchanged -- instead, make all your SharePoint changes on the SharePoint Integration page.

 

  1. Go to System > Settings > OpenSearch Engines.
  2. Make sure there is an OpenSearch engine entry by the same name as the SharePoint location name and it has "Results Inline", "Requires Authentication", "Enabled" properties set to "Yes".
  3. Click Test for this OpenSearch engine entry to check that it can fetch the results using the keyword "test".
  4. Log into Clearspace as another user and search. Make sure results from this OpenSearch engine provider show up under the "More Results" sidebar.

 

Using the Plugin

General Clearspace users have three ways of interfacing with the Jive Clearspace SharePoint Integration Utility: Searching, Browsing, and Adding Links to SharePoint Content.

 

To Search SharePoint Content:
  1. Type in your search terms in the Clearspace search field in the upper-right hand corner.
  2. The results from SharePoint sites appear in the "More Results" section on the right side of the page.

 

To Browse SharePoint Sites:
  1. Add the SharePoint Sites widget to your homepage (or a community/project/group homepage).  You can now view the available top level SharePoint sites.

 

To Add A Link to SharePoint Content:
  1. In the Document Editing window, click on the Add A Link icon (a linked chain).
  2. Click the "SharePoint Content" tab.
  3. Type in the search term, specify the site(s) to search ("Where to search"), the timeframe ("When to search"), and the maximum number of results to give ("Max Results").
  4. Click the plus (+) sign  to the right of the entry name to view additional information (author, file name, location in the SharePoint site).
  5. Click the radio button next to the item you wish to add as a link, and click "Insert" to add it.

 

Copyright and License

Copyright 2008 Jive Software

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 

http://www.apache.org/licenses/LICENSE-2.0

 

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

 

Source Code

You can check out the source code from the svn repository.

 

What's Inside

  • pom.xml -- Maven build file.
  • resources/
         content-picker.ftl -- Template for adding SharePoint search to Link Picker UI
         sample_sharepoint_opensearch.xml -- Sample files
         sample_splocatin_settings.txt -- Sample Files
         sp-sites-tree.css -- Style sheet for Sites Widget
         sp-sites-tree.ftl -- Template Sites Widget
         splocation-debug.ftl -- Debugging Information
  • src/main/java
         com/jivesoftware/clearspace/plugin/spi
             AdminSharepointLocation.java -- Interface for Admin SharePoint Location
             action/AdminSharepointLocationAction.java -- Admin SharePoints Locations Action
             action/SharepointContentPicker.java -- SharePoint Link Picker Action
             action/SpLocationDebug.java -- Debugging Code
             action/SpSearchAtomFeed.java -- Syndicate Feed generatoarot for OpenSearch Action
             impl/AdminSharepointLocationImpl.java -- SharePoint Location Object
             impl/dao/DbSharepointLocationDAO.java -- SharePoint Location DAO
             widget/SpSitesTreeWidget.java -- SharePoint Sites Widget
             ws/NtlmAuthenticator.java -- Basic Authentication object
             ws/SpLink.java -- SharePoint Link Object
             ws/SpSearchProvider.java -- Interface for OpenSearch Implementation
             ws/SpSearchProviderImpl.java -- Class responsible for making the SOAP call to SharePoint Search Web Service
             ws/SpSearchResultsAnalyzer.java -- Analyzes the raw Soap Response and parse the data into Syndicated Entries
             ws/SpSite.java -- SharePoint Site Object
             ws/SpSiteProvider.java -- Interface to get sites from SharePoint Site Web Service
             ws/SpSiteProviderImpl.java -- Class responsible for getting sites from SharePoint Site Web Service
             ws/SpSiteResultsAnalyzer.java -- Analyzes the raw Soap Response
             ws/SpSoapUtil.java -- Utility class for using SharePoint WebServices
             ws/SpSqlSearchQueryText.java -- Utility class
             ws/SpWebServiceCallResult.java --  WebService Result wrapper
             ws/SpWebServices.java -- WebServices wrapper
  • src/main/resources
         plugin_i18n.properties -- User interface strings.
         struts.xml -- Struts file mapping actions to action classes.
         plugin.xml -- Plugin configuration file.
         schema.xml -- Database schema description.
  • src/main/web
         license.html -- License information for plugin
         logo_large.gif -- Large Logo for plugin
         logo_small.gif -- Small Logo for plugin
         readme.html -- Readme available from Admin Plugins UI
  • src/main/web/resources
         content-picker.ftl -- Template for SharePoint search on Link Picker UI
         sharepoint-icon-site-16x16.png -- Logo image used to represent SharePoint integration in the UI.
         sample_sharepoint_opensearch.xml -- Sample File
         sample_splocatin_settings.txt -- Sample File
         settings-splocations.ftl -- Template for Admin SharePoint Locations UI
         sp-sites-tree.css -- Style sheet for Sites Widget
         sp-sites-tree.ftl -- Template Sites Widget
         splocation-debug.ftl -- Debugging Information
  • src/main/web/scripts
         spopensearch.js -- JavaScript for testing SharePoint Locations in Admin page

Building the Code

You can build this project using Maven.  From the command line, type mvn package.  It will generate target/spintegration.jar.

7,576 Views Tags: search, microsoft, sharepoint, 2.5, 3.0
Average User Rating
(0 ratings)
James Lee James Lee  says:

Per several requests, I updated the plugin with support for a more ajax'y front end.  So it will behave in a much better fashion when the SharePoint site is down or slow.

James Lee James Lee  says in response to James Lee:

New version today, should show 2.5.1 in the Admin UI now.  Fixed a couple of ajax bugs with the Widget.

Guillaume Champion Guillaume Champion  says:

Thank you for your new plugin release It is ok with widget but I have a new problem with it.

 

With the previous plugin (20081024 one) my search engine over sharepoint portal was OK but sharepoint sites widget make my customize-page freezing.

With this new plugin (20081118) my customize-page don't freeze but sharepoint connection don't work anymore.

I have this error : Error while connecting to the Main Site URL: java.net.ProtocolException: Server  redirected too many times (20)

 

Here is my Sharepoint Sites configuration :

KMD

test

Site: http://msbi/

WebService : http://msbi/_vti_bin/webs.asmx

Search WebServicehttp://msbi/_vti_bin/search.asmx (because with my MOSS 2007 there isn't spsearch.asmx, it was working with the previous plugin)

Query : test (documents exist was working with the previous plugin)

user : administrateur (was working with the previous plugin)

password : *******

search : check

enable : check

 

Can you help me ?

AmandaS AmandaS  says:

Hi - are there any screenshots anywhere of what this looks like in action?  Better yet, a demo space with this running?

 

Thanks.

Guillaume Champion Guillaume Champion  says in response to AmandaS:

Unfortunatly, it is a testing environment with no external connection. But I write more things to describe my problem with some of screen shots.

 

Clearspace with connection to Sharepoint environnement

 

Let me know if you need more things.

James Lee James Lee  says in response to Guillaume Champion:

The most recent changes were entirely at the presentation layer, changing only some version info in the plugin.xml and the widget freemarker files.  It should have no effect on the the connection to sharepoint, or search.

 

Is it possible something else has changed?  I have seen a problem like what you are reporting before when the url that is in the configuration uses a different server name then what sharepoint wants to use.

 

Example:

The config is: http://devsharepoint:80/_vti_bin/webs.amx

But if you type that in your browser, it redirects you to:

http://devsharepoint/_vti_bin/webs.amx

 

Try typing in your config url's into a browser and see if you get redirected.

Ariel Tikotsky Ariel Tikotsky  says in response to James Lee:

A question for James, Guillaumme and whoever uses the SharePoint plugin - how long does the configuartion on the MOSS side take?

Thanks

James Lee James Lee  says in response to Ariel Tikotsky:

If everything goes well, it usually takes me under an hour to install the plugin, configure it and make a few MOSS tweaks to get it working (create users, tweak system configs, etc).

 

If it doesn't go well, it can very difficult to debug, as not a lot of debugging information comes out of Sharepoint.  Usually it breaks down to several hours or days of pointing browsers at your Sharepoint site and hitting URLS and googling the error messages that Sharepoint returns.

certxg certxg certxg certxg  says in response to James Lee:

Good stuff.  You listed all the java and ftl files at the beginning of the discussion, would it be possible that you can also post the src jar, or any pointer to where it is available?

 

thanks,

James Lee James Lee  says in response to certxg certxg:

At the bottom of the document is a link to the svn repository where you can download the source:

 

https://svn.jivesoftware.com/svn/dev/repos/jive/plugins/sharepointintegration/trunk/

Gal Peleg Gal Peleg  says:

 

Hi James, I hope all is well.

 

First of all, thank you for what is amounting to be a terrific plugin!

 

I fear, however, that I have run into some problems early on, and was wondering if you (or any other member of the community for that matter) might be able to provide me with some insight. (I am a college intern and really have an opportunity to impress my boss here :)

 

I have successfully installed the plugin, but have not yet been able to retrieve information from our SharePoint server. Whenever I test the connection, I receive the following error message:

 

Error while connecting to the Search Web Service URL: DebugErrorMessage: The search request was unable to connect to the Search Service.

 

If I use search.asmx instead of spsearch.asmx in the SharePoint Location configuration, I only receive the following:

 

Error while connecting to the Search Web Service URL: DebugErrorMessage:

 

I am pretty sure I enabled all search and index features in the server’s central administration, but maybe I missed something? Also, please note that as I own both the CS and SP serves, I even tried using SP’s admin credentials in the CS configuration. I would be glad to provide you with any of my configuration settings.

 

Also, perhaps I am getting ahead of myself, but I have also had difficulty when trying to add the widget (the two problems are probably related), as it reads “Unable to load Sharepoint site data.”

 

Well, I thank you in advance for any help, and look forward to using the plugin!

 

All the best, Gal

 

 

 



James Lee James Lee  says in response to Gal Peleg:

If you login to the sharepoint site with the exact same credentials, can you perform a search and get results?

 

I have seen that same error, when a test server's trial license had expired.  Wonder if it is a similar issue.

Gal Peleg Gal Peleg  says in response to James Lee:

Yep, search works.

 

Also, I just tried running the search against our production server (up until now I had been testing the stageing one). Now, for some reason I get the following error (when using search.asmx):

 

 

Error while connecting to the Search Web Service URL: DebugErrorMessage: System.ArgumentNullException

 

Still getting the following (with spsearch.asmx):

 

 

Error while connecting to the Search Web Service URL: DebugErrorMessage: The search request was unable to connect to the Search Service.

 

Any ideas?

 



 

 



Steven Enoch Steven Enoch  says:

Hi James,

 

I am having a bit of a problem. I have installed the plugin and when I go to add a Sharepoint Location, it allows me enter all of the info, but when I hit the update button, it takes me out to the Sharepoint Locations page and says that the Sharepoint location was added successfully, but there is no location below. I am not getting any errors, it is just not saving the data.

 

Any suggestion?

Steven Enoch Steven Enoch  says in response to Steven Enoch:

Ok, it looks like when I install this plugin in a version of Clearspace running on the built-in database it allows me to add a location but when I install it in a version of Clearspace running on a postgres database it does not insert the data in to the database.

Steven Enoch Steven Enoch  says in response to Steven Enoch:

So I debuged the code an apparently when the splocations table is created the enabled column is created as an int, but when the codet tries to instert a location into the table it tries to insert a boolean value causing the instert to fail. I changed the column data type to boolean and it allows me to instert locations now on a postgres database.

James Lee James Lee  says in response to Gal Peleg:

Some searching turned up this result, that sounds very similar.

 

http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/218d6b0f-85d0-4b8d-9cd6-f91ab218fff2/

 

Does any of it apply to you?

James Lee James Lee  says in response to Steven Enoch:

Great catch, I have patched the code and tested it on mysql/postgres and oracle 10/11.  And they are all working now.  The code is live in svn, and I will have the compiled plugin (v2.5.2) posted in a bit.

James Lee James Lee  says in response to James Lee:

Ok, v2.5.2 now posted live.

 

Change Log

Fix DAO so that it works properly on non-embedded databases.

Steven Enoch Steven Enoch  says in response to James Lee:

Thanks for the quick fix. I have another question. Your documentation states :ws/NtlmAuthenticator.java -- Basic Authentication object, but as I understanded it NTLM is not truely basic authentication. Our SharePoint servers are setup for basic auth but not NTLM. I also noticed that it appearse to be using and passing the credentials of whoever is logged into the computer as opposed to the username and password that I am feeding it in the SharePoint Locations page. Is this perhaps just a difference between how NTLM functions on a Windows box as opposed to a Linux box?

James Lee James Lee  says in response to Steven Enoch:

That class is poorly named, it is actually just used for doing basicAuth for the http connection to the Sharepoint web services.  And I looked at the code, it is definitely only passing the auth that is stored in the splocations table in the DB.

 

Now if you are on windows, and your sever is running on windows.  I could see the windows net stack somehow falling back to NTLM auth if that is setup on your local network.  But it would be happening outside the scope of the plugin.

dnorrie dnorrie  says:

Does this work with the 3.0 version of Clearspace?

James Lee James Lee  says in response to dnorrie:

I have updated the source tree, trunk is now the v3.0 compatable version (https://svn.jivesoftware.com/svn/dev/repos/jive/plugins/sharepointintegration/trunk/) and there is a 2_5 branch (https://svn.jivesoftware.com/svn/dev/repos/jive/plugins/sharepointintegration/branches/2_5/).

 

You can download the latest trunk, and build using Maven.  I will also have a precompiled version posted sometime later this week, just waiting on some final testing/validation.

James Lee James Lee  says in response to James Lee:

Ok, v3.0 compatible plugin is up and ready for download.

hokim101 hokim101  says in response to James Lee:

Please help!

 

When I click on test  from Sharepoint Locaiton I get this error: Error while connecting to the Search Web Service URL: DebugErrorMessage: The search request was unable to connect to the Search Service.

 

When I click on test from OpenSearch Engine I get this error: Test failed: No results returned.

 

I set Search Webservices URL to be http://test.com/spaces/test/_vti_bin/spsearch.asmx.

If I open this URL from browser I see list of all operations: Query, QueryEx, Registration, Status

James Lee James Lee  says in response to hokim101:

If you log into the sharepoint site, using the same credentials you have used in the splocation config, can you search?

 

That error message is typically caused by the search functionality not working in sharepoint.

hokim101 hokim101  says in response to James Lee:

Yes I can...  This is for SBS 3.0.

Russell From Russell From  says:

I have been using the plugin and have noticed a problem with IE 6,7,8 where the Sharepoint search results are not clickable. This happens on clean machines, even after a fresh install. Firefox, Opera, Chrome all work fine and IE works on every other link inside Clearspace, just those result links in Clearspace have problems. Any ideas?

James Lee James Lee  says in response to Russell From:

Is this the basic search? (IE the box in the upper right).  Or the link picker, when you are making a document/post?

Russell From Russell From  says:

Its the basic search, the link picker has the same behavior.

Russell From Russell From  says:

Found the problem, the sharepoint instance was not using a FQDN, our corporate IE settings were also attributing to the problem. The clearspace site is in the trusted intranet zone but the unqualified FQDN links were silently blocked because they were treated as malicious links due to our IE drop rights settings. When the IP or domain name was added to the trusted sites list a security prompt came up and when accepted the links all worked as expected. The simple solution is to add an alternate access mapping to the FQDN in sharepoint and update the clearspace links in the plugin.

Russell From Russell From  says:

I am getting a 404 at /clearspace/admin/settings-attach!input.jspa, the sharepoint locations page. I have tried reinstalling the plugin and restarting clearspace. Any ideas on how I could clear this error?

 

It has been working fine until I added the alternate access mapping, but I don't see how that would affect the plugin.

Russell From Russell From  says in response to Russell From:

Fixed issue, database was corrupted. Had to recreate database entries for the plugin.

Dan Silvia Dan Silvia  says in response to James Lee:

James, do we need to do anything different for the sharepont integration plugin to work when the SharePoint URL,  Site Webservices URL, and the Search Webservices URL are going over https? I have added the user credentials in the sharepoint locations settings. I am getting a connection timeout when testing,"Error while connecting to the Main Site URL: java.net.SocketTimeoutException: connect timed out"  , I have modified the connection timeout to be longer but I still can not connect. We are trying to connect to  SharePoint 2007 instance.

 

Thanks

kranthi_venigalla kranthi_venigalla  says:

Please help!

 

I am getting an error when trying to add a sharepoint location "An unexpected error has occurred".

When i checked the logs it says:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.jivesoftware.clearspace.plugin.spi.impl.dao.DbSharepointLocationDAO
at com.jivesoftware.clearspace.plugin.spi.impl.AdminSharepointLocationImpl.getLocations(AdminSharepointLocationImpl.java:101)

Dan Silvia Dan Silvia  says in response to Guillaume Champion:

Hi Guillaume Champion Guillaume

 

Did you ever resolve the issue you were having witht the Protocol Exception? I am encountering this same issue and would like to know if you resolved the issue.

 

Thanks

Dan Silvia Dan Silvia  says in response to James Lee:

Hi James

 

I have installed the sharepoint integration plugin for 3.0x SBS.  I am able to search the sharepoint instance, which has Moss installed, that we have set up and we can see the tree view on our main page of our instance of SBS. However, for some reason when we search for a keyword we do not seem to get any results back from the sharepoint instance. I have made sure that I have set the seach visibility to index the site under the "Site Actions" tab. I looked at the logs of the sharepoint instance and see "The file you are attempting to save or retrieve has been blocked from this Web site by the server administrators". I have gone to the Central Admin. site and removed all files under the "Block File types". Do you have any idea why we may not be able to get results back from our sharepoint instance or what else we can do to troubleshoot our issue?

 

Thanks

Download Plugin for

Plugin Info

  • spintegration
  • by James Lee
  • Compatible with 2.5.x, 3.0.x
  • Last updated: 02/11/2009

Bookmarked By (5)

More Like This

  • Retrieving data ...

More by James Lee