#include <fstream> #include <sstream> #include <dvticket/cgi.h> int main(int argc,char* argv[]) { // LOGINURL is such that https://LOGINURL refers to a // login program Dv::Ticket::Cgi cgi("test.cgi", LOGINURL, "en", true); // once here, we know the user from cgi.user() try { Dv::Util::Props out; out.add("username", cgi.user().name()); out.add("category", cgi.user().category()); out.add("info", cgi.user().info()); out.add("uid", Dv::Util::tostring(cgi.user().id())); std::ifstream ifs("test-cgi.html"); std::ostringstream oss; out.substitute(ifs, oss); cgi << oss.str() << std::endl; } catch (std::exception& e) { cgi->content_type("text/plain"); cgi << e.what() << std::endl; return 1; } return 0; }
./configure && make && make install
The package depends on the dvutil, dvnet, dvssl, dvcgi, dvmysql, dvxml packages.
#!/bin/sh
prefix=/usr/local
exec_prefix=${prefix}
pkgdatadir=${prefix}/share/dvticket
exec ${exec_prefix}/libexec/dvticket-login-cgi ${pkgdatadir}/login-cgi-config.xml
<?xml version="1.0"?> <login-cgi-config> <server> <host> <!-- port on which dvticket server is listening --> <port>1050</port> </host> </server> <default-ticket> <!-- default duration of validity of ticket --> <duration unit="minutes">20</duration> </default-ticket> <!-- default language for login page --> <default-language>en</default-language> <!-- default url to which login program will relocate --> <default-url>http://tinf2.vub.ac.be/</default-url> <!-- default page layout, for a given language --> <html-file language="en"> /usr/local/share/dvticket/test-login-cgi-en.html </html-file> <html-file language="nl"> /usr/local/share/dvticket/test-login-cgi-nl.html </html-file> </login-cgi-config>
dvticket-0.7.6 | [22 January, 2006] |