From 975a144e0e790e7273247d364a721feecfc9d9bb Mon Sep 17 00:00:00 2001 From: phasefx Date: Wed, 7 Jul 2010 18:44:13 +0000 Subject: [PATCH] Merge branch 'browser' git-svn-id: svn://svn.open-ils.org/ILS/trunk@16871 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/examples/remoteauth.cgi | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 Open-ILS/examples/remoteauth.cgi diff --git a/Open-ILS/examples/remoteauth.cgi b/Open-ILS/examples/remoteauth.cgi new file mode 100755 index 000000000..4529b7c3b --- /dev/null +++ b/Open-ILS/examples/remoteauth.cgi @@ -0,0 +1,54 @@ +#!/usr/bin/perl +#use strict; +use warnings; + +use CGI; +use Digest::MD5 qw(md5_hex); + +use OpenSRF::EX qw(:try); +use OpenSRF::System; + + +my $bootstrap = '/openils/conf/opensrf_core.xml'; +my $cgi = new CGI; +my $u = $cgi->param('user'); +my $p = $cgi->param('passwd'); + +print $cgi->header(-type=>'text/html', -expires=>'-1d'); + +OpenSRF::System->bootstrap_client( config_file => $bootstrap ); + +if (!$u || !$p) { + print "+INCOMPLETE"; +} else { + my $nametype = 'username'; + $nametype = 'barcode' if ($u =~ /^\d+$/o); + my $seed = OpenSRF::AppSession + ->create("open-ils.auth") + ->request( 'open-ils.auth.authenticate.init', $u ) + ->gather(1); + if ($seed) { + my $response = OpenSRF::AppSession + ->create("open-ils.auth") + ->request( 'open-ils.auth.authenticate.complete', { $nametype => $u, password => md5_hex($seed . md5_hex($p)), type => 'temp' }) + ->gather(1); + if ($response->{payload}->{authtoken}) { + my $user = OpenSRF::AppSession + ->create("open-ils.auth") + ->request( "open-ils.auth.session.retrieve", $response->{payload}->{authtoken} ) + ->gather(1); + if (ref($user) eq 'HASH' && $user->{ilsevent} == 1001) { + print "+NO"; + } else { + print "+VALID"; + } + } else { + print "+NO"; + } + } else { + print "+BACKEND_ERROR"; + } + +} + +1; -- 2.11.0