summaryrefslogtreecommitdiffstats
path: root/lib/private/Authentication
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@owncloud.com>2016-05-17 17:20:54 +0200
committerChristoph Wurst <christoph@owncloud.com>2016-05-18 09:20:48 +0200
commit98b465a8b9c6900f12ca2efa5d51036b6ccc4b8b (patch)
tree830f5043c8178736c0b34038eb49c769f59a6b1b /lib/private/Authentication
parent765782445a24fb1b239f2a3cd5c7b239ae4f6455 (diff)
downloadnextcloud-server-98b465a8b9c6900f12ca2efa5d51036b6ccc4b8b.tar.gz
nextcloud-server-98b465a8b9c6900f12ca2efa5d51036b6ccc4b8b.zip
a single token provider suffices
Diffstat (limited to 'lib/private/Authentication')
-rw-r--r--lib/private/Authentication/Token/DefaultToken.php9
-rw-r--r--lib/private/Authentication/Token/DefaultTokenProvider.php16
-rw-r--r--lib/private/Authentication/Token/IProvider.php37
-rw-r--r--lib/private/Authentication/Token/IToken.php10
4 files changed, 62 insertions, 10 deletions
diff --git a/lib/private/Authentication/Token/DefaultToken.php b/lib/private/Authentication/Token/DefaultToken.php
index 25caf675a43..08451a46151 100644
--- a/lib/private/Authentication/Token/DefaultToken.php
+++ b/lib/private/Authentication/Token/DefaultToken.php
@@ -77,5 +77,14 @@ class DefaultToken extends Entity implements IToken {
public function getUID() {
return $this->uid;
}
+
+ /**
+ * Get the (encrypted) login password
+ *
+ * @return string
+ */
+ public function getPassword() {
+ return parent::getPassword();
+ }
}
diff --git a/lib/private/Authentication/Token/DefaultTokenProvider.php b/lib/private/Authentication/Token/DefaultTokenProvider.php
index deca5b409e8..a335b79e332 100644
--- a/lib/private/Authentication/Token/DefaultTokenProvider.php
+++ b/lib/private/Authentication/Token/DefaultTokenProvider.php
@@ -103,25 +103,27 @@ class DefaultTokenProvider implements IProvider {
}
/**
- * @param string $token
+ * Get a token by token id
+ *
+ * @param string $tokenId
* @throws InvalidTokenException
* @return DefaultToken
*/
- public function getToken($token) {
+ public function getToken($tokenId) {
try {
- return $this->mapper->getToken($this->hashToken($token));
+ return $this->mapper->getToken($this->hashToken($tokenId));
} catch (DoesNotExistException $ex) {
throw new InvalidTokenException();
}
}
/**
- * @param DefaultToken $savedToken
- * @param string $token session token
+ * @param IToken $savedToken
+ * @param string $tokenId session token
* @return string
*/
- public function getPassword(DefaultToken $savedToken, $token) {
- return $this->decryptPassword($savedToken->getPassword(), $token);
+ public function getPassword(IToken $savedToken, $tokenId) {
+ return $this->decryptPassword($savedToken->getPassword(), $tokenId);
}
/**
diff --git a/lib/private/Authentication/Token/IProvider.php b/lib/private/Authentication/Token/IProvider.php
index f8a3262ca8b..1fd3a70fbbf 100644
--- a/lib/private/Authentication/Token/IProvider.php
+++ b/lib/private/Authentication/Token/IProvider.php
@@ -27,6 +27,27 @@ use OC\Authentication\Exceptions\InvalidTokenException;
interface IProvider {
/**
+ * Create and persist a new token
+ *
+ * @param string $token
+ * @param string $uid
+ * @param string $password
+ * @param string $name
+ * @param int $type token type
+ * @return DefaultToken
+ */
+ public function generateToken($token, $uid, $password, $name, $type = IToken::TEMPORARY_TOKEN);
+
+ /**
+ * Get a token by token id
+ *
+ * @param string $tokenId
+ * @throws InvalidTokenException
+ * @return IToken
+ */
+ public function getToken($tokenId) ;
+
+ /**
* @param string $token
* @throws InvalidTokenException
* @return IToken
@@ -34,9 +55,25 @@ interface IProvider {
public function validateToken($token);
/**
+ * Invalidate (delete) the given session token
+ *
+ * @param string $token
+ */
+ public function invalidateToken($token);
+
+ /**
* Update token activity timestamp
*
* @param IToken $token
*/
public function updateToken(IToken $token);
+
+ /**
+ * Get the (unencrypted) password of the given token
+ *
+ * @param IToken $token
+ * @param string $tokenId
+ * @return string
+ */
+ public function getPassword(IToken $token, $tokenId);
}
diff --git a/lib/private/Authentication/Token/IToken.php b/lib/private/Authentication/Token/IToken.php
index 9b2bd18f83b..2a01ea75ea9 100644
--- a/lib/private/Authentication/Token/IToken.php
+++ b/lib/private/Authentication/Token/IToken.php
@@ -22,9 +22,6 @@
namespace OC\Authentication\Token;
-/**
- * @since 9.1.0
- */
interface IToken {
const TEMPORARY_TOKEN = 0;
@@ -43,4 +40,11 @@ interface IToken {
* @return string
*/
public function getUID();
+
+ /**
+ * Get the (encrypted) login password
+ *
+ * @return string
+ */
+ public function getPassword();
}