Refactor authentication system (#2602)
Make auth configuration available via UI, remove FOSUserBundle and SAML-Bundle dependency
This commit is contained in:
96
tests/Mocks/Saml/SamlAuthFactoryFactory.php
Normal file
96
tests/Mocks/Saml/SamlAuthFactoryFactory.php
Normal file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Mocks\Saml;
|
||||
|
||||
use App\Configuration\SamlConfiguration;
|
||||
use App\Configuration\SystemConfiguration;
|
||||
use App\Saml\SamlAuthFactory;
|
||||
use App\Tests\Configuration\TestConfigLoader;
|
||||
use App\Tests\Mocks\AbstractMockFactory;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
|
||||
class SamlAuthFactoryFactory extends AbstractMockFactory
|
||||
{
|
||||
public function create(?array $connection = null, bool $fromTrustedProxy = false): SamlAuthFactory
|
||||
{
|
||||
if (null === $connection) {
|
||||
$connection = [
|
||||
'idp' => [
|
||||
'entityId' => 'https://accounts.google.com/o/saml2?idpid=',
|
||||
'singleSignOnService' => [
|
||||
'url' => 'https://accounts.google.com/o/saml2/idp?idpid=',
|
||||
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
|
||||
],
|
||||
'x509cert' => 'asdf',
|
||||
],
|
||||
'sp' => [
|
||||
'entityId' => 'https://127.0.0.1:8010/auth/saml/metadata',
|
||||
'assertionConsumerService' => [
|
||||
'url' => 'https://127.0.0.1:8010/auth/saml/acs',
|
||||
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
|
||||
],
|
||||
'singleLogoutService' => [
|
||||
'url' => 'https://127.0.0.1:8010/auth/saml/logout',
|
||||
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
|
||||
],
|
||||
'privateKey' => ''
|
||||
],
|
||||
'strict' => true,
|
||||
'debug' => true,
|
||||
'security' => [
|
||||
'nameIdEncrypted' => false,
|
||||
'authnRequestsSigned' => false,
|
||||
'logoutRequestSigned' => false,
|
||||
'logoutResponseSigned' => false,
|
||||
'wantMessagesSigned' => false,
|
||||
'wantAssertionsSigned' => false,
|
||||
'wantNameIdEncrypted' => false,
|
||||
'requestedAuthnContext' => true,
|
||||
'signMetadata' => false,
|
||||
'wantXMLValidation' => true,
|
||||
'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
|
||||
'digestAlgorithm' => 'http://www.w3.org/2001/04/xmlenc#sha256',
|
||||
],
|
||||
'contactPerson' => [
|
||||
'technical' => [
|
||||
'givenName' => 'Kimai Admin',
|
||||
'emailAddress' => 'kimai-tech@example.com',
|
||||
],
|
||||
'support' => [
|
||||
'givenName' => 'Kimai Support',
|
||||
'emailAddress' => 'kimai-support@example.com',
|
||||
]
|
||||
],
|
||||
'organization' => [
|
||||
'en' => [
|
||||
'name' => 'Kimai',
|
||||
'displayname' => 'Kimai',
|
||||
'url' => 'https://www.kimai.org',
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
$mock = $this->getMockBuilder(Request::class)->getMock();
|
||||
$mock->method('isFromTrustedProxy')->willReturn($fromTrustedProxy);
|
||||
/** @var Request $request */
|
||||
$request = $mock;
|
||||
|
||||
$requestStack = new RequestStack();
|
||||
$requestStack->push($request);
|
||||
|
||||
$configuration = new SystemConfiguration(new TestConfigLoader([]), [
|
||||
'saml' => ['connection' => $connection]
|
||||
]);
|
||||
|
||||
return new SamlAuthFactory($requestStack, new SamlConfiguration($configuration));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user