Bugs Dashboard uses the Bugzilla web service to authenticate users to the application. It does not store any username or password locally. A user must exist in the Bugzilla database with the password provided in the login form, but more importantly, Bugs Dashboard must be able to communicate with Bugzilla via the web service. As the web service is optional, not everyone who tries Bugs Dashboard has the web service setup at the time the first try Bugs Dashboard and thus their first login attempt fails. In this post, we’ll look at what needs to be done to implement the web service.
Installing the optional modules
The Bugzilla Guide describes the optional modules necessary for the web service. These include SOAP::Lite and TEST::Taint. To install these, you will need to execute the following command. If you have a single Bugzilla instance and are not using these outside of Bugzilla, do the following from the Bugzilla directory (assumes perl is in your PATH):
perl install-module.pl Test::Taint SOAP::Lite
Testing the web service
To test the web service, go to the /lib directory under your Bugzilla installation (note that if your @INC path includes the above modules you don’t have to do this, but we have found it works well for us). From there invoke the bz_webservice_demo.pl script pointing it to your instance. As an example, this is how we test each installation of a new version of Bugzilla prior to installing Bugs Dashboard:
../contrib/bz_webservice_demo.pl --uri http://server.wmpnj.net:88/bugzilla42o/xmlrpc.cgi
The above should return you the current timezone for Bugzilla. From our instance, the returned value is:
Connecting to a Bugzilla of version 4.2. Bugzilla's timezone is +0000.
At this point, your web service is configured correctly!
Verifying the ability to login
You can test the capability of your web service a bit more to validate that Bugs Dashboard will be capable of logging users into the application by issuing the following command using the proper username and password (again, we do this from our lib directory). Note that we use a backslash to span multiple lines but you could use this in one command line entry:
--uri http://server.wmpnj.net:88/bugzilla42o/xmlrpc.cgi \
--login email@example.com \
This should return the following for a valid username and password:
Connecting to a Bugzilla of version 4.2. Bugzilla's timezone is +0000. Login successful.
The Bugs Dashboard Configuration
During the time of installation, you were asked to designate the URI of your Bugzilla implementation in the wizard. The URI is exactly what you have been using in your tests above. In our case, the URI is:
Note that this points to the Bugzilla installation, not to the Bugs Dashboard installation. Your tests and the Bugs Dashboard configuration should all point to your Bugzilla implementation.