Josh, But I can't find any place in your code that you mention to HTTPS. I tried to do that and it works fine for me but when I try to connect to your VCL server I got following error:
<?xml version="1.0" encoding="iso-8859-1"?> <methodResponse> <fault> <value> <struct> <member> <name>faultString</name> <value> <string>Access denied</string> </value> </member> <member> <name>faultCode</name> <value> <int>3</int> </value> </member> </struct> </value> </fault> </methodResponse> On Tue, Dec 6, 2011 at 3:12 PM, Josh Thompson <josh_thomp...@ncsu.edu>wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Mani, > > It is definitely using https. I think what you referenced below is just > configuration of the http protocol, which would be the same for http and > https. If I was trying to do what you are doing, I'd set up a test VM > somewhere with a really simple php script that has a single XMLRPC function > that is not using SSL. Then, I'd work on making a java class that can work > with that and also send additional http headers. > > Josh > > On Saturday December 03, 2011, Mani Shafa'atDoost wrote: > > Josh, > > > > Thank you. Problem is that I am using a test account from > > http://vcl.ncsu.edu/ and I can't disable SSL, but as far as I know you > are > > using http requests not https: > > > > $context = stream_context_create( > > array( > > '*http*' => array( > > 'method' => "POST", > > 'header' => $header, > > 'content' => $request > > ) > > ) > > ); > > > > I tried XML standard queries but I receive permission denied error, I > don't > > know if the problem is with (http,https) or with my queries. I guess they > > have some more information in their request. > > By the way, do you know how can I know what this function sends to > server : > > file_get_contents(self::VCLHOST.$location, false, $context) > > > > > > Best Regards > > Mani > > > > On Fri, Dec 2, 2011 at 9:04 AM, Josh Thompson <josh_thomp...@ncsu.edu > >wrote: > > > -----BEGIN PGP SIGNED MESSAGE----- > > > Hash: SHA1 > > > > > > Mani, > > > > > > The frontend code is not using Cookie for anything when the XMLRPC API > is > > > used. > > > > > > I'm not actually sure about the XML part. All of the XMLRPC code is > just > > > using php's built in XMLRPC stuff: > > > > > > http://us.php.net/manual/en/book.xmlrpc.php > > > > > > Almost all of the XMLRPC related code is in xmlrpcWrappers.php. The > only > > > part > > > that isn't in that file is in utils.php where the functions are > > > registered (xmlrpccall) and called (xmlRPChandler). > > > > > > You may be able to disable SSL and do some packet captures to actually > > > see what is getting passed back and forth. To disable SSL, you at > least > > > need to > > > remove the check and redirect for it in index.php. I can't remember > > > offhand > > > if there is anything else you need to do. > > > > > > Another option would be to write some simple php XMLRPC code separate > > > from VCL, but similar to it, and do packet captures with that. > > > > > > Josh > > > > > > On Thursday December 01, 2011, Mani Shafa'atDoost wrote: > > > > Josh, > > > > > > > > ok, I am going to write a wrapper class . but I need some > information > > > > about your xml formating. > > > > as far as I know I should send something like this : > > > > > > > > Content-Type: text/xml > > > > X-User: username . > > > > X-Pass: password > > > > Cookie: something > > > > X-APIVERSION: 2 > > > > > > > > > > > > <?xml version="1.0"?> > > > > <methodCall> > > > > > > > > <methodName>example</methodName> > > > > <params> > > > > > > > > <param> > > > > > > > > <value><i4>41</i4></value> > > > > </param> > > > > > > > > </params> > > > > > > > > </methodCall> > > > > > > > > so these are my questions: > > > > should I send cookie or it is an optional thing? > > > > in method params, which kind of params do you have? it is just int, > or > > > > > > you > > > > > > > have boolean and string as well. > > > > also what about your answer XML. is it consists of Integer or it has > > > > some other things? > > > > > > > > Best Regards > > > > Mani > > > > > > > > On Thu, Dec 1, 2011 at 9:13 AM, Josh Thompson < > josh_thomp...@ncsu.edu > > > > > > > >wrote: > > > > > -----BEGIN PGP SIGNED MESSAGE----- > > > > > Hash: SHA1 > > > > > > > > > > Mani, > > > > > > > > > > - From what you described, it doesn't sound like you have the > option > > > > > to set additional http headers. I remember running in to that with > > > > > one of the perl > > > > > XMLRPC libraries. It didn't really expose a way to set additional > > > > > http headers; so, I think I had to make a new class that inherited > > > > > the provided one > > > > > with some modified functions allowing the additional headers to be > > > > > set. > > > > > > > > > > The problem here is that I couldn't find any way of doing > > > > > > authentication > > > > > > > > with > > > > > XMLRPC other than basic auth, which wasn't an option in our (NCSU) > > > > > environment. So, I added the requirement of using additional http > > > > > headers that provide the necessary authentication bits. > > > > > Unfortunately, not all XMLRPC > > > > > libraries expose a way to set additional http headers. > > > > > > > > > > If anyone knows of another way of doing XMLRPC authentication, > please > > > > > > let > > > > > > > > me > > > > > know. > > > > > > > > > > Josh > > > > > > > > > > On Wednesday November 30, 2011, Mani Shafa'atDoost wrote: > > > > > > Josh, > > > > > > > > > > > > In java for XMLRPC calls, you have one execute function that > > > > > > accepts > > > > > > 2 > > > > > > > > > arguments. First one is the "Method name" and second one is a > list > > > > > > of > > > > > > > > > parameters that we need to pass to this function. so where > should I > > > > > > put > > > > > > > > > this header? in parameter[0]? > > > > > > Also there is a config that can be set before execute a method. > > > > > > this > > > > > > > > > > config > > > > > > > > > > > can set following things: > > > > > > > > > > > > basicUserName > > > > > > basicPassword > > > > > > basicEncoding > > > > > > contentLengthOptional > > > > > > enabledForExceptions > > > > > > enabledForExtensions > > > > > > encoding > > > > > > gzipCompressing > > > > > > gzipRequesting > > > > > > > > > > > > I know, we need to set up this header somewhere, but I am not > sure > > > > > > > > > > where. I > > > > > > > > > > > will appreciate if you tell me which part of code is handling > this > > > > > > RPC > > > > > > > > > request in VCL. > > > > > > > > > > > > > > > > > > Best Regards > > > > > > Mani > > > > > > > > > > > > On Wed, Nov 30, 2011 at 3:22 PM, Josh Thompson > > > > > > > > > > <josh_thomp...@ncsu.edu>wrote: > > > > > > > -----BEGIN PGP SIGNED MESSAGE----- > > > > > > > Hash: SHA1 > > > > > > > > > > > > > > Mani, > > > > > > > > > > > > > > I'm not clear on what you are saying you are passing a first > and > > > > > > > second argument to. > > > > > > > > > > > > > > For every API call (except when calling XMLRPCaffiliations), > > > > > > > you'll > > > > > > > > > > need > > > > > > > > > > > > to have X-User, X-Pass, and X-APIVERSION added to the HTTP > > > > > > > headers > > > > > > to > > > > > > > > > > provide authentication to the vcl frontend. > > > > > > > > > > > > > > Josh > > > > > > > > > > > > > > On Wednesday November 30, 2011, Mani Shafa'atDoost wrote: > > > > > > > > Josh, > > > > > > > > > > > > > > > > As far as I understood, I need to pass the function name as > > > > > > > > first > > > > > > > > > > > > > > argument > > > > > > > > > > > > > > > and for second one I need to add a list of parameters. For > > > > > > > > first > > > > > > > > > > > > > > parameter, > > > > > > > > > > > > > > > I need to pass Header which consist of following things: > > > > > > > > $header = "Content-Type: text/xml\r\n"; > > > > > > > > > > > > > > > > $header .= "X-User: " . $this->username . "\r\n"; > > > > > > > > $header .= "X-Pass: " . $this->password . "\r\n"; > > > > > > > > $header .= "Cookie: " . $_SERVER["HTTP_COOKIE"] . > > > > > > > > "\r\n"; $header .= "X-APIVERSION: 2"; > > > > > > > > > > > > > > > > so, is it necessary to add all of these things to header? > > > > > > > > > > > > > > > > Best Regards > > > > > > > > Mani > > > > > > > > > > > > > > > > On Wed, Nov 30, 2011 at 1:28 PM, Josh Thompson > > > > > > > > > > > > > > <josh_thomp...@ncsu.edu>wrote: > > > > > > > > > Mani, > > > > > > > > > > > > > > > > > > I forgot that there is a third http header that is always > > > > > > > > > required > > > > > > > > > > - > > > > > > > > > > > > > > X-APIVERSION. You'd even need that set when calling > > > > > > > > > > > > > > XMLRPCaffiliations. > > > > > > > > > > > > > > > > Josh > > > > > > > > > > > > > > > > > > On Wednesday November 30, 2011, Josh Thompson wrote: > > > > > > > > > > Mani, > > > > > > > > > > > > > > > > > > > > I haven't done much with java, and what I have done was > > > > > > > > > > many > > > > > > > > > > years > > > > > > > > > > > > ago. > > > > > > > > > > > > > > > > > Given that, it doesn't look like you are providing the > > > > > > > > > > additional custom authentication http headers X-User and > > > > > > > > > > X-Pass anywhere. > > > > > > > > > > > > > > > > > > > > Those two additional headers are not needed for the > > > > > > > > > > > > > > XMLRPCaffiliations > > > > > > > > > > > > > > > > > call. So, you could try calling that to see if the > > > > > > > > > > authentication headers are your only problem. > > > > > > > > > > > > > > > > > > > > Josh > > > > > > > > > > > > > > > > > > > > On Wednesday November 30, 2011, Mani Shafa'atDoost wrote: > > > > > > > > > > > I am trying to use Java to use your system. but the > > > > > > > > > > > problem is > > > > > > > > > > > > > > when I > > > > > > > > > > > > > > > > try > > > > > > > > > > > > > > > > > > > > to execute something like client.execute( "XMLRPCtest", > > > > > > > > > > > params > > > > > > > > > > ); > > > > > > > > > > > > , I > > > > > > > > > > > > > > > > > > receive errors. > > > > > > > > > > > Can you tell me what should I pass to this function.I > > > > > > > > > > > just attached my java class. > > > > > > > > > > > > > > > > > > > > > > Best Regards > > > > > > > > > > > Mani > > > > > > > > > > > > > > > > > > > > > > On Wed, Nov 30, 2011 at 8:39 AM, Aaron Coburn > > > > > > > > > > > <acob...@amherst.edu > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > Mani, > > > > > > > > > > > > > > > > > there is documentation for the XML RPC located here: > > > > > > http://people.apache.org/~jfthomps/xmlrpcdocs/xmlrpcWrappers_8php.htm > > > > > > > > > > > > > > l > > > > > > > > > > > > > > > > > > > > > I have been using the remote API for some time now, > and > > > > > > it > > > > > > > > > > > > > > > works very well. To make things easier for me, I > wrote > > > > > > > > > > > > a php class that encapsulates some of these functions > > > > > > > > > > > > (see attached). This class doesn't implement any of > > > > > > > > > > > > the group management features, but they > > > > > > > > > > > > > > > > > > would > > > > > > > > > > > > > > > > > > > > > be easy to add. > > > > > > > > > > > > > > > > > > > > > > > > You can then use the class like this (if, for > instance, > > > > > > you > > > > > > > > > > wanted > > > > > > > > > > > > > > > > > > > to list the reservations for a particular user): > > > > > > > > > > > > > > > > > > > > > > > > $vcl = new VCL($userid, $password); > > > > > > > > > > > > > > > > > > > > > > > > if ($reservations = $vcl->getReservations()){ > > > > > > > > > > > > foreach ($reservations as $r){ > > > > > > > > > > > > print "<p>"; > > > > > > > > > > > > print "<b>{$r['imagename']}</b> "; > > > > > > > > > > > > if ($status = > $vcl->getRequestStatus($r['requestid'])){ > > > > > > > > > > > > switch ($status['status']){ > > > > > > > > > > > > ... > > > > > > > > > > > > } > > > > > > > > > > > > } > > > > > > > > > > > > print "</p>"; > > > > > > > > > > > > } > > > > > > > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > The authentication piece is handed off to the > > > > > > > > > > > > appropriate affiliation function in the VCL code, so > > > > > > > > > > > > if you are using > > > > > > > > > > LDAP, > > > > > > > > > > > > > > > > > the user's > > > > > > > > > > > > > > > > > > password > > > > > > > > > > > > > > > > > > > > > would be verified in that way. Since we use > Shibboleth > > > > > > with > > > > > > > > our > > > > > > > > > > > > VCL > > > > > > > > > > > > > > > > > > > installation, the web application (neither the VCL > nor > > > > > > any > > > > > > > > > > > > > > > remote webapp) will know anything about what > > > > > > > > > > > > constitutes > > > > > > a > > > > > > > > > > > > > > > valid > > > > > > > > > > > > > > password, > > > > > > > > > > > > > > > > so > > > > > > > > > > > > > > > > > > > > > I ended up modifying the 'checkAccess()' function in > > > > > > > > > > > > .ht-inc/utils.php. If this is relevant for your > > > > > > > > > > installation, I > > > > > > > > > > > > can > > > > > > > > > > > > > > > > > > > explain further how this is done. > > > > > > > > > > > > > > > > > > > > > > > > The remote API allows me, for instance, to embed the > > > > > > > > > > > > VCL > > > > > > > > > > inside > > > > > > > > > > > > > > > > > other web applications (such as our campus learning > > > > > > > > > > management > > > > > > > > > > > > > > > > > system), without requiring students to login to the > > > > > > > > > > > > main VCL site when they want to make and connect to > > > > > > > > > > > > their > > > > > > > > > > reservations. > > > > > > > > > > > > > > > > > Best regards, > > > > > > > > > > > > Aaron > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Nov 29, 2011, at 6:08 PM, Mani Shafa'atDoost > wrote: > > > > > > > > > > > > > > > > > > > > > > > > Josh, > > > > > > > > > > > > > > > > > > > > > > > > Thank you. Do you have any proper documentation for > > > > > > > > > > > > functions > > > > > > > > > > > > > > that > > > > > > > > > > > > > > > > you > > > > > > > > > > > > > > > > > > > > > provided by XML RPC? > > > > > > > > > > > > > > > > > > > > > > > > Best Regards > > > > > > > > > > > > Mani > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Nov 29, 2011 at 4:32 PM, Josh Thompson > > > > > > > > > > > > > > > > > > > > <josh_thomp...@ncsu.edu>wrote: > > > > > > > > > > > >> Mani, > > > > > > > > > > > >> > > > > > > > > > > > >> Unfortunately, the example code is way out of date > and > > > > > > > > > > > >> uses API version 1 which is no longer supported. > > > > > > > > > > > >> > > > > > > > > > > > >> A more current example, though in python, is > available > > > > > > here: > > > > > > https://svn.apache.org/repos/asf/incubator/vcl/sandbox/useful_scripts > > > > > > > > > > > > > > / > > > > > > > > > > > > > > > > > > > > >> ma nagegroups.py > > > > > > > > > > > >> > > > > > > > > > > > >> Josh > > > > > > > > > > > >> > > > > > > > > > > > >> On Sunday November 20, 2011, Mani Shafa'atDoost > wrote: > > > > > > > > > > > >> > Hello, > > > > > > > > > > > >> > > > > > > > > > > > > >> > I just used your sample file to use VCL through > > > > > > XMLRPC, > > > > > > > > but > > > > > > > > > > > > > > > > >> > I received following error : > > > > > > > > > > > >> > > > > > > > > > > > > >> > *Notice*: xmlrpc: Unsupported API version, cannot > > > > > > > > > > continue. > > > > > > > > > > > > > > > > >> > I just modified username and password in your > sample > > > > > > PHP > > > > > > > > > > file. I > > > > > > > > > > > > > > > > > > >> > will appreciate if you could guide me. > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> > Best Regards > > > > > > > > > > > >> > > > > > > > > > > > > >> > Mani > > > > > > > > > > > >> > > > > > > > > > > > >> - -- > > > > > > > > > > > >> - ------------------------------- > > > > > > > > > > > >> Josh Thompson > > > > > > > > > > > >> VCL Developer > > > > > > > > > > > >> North Carolina State University > > > > > > > > > > > >> > > > > > > > > > > > >> my GPG/PGP key can be found at pgp.mit.edu > > > > > > - -- > > > - ------------------------------- > > > Josh Thompson > > > VCL Developer > > > North Carolina State University > > > > > > my GPG/PGP key can be found at pgp.mit.edu > - -- > - ------------------------------- > Josh Thompson > VCL Developer > North Carolina State University > > my GPG/PGP key can be found at pgp.mit.edu > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.17 (GNU/Linux) > > iEYEARECAAYFAk7ed00ACgkQV/LQcNdtPQPH/gCeJhFbdU8NJpSfgL9/SXTDsYwh > tTEAn1u7gzbq1/beQB21gSKC5fwz8Qvc > =syJd > -----END PGP SIGNATURE----- >