summaryrefslogtreecommitdiffstats
path: root/Auth/OpenID
diff options
context:
space:
mode:
authortailor <cygnus@janrain.com>2006-02-14 22:55:45 +0000
committertailor <cygnus@janrain.com>2006-02-14 22:55:45 +0000
commitda9b874db9fa110afb8c73bf4ba867e4451ca273 (patch)
tree789e20cf42a3a98f7dde8d6a37eda719b4851ed5 /Auth/OpenID
parenta51e8efee3d6e83e7df10df42c0762a6b8d127b2 (diff)
downloadphp-openid-da9b874db9fa110afb8c73bf4ba867e4451ca273.zip
php-openid-da9b874db9fa110afb8c73bf4ba867e4451ca273.tar.gz
php-openid-da9b874db9fa110afb8c73bf4ba867e4451ca273.tar.bz2
[project @ Moved PostgreSQL store into its own file.]
Diffstat (limited to 'Auth/OpenID')
-rw-r--r--Auth/OpenID/PostgreSQLStore.php136
-rw-r--r--Auth/OpenID/SQLStore.php124
2 files changed, 137 insertions, 123 deletions
diff --git a/Auth/OpenID/PostgreSQLStore.php b/Auth/OpenID/PostgreSQLStore.php
new file mode 100644
index 0000000..a415280
--- /dev/null
+++ b/Auth/OpenID/PostgreSQLStore.php
@@ -0,0 +1,136 @@
+<?php
+
+/**
+ * A PostgreSQL store.
+ *
+ * @package OpenID
+ */
+
+/**
+ * Require the base class file.
+ */
+require_once "Auth/OpenID/SQLStore.php";
+
+/**
+ * An SQL store that uses PostgreSQL as its backend.
+ *
+ * @package OpenID
+ */
+class Auth_OpenID_PostgreSQLStore extends Auth_OpenID_SQLStore {
+ /**
+ * @access private
+ */
+ function setSQL()
+ {
+ $this->sql['nonce_table'] =
+ "CREATE TABLE %s (nonce CHAR(8) UNIQUE PRIMARY KEY, ".
+ "expires INTEGER)";
+
+ $this->sql['assoc_table'] =
+ "CREATE TABLE %s (server_url VARCHAR(2047), handle VARCHAR(255), ".
+ "secret BYTEA, issued INTEGER, lifetime INTEGER, ".
+ "assoc_type VARCHAR(64), PRIMARY KEY (server_url, handle), ".
+ "CONSTRAINT secret_length_constraint CHECK ".
+ "(LENGTH(secret) <= 128))";
+
+ $this->sql['settings_table'] =
+ "CREATE TABLE %s (setting VARCHAR(128) UNIQUE PRIMARY KEY, ".
+ "value BYTEA, ".
+ "CONSTRAINT value_length_constraint CHECK (LENGTH(value) <= 20))";
+
+ $this->sql['create_auth'] =
+ "INSERT INTO %s VALUES ('auth_key', '!')";
+
+ $this->sql['get_auth'] =
+ "SELECT value FROM %s WHERE setting = 'auth_key'";
+
+ $this->sql['set_assoc'] =
+ array(
+ 'insert_assoc' => "INSERT INTO %s (server_url, handle, ".
+ "secret, issued, lifetime, assoc_type) VALUES ".
+ "(?, ?, '!', ?, ?, ?)",
+ 'update_assoc' => "UPDATE %s SET secret = '!', issued = ?, ".
+ "lifetime = ?, assoc_type = ? WHERE server_url = ? AND ".
+ "handle = ?"
+ );
+
+ $this->sql['get_assocs'] =
+ "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".
+ "WHERE server_url = ?";
+
+ $this->sql['get_assoc'] =
+ "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".
+ "WHERE server_url = ? AND handle = ?";
+
+ $this->sql['remove_assoc'] =
+ "DELETE FROM %s WHERE server_url = ? AND handle = ?";
+
+ $this->sql['add_nonce'] =
+ array(
+ 'insert_nonce' => "INSERT INTO %s (nonce, expires) VALUES ".
+ "(?, ?)",
+ 'update_nonce' => "UPDATE %s SET expires = ? WHERE nonce = ?"
+ );
+
+ $this->sql['get_nonce'] =
+ "SELECT * FROM %s WHERE nonce = ?";
+
+ $this->sql['remove_nonce'] =
+ "DELETE FROM %s WHERE nonce = ?";
+ }
+
+ /**
+ * @access private
+ */
+ function _set_assoc($server_url, $handle, $secret, $issued, $lifetime,
+ $assoc_type)
+ {
+ $result = $this->_get_assoc($server_url, $handle);
+ if ($result) {
+ // Update the table since this associations already exists.
+ $this->connection->query($this->sql['set_assoc']['update_assoc'],
+ array($secret, $issued, $lifetime,
+ $assoc_type, $server_url, $handle));
+ } else {
+ // Insert a new record because this association wasn't
+ // found.
+ $this->connection->query($this->sql['set_assoc']['insert_assoc'],
+ array($server_url, $handle, $secret,
+ $issued, $lifetime, $assoc_type));
+ }
+ }
+
+ /**
+ * @access private
+ */
+ function _add_nonce($nonce, $expires)
+ {
+ if ($this->_get_nonce($nonce)) {
+ return $this->resultToBool($this->connection->query(
+ $this->sql['add_nonce']['update_nonce'],
+ array($expires, $nonce)));
+ } else {
+ return $this->resultToBool($this->connection->query(
+ $this->sql['add_nonce']['insert_nonce'],
+ array($nonce, $expires)));
+ }
+ }
+
+ /**
+ * @access private
+ */
+ function blobEncode($blob)
+ {
+ return $this->_octify($blob);
+ }
+
+ /**
+ * @access private
+ */
+ function blobDecode($blob)
+ {
+ return $this->_unoctify($blob);
+ }
+}
+
+?> \ No newline at end of file
diff --git a/Auth/OpenID/SQLStore.php b/Auth/OpenID/SQLStore.php
index a27118e..8e16ea0 100644
--- a/Auth/OpenID/SQLStore.php
+++ b/Auth/OpenID/SQLStore.php
@@ -1,7 +1,7 @@
<?php
/**
- * SQL-backed OpenID stores, including PostgreSQL, MySQL and SQLite.
+ * SQL-backed OpenID stores.
*
* PHP versions 4 and 5
*
@@ -631,128 +631,6 @@ class Auth_OpenID_SQLStore extends Auth_OpenID_OpenIDStore {
}
/**
- * An SQL store that uses PostgreSQL as its backend.
- *
- * @package OpenID
- */
-class Auth_OpenID_PostgreSQLStore extends Auth_OpenID_SQLStore {
- /**
- * @access private
- */
- function setSQL()
- {
- $this->sql['nonce_table'] =
- "CREATE TABLE %s (nonce CHAR(8) UNIQUE PRIMARY KEY, ".
- "expires INTEGER)";
-
- $this->sql['assoc_table'] =
- "CREATE TABLE %s (server_url VARCHAR(2047), handle VARCHAR(255), ".
- "secret BYTEA, issued INTEGER, lifetime INTEGER, ".
- "assoc_type VARCHAR(64), PRIMARY KEY (server_url, handle), ".
- "CONSTRAINT secret_length_constraint CHECK ".
- "(LENGTH(secret) <= 128))";
-
- $this->sql['settings_table'] =
- "CREATE TABLE %s (setting VARCHAR(128) UNIQUE PRIMARY KEY, ".
- "value BYTEA, ".
- "CONSTRAINT value_length_constraint CHECK (LENGTH(value) <= 20))";
-
- $this->sql['create_auth'] =
- "INSERT INTO %s VALUES ('auth_key', '!')";
-
- $this->sql['get_auth'] =
- "SELECT value FROM %s WHERE setting = 'auth_key'";
-
- $this->sql['set_assoc'] =
- array(
- 'insert_assoc' => "INSERT INTO %s (server_url, handle, ".
- "secret, issued, lifetime, assoc_type) VALUES ".
- "(?, ?, '!', ?, ?, ?)",
- 'update_assoc' => "UPDATE %s SET secret = '!', issued = ?, ".
- "lifetime = ?, assoc_type = ? WHERE server_url = ? AND ".
- "handle = ?"
- );
-
- $this->sql['get_assocs'] =
- "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".
- "WHERE server_url = ?";
-
- $this->sql['get_assoc'] =
- "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ".
- "WHERE server_url = ? AND handle = ?";
-
- $this->sql['remove_assoc'] =
- "DELETE FROM %s WHERE server_url = ? AND handle = ?";
-
- $this->sql['add_nonce'] =
- array(
- 'insert_nonce' => "INSERT INTO %s (nonce, expires) VALUES ".
- "(?, ?)",
- 'update_nonce' => "UPDATE %s SET expires = ? WHERE nonce = ?"
- );
-
- $this->sql['get_nonce'] =
- "SELECT * FROM %s WHERE nonce = ?";
-
- $this->sql['remove_nonce'] =
- "DELETE FROM %s WHERE nonce = ?";
- }
-
- /**
- * @access private
- */
- function _set_assoc($server_url, $handle, $secret, $issued, $lifetime,
- $assoc_type)
- {
- $result = $this->_get_assoc($server_url, $handle);
- if ($result) {
- // Update the table since this associations already exists.
- $this->connection->query($this->sql['set_assoc']['update_assoc'],
- array($secret, $issued, $lifetime,
- $assoc_type, $server_url, $handle));
- } else {
- // Insert a new record because this association wasn't
- // found.
- $this->connection->query($this->sql['set_assoc']['insert_assoc'],
- array($server_url, $handle, $secret,
- $issued, $lifetime, $assoc_type));
- }
- }
-
- /**
- * @access private
- */
- function _add_nonce($nonce, $expires)
- {
- if ($this->_get_nonce($nonce)) {
- return $this->resultToBool($this->connection->query(
- $this->sql['add_nonce']['update_nonce'],
- array($expires, $nonce)));
- } else {
- return $this->resultToBool($this->connection->query(
- $this->sql['add_nonce']['insert_nonce'],
- array($nonce, $expires)));
- }
- }
-
- /**
- * @access private
- */
- function blobEncode($blob)
- {
- return $this->_octify($blob);
- }
-
- /**
- * @access private
- */
- function blobDecode($blob)
- {
- return $this->_unoctify($blob);
- }
-}
-
-/**
* An SQL store that uses SQLite as its backend.
*
* @package OpenID