Using Apache Camel CMIS with Sharepoint 2013 - sharepoint

I can successfully access Sharepoint 2013 AtomPub interface from Chrome REST clients, the following URL gives me the file I want:
http://ourintranet:100/personal/myname/_vti_bin/cmis/rest/5612e38e-a324-4030-9fee-7d05cd9053a4?getContentStream&objectId=4-512
However, using the same URL in the Camel CMIS route gets me HTTP 302 (File not found) and diverts me to an error page.
The route I tried is:
from("cmis:http://ourintranet:100/personal/myname/_vti_bin/cmis/rest/5612e38e-a324-4030-9fee-7d05cd9053a4?getContentStream&objectId=4-512")
.to("file:c:/myFolder")
Running Wireshark to see what is going on, it seems that Camel CMIS is not passing the query string part to the server, and may consider it options to the CMIS component (as per the component's usage guide).
So, what is the correct way of using Camel CMIS component with Sharepoint?

Have you tried adding parameter "query" to the uri like this
from("cmis:http://ourintranet:100/personal/myname/_vti_bin/cmis/rest/5612e38e-a324-4030-9fee-7d05cd9053a4?query=getContentStream&objectId=4-512")
.to("file:c:/myFolder")
According to http://camel.apache.org/cmis.html :
query | The cmis query to execute against the repository. If not specified, the consumer will retrieve every node from the content repository by iterating the content tree recursively

Related

The HTTP method is not allowed for the specified URL

We would like to use PUT, PATCH and DELETE methods when building our internal API in Domino, but I can't configure those methods. Server refusing to pass them.
When I used method PUT Domino replied to me:
Error code: 405 | Request method is not allowed by the server
After that I enabled methods via notes.ini
HTTPEnableMethods=GET,POST,PUT,DELETE,HEAD,PATCH
That seems to help a bit but now it says something about URL, but I do not really get what it means.
Error code: 405 | The HTTP method is not allowed for the specified URL
I have made tests on two different setups: with and without internet sites documents enabled in server documents.
Does anybody what I need to do to solve the problem above?
UPDATE
I just noticed a help text on Internet Site for "Methods" field.
GET, HEAD, and POST are the most commonly used methods. OPTIONS and TRACE are useful for debugging. PUT and DELETE should only be enabled if the Web site includes special CGI programs or Java applications that implement them.
Based on that it seems it is not possible to make PUT and DELETE work out of the box.

Is HTTP PUT access required for uploading to SharePoint via the SaveBinaryDirect method?

We have developed a .NET console application to do file uploading to a SharePoint 2016 document library. The application was built using the Microsoft.SharePoint2016.CSOM library, with file uploading using on the Microsoft.SharePoint.Client.File.SaveBinaryDirect() method call.
Based on results from a web vulnerability scanning, there was a request that the “HTTP PUT method” should be disabled in IIS. However after some testing, we found that
If “HTTP PUT” is enabled, the file upload is successful
If “HTTP PUT” is disabled, the console application would return a 404 error from the file uploading step
We would like to confirm whether “HTTP PUT method” is necessary (and cannot be disabled) for the SharePoint CSOM SaveBinaryDirect() method.
If you use Fiddler to monitor the request, you can find it's PUT request.
First of all, to access the SharePoint services(rest/web) the user should be authenticated. Its not like anyone can upload a file. People can use POST instead of PUT for uploading etc. So I am not sure what type of quality check you are using.
These are the out of the box services SharePoint is providing and I have seen very big enterprises using it without the changes you have suggested.

How to connect to a Notes DB from an Apache Server

I hope I use the propper terminology. Please correct me if not.
How to access an .nsf file with PHP ? I need to get some field values of tables for clients login purposes around the globe. Let`s say I need to validate if a client is registered and that value is stored in an xyz.nsf file. How to connect and how access it ?
Access your data with http/https request per URL.
You have several choices:
use out-of-the-box Domino URL commands like URL commands for opening documents by key
use IBM Domino Access Services (DAS)
create your own REST service based on ExtLib REST Service
create an XAgent which delivers the data as JSON (see example)
create your own Domino REST service using DAS
Choice #1 returns HTML. All others return JSON data which is probably best to handle with PHP. I'd go for choice #3 ExtLib REST Service.

How to split a cmis url into repository path and path with respect to repository?

I'm a GSoC'13 intern. I'm working on developing a CMIS UCP for Apache OpenOffice.
I wanted to know how to divide a url into its parts.
To fill the session parameters I need the url + path of the object in repo. separately.
Is there any other way?
If you know the path of an object, you can retrieve it using getObjectByPath, which is a method on org.apache.chemistry.opencmis.client.api.Session.
If you have an object and you want to know its path, you can call the object's getPaths() method, which returns a list of paths for the object (in repositories that support multi-filing, documents can have multiple paths, but folders can never be multi-filed).
The actual URL you would construct to navigate directly to the object using its path is repository-specific, unless you are using the browser binding (new in CMIS 1.1). But there aren't any production implementations of the CMIS 1.1 browser binding yet.

Enabling search for my site that uses rss

my site is here
The main flash app uses rss (or xml) to display data. I'm wondering how I can add search functionality to it. One idea is to create multiple custom rss for each filter and search query, but I thought that it would be a nightmare to add more data later on. So I'm wondering if there's another way to do it?
RSS feed is located here My site is hosted at edicy.com and I can't install any other server side extensions other than use XHTML, XML, HTML and Javascript.
Index your data using a search engine like solr or sphinx then have your flash app talk to the server to post a query to it and retrieve the results in XML

Resources