X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=authserver%2Flib%2Flib.php;h=bbdc1868a95be7ed22c98b82c53627501182ea9d;hb=8288d3ccabef50ae2d75fe48cdd60c57d264cbe1;hp=cf4c39e43dc923c13764a3f8185fe5d5865ec7b0;hpb=d1eae3d523f459b4cdd5e1bfc776690d0ad96069;p=ga4php.git diff --git a/authserver/lib/lib.php b/authserver/lib/lib.php index cf4c39e..bbdc186 100644 --- a/authserver/lib/lib.php +++ b/authserver/lib/lib.php @@ -4,6 +4,9 @@ if(!isset($MSG_QUEUE_KEY_ID_SERVER)) $MSG_QUEUE_KEY_ID_SERVER = "189751072"; // if(!isset($MSG_QUEUE_KEY_ID_CLIENT)) $MSG_QUEUE_KEY_ID_CLIENT = "189751073"; // ftok is not ok! global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT; +if(!isset($TCP_PORT_NUMBER)) $TCP_PORT_NUMBER = 21416; +global $TCP_PORT_NUMBER; + define("MSG_AUTH_USER_TOKEN", 1); define("MSG_ADD_USER_TOKEN", 2); define("MSG_DELETE_USER", 3); @@ -11,25 +14,82 @@ define("MSG_AUTH_USER_PASSWORD", 4); define("MSG_SET_USER_PASSWORD", 5); define("MSG_SET_USER_REALNAME", 6); define("MSG_SET_USER_TOKEN", 7); +define("MSG_SET_USER_TOKEN_TYPE", 8); +define("MSG_GET_USERS", 9); +define("MSG_GET_OTK_PNG", 10); +define("MSG_GET_OTK_ID", 11); +define("MSG_DELETE_USER_TOKEN", 12); +define("MSG_SYNC_TOKEN", 13); +define("MSG_GET_TOKEN_TYPE", 14); +define("MSG_GET_RADIUS_CLIENTS", 15); +define("MSG_REMOVE_RADIUS_CLIENT", 16); +define("MSG_ADD_RADIUS_CLIENT", 17); + +// BASE_DIR = +// messy +$BASE_DIR = realpath(dirname(__FILE__)."/../../"); +global $BASE_DIR; + +// messy +require_once(dirname(__FILE__)."/../../lib/ga4php.php"); + +function generateRandomString() +{ + $str = ""; + $strpos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + + for($i=0; $i<128; $i++) { + $str .= $strpos[rand(0, strlen($strpos)-1)]; + } + + return $str; +} -if(file_exists("../../lib/ga4php.php")) require_once("../../lib/ga4php.php"); -if(file_exists("../lib/ga4php.php")) require_once("../lib/ga4php.php"); +function updateRadius() +{ + // this is hardcoded for now. + //$clientfile = "/etc/freeradius/clients.conf"; + $clientfile = "/tmp/clients.conf"; + $reloadinit = "/etc/init.d/freeradius restart"; + + $db = getDatabase(); + + echo "in updateradius\n"; + $hand = fopen($clientfile, "w"); + $sql = "select * from radclients"; + $res = $db->query($sql); + foreach($res as $row) { + $cname = $row["rad_name"]; + $cip = $row["rad_ip"]; + $csec = $row["rad_secret"]; + $lines = "client $cname {\nipaddr = $cip\nsecret = $csec\nrequire_message_authenticator = no\n}\n\n"; + fwrite($hand, $lines); + } + fclose($hand); + // not yet + //system($reloadinit); +} -function getDatabase() { + +function getDatabase() +{ $dbobject = false; - if(file_exists("gaasdata.sqlite")) { + global $BASE_DIR; + if(file_exists("$BASE_DIR/authserver/authd/gaasdata.sqlite")) { try { - $dbobject = new PDO("sqlite:gaasdata.sqlite"); + $dbobject = new PDO("sqlite:$BASE_DIR/authserver/authd/gaasdata.sqlite"); } catch(PDOException $exep) { error_log("execpt on db open"); } } else { try { - $dbobject = new PDO("sqlite:gaasdata.sqlite"); + $dbobject = new PDO("sqlite:$BASE_DIR/authserver/authd/gaasdata.sqlite"); } catch(PDOException $exep) { error_log("execpt on db open"); } - $sql = 'CREATE TABLE "users" ("users_id" INTEGER PRIMARY KEY AUTOINCREMENT,"users_username" TEXT, "users_realname" TEXT, "users_password" TEXT, "users_tokendata" TEXT);'; + $sql = 'CREATE TABLE "users" ("users_id" INTEGER PRIMARY KEY AUTOINCREMENT,"users_username" TEXT, "users_realname" TEXT, "users_password" TEXT, "users_tokendata" TEXT, "users_otk" TEXT);'; + $dbobject->query($sql); + $sql = 'CREATE TABLE "radclients" ("rad_id" INTEGER PRIMARY KEY AUTOINCREMENT,"rad_name" TEXT, "rad_ip" TEXT, "rad_secret" TEXT, "rad_desc" TEXT);'; $dbobject->query($sql); } @@ -42,6 +102,7 @@ function closeDatabase($db) { class gaasGA extends GoogleAuthenticator { function getData($username) { + echo "called into getdata\n"; // get our database connection $dbObject = getDatabase(); @@ -53,14 +114,17 @@ class gaasGA extends GoogleAuthenticator { $result = $dbObject->query($sql); // check the result + echo "next1\n"; if(!$result) return false; // now just retreieve all the data (there should only be one, but whatever) + echo "next2\n"; $tokendata = false; foreach($result as $row) { $tokendata = $row["users_tokendata"]; } - + + echo "next3, $username, $tokendata\n"; // now we have our data, we just return it. If we got no data // we'll just return false by default return $tokendata; @@ -75,13 +139,15 @@ class gaasGA extends GoogleAuthenticator { // we need to check if the user exists, and if so put the data, if not create the data $sql = "select * from users where users_username='$username'"; - $res = $dbOject->query($sql); + $res = $dbObject->query($sql); if($res->fetchColumn() > 0) { // do update + error_log("doing userdata update"); $sql = "update users set users_tokendata='$data' where users_username='$username'"; } else { // do insert - $sql = "insert into users values (NULL, '$username', '', '', '$data')"; + error_log("doing user data create"); + $sql = "insert into users values (NULL, '$username', '', '', '$data', '')"; } if($dbObject->query($sql)) { @@ -116,4 +182,4 @@ class gaasGA extends GoogleAuthenticator { } } -?> \ No newline at end of file +?>