]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix user agent trimming on installation 32434/head
authorJoas Schilling <coding@schilljs.com>
Mon, 9 May 2022 06:36:34 +0000 (08:36 +0200)
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>
Mon, 16 May 2022 13:13:36 +0000 (13:13 +0000)
Signed-off-by: Joas Schilling <coding@schilljs.com>
lib/private/Authentication/Token/PublicKeyTokenProvider.php
tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php

index fd9e8336cc236029c0d38f4f0c8d92f85238ce17..cb776d6d757028a81a21c1f56d825a291712ac7f 100644 (file)
@@ -86,7 +86,7 @@ class PublicKeyTokenProvider implements IProvider {
                                                                  int $type = IToken::TEMPORARY_TOKEN,
                                                                  int $remember = IToken::DO_NOT_REMEMBER): IToken {
                if (mb_strlen($name) > 128) {
-                       throw new InvalidTokenException('The given name is too long');
+                       $name = mb_substr($name, 0, 120) . '…';
                }
 
                $dbToken = $this->newToken($token, $uid, $loginName, $password, $name, $type, $remember);
index 9503a5e450116c1c94833c655ffe508cccb4117f..0c2ab5a8969574b0c9d804fd1cd47040f8fe2325 100644 (file)
@@ -96,8 +96,6 @@ class PublicKeyTokenProviderTest extends TestCase {
        }
 
        public function testGenerateTokenInvalidName() {
-               $this->expectException(\OC\Authentication\Exceptions\InvalidTokenException::class);
-
                $token = 'token';
                $uid = 'user';
                $user = 'User';
@@ -109,6 +107,13 @@ class PublicKeyTokenProviderTest extends TestCase {
                $type = IToken::PERMANENT_TOKEN;
 
                $actual = $this->tokenProvider->generateToken($token, $uid, $user, $password, $name, $type, IToken::DO_NOT_REMEMBER);
+
+               $this->assertInstanceOf(PublicKeyToken::class, $actual);
+               $this->assertSame($uid, $actual->getUID());
+               $this->assertSame($user, $actual->getLoginName());
+               $this->assertSame('User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12User-Agent: Mozill…', $actual->getName());
+               $this->assertSame(IToken::DO_NOT_REMEMBER, $actual->getRemember());
+               $this->assertSame($password, $this->tokenProvider->getPassword($actual, $token));
        }
 
        public function testUpdateToken() {