Commits

Anonymous committed 23de24f Draft

issue2550749 - the xmlrpc interface is invoked on content type
and not url path. Sending any text/xml data to roundup results in
invoking the xml-rpc interface, but a REST or other interface could
also consume xml data and do something different. So require the use
of 'http(s)://.../xmlrpc' uri to trigger the xmlrpc interface.

  • Participants
  • Parent commits 3cf77c3

Comments (0)

Files changed (4)

 - issue2550783 devel template's schema.py permissions referenced the
   organization property for the user, but the property is called
   organisation. Thanks to Pradip Caulagi. (committed by John Rouillard)
+- issue2550749 - the xmlrpc interface is invoked on content type
+  and not url path. Sending any text/xml data to roundup results in
+  invoking the xml-rpc interface, but a REST or other interface could
+  also consume xml data and do something different. So require the use
+  of 'http(s)://.../xmlrpc' uri to trigger the xmlrpc interface.
+  (John Rouillard)
 
 2012-05-15: 1.4.20
 

File doc/upgrading.txt

 ``share/roundup/templates/classic/html/_generic.calendar.html``; if you did,
 you can add the tag manually.  See issue2550765 and changeset a099ff2ceff3.
 
+If you are using the xml-rpc interface, there is a change
+  in accessing it. You can not send text/xml data to any
+  roundup url and get a response, you must use the /xmlrpc
+  url. For example, if you used to send your xmlrpc request to:
+
+   http://myroundup.com/roundup
+
+  you need to change the url to read:
+
+   http://myroundup.com/roundup/xmlrpc
+
+  to invoke the xmlrpc handler. This allows us to send xml
+  data to roundup for other handlers (e.g. REST, SOAP ...)
+  in the future.
 
 Migrating from 1.4.19 to 1.4.20
 ===============================

File doc/xmlrpc.txt

 limiting. The XML-RPC frontend provides the ability to execute a limited subset
 of commands similar to those found in roundup-admin from remote machines. 
 
-roundup-xmlrpc-server
+There are two ways to access the xmlrpc interface:
+
+  stand alone roundup-xmlrpc-server
+
+  access via the roundup server
+  
+  
+stand alone roundup-xmlrpc-server
 ---------------------
-The Roundup XML-RPC server must be started before remote clients can access the
+The Roundup XML-RPC standalone server must be started before remote clients can access the
 tracker via XML-RPC. ``roundup-xmlrpc-server`` is installed in the scripts
 directory alongside ``roundup-server`` and roundup-admin``. When invoked, the
 location of the tracker instance must be specified.
 The default port is ``8000``. An alternative port can be specified with the
 ``--port`` switch.
 
+accessing via roundup server
+----------------------------
+In addition to running a stand alone server described above, the
+xmlrpc service is available from the roundup HTTP server. Access it by
+sending text/xml data to the URL for the roundup tracker with the last
+component of the url set to 'xmlrpc'.
+
 security consideration
 ======================
 Note that the current ``roundup-xmlrpc-server`` implementation does not
         []
         >>> roundup_server.lookup('user','admin')
         '1'
+
+If you are accessing the interface via the roundup HTTP server, a url
+similar to:
+
+  http://username:password@localhost:8000/tracker/xmlrpc
+
+should be used.

File roundup/cgi/client.py

         """ Wrap the real main in a try/finally so we always close off the db.
         """
         try:
-            if self.env.get('CONTENT_TYPE') == 'text/xml':
+            if self.env.get('CONTENT_TYPE') == 'text/xml' and self.path == 'xmlrpc':
                 self.handle_xmlrpc()
             else:
                 self.inner_main()