diff options
Diffstat (limited to 'lib/classes/JsonApi/Routes/SAML/SetupInformation.php')
| -rw-r--r-- | lib/classes/JsonApi/Routes/SAML/SetupInformation.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/classes/JsonApi/Routes/SAML/SetupInformation.php b/lib/classes/JsonApi/Routes/SAML/SetupInformation.php new file mode 100644 index 0000000..6dc8f44 --- /dev/null +++ b/lib/classes/JsonApi/Routes/SAML/SetupInformation.php @@ -0,0 +1,40 @@ +<?php + +namespace Studip\SAML; + +use Config; + +class SetupInformation +{ + private const CONFIG_KEY = 'SAML_CONFIG'; + + public function getConfiguration(): array + { + $config = Config::get(); + $samlConfig = json_decode($config->{self::CONFIG_KEY} ?? '{}', true); + + return [ + 'entityId' => $samlConfig['entityId'] ?? '', + 'assertionConsumerService' => $samlConfig['assertionConsumerService'] ?? '', + 'singleLogoutService' => $samlConfig['singleLogoutService'] ?? '', + 'nameIdFormat' => $samlConfig['nameIdFormat'] ?? '', + 'x509cert' => $samlConfig['x509cert'] ?? '', + 'privateKey' => $samlConfig['privateKey'] ?? '', + 'security' => [ + 'authnRequestsSigned' => $samlConfig['security']['authnRequestsSigned'] ?? false, + 'wantMessagesSigned' => $samlConfig['security']['wantMessagesSigned'] ?? false, + 'wantAssertionsSigned' => $samlConfig['security']['wantAssertionsSigned'] ?? false, + ], + ]; + } + + public function updateConfiguration(array $config): void + { + $existingConfig = $this->getConfiguration(); + $updatedConfig = array_merge($existingConfig, $config); + + $configInstance = Config::get(); + $configInstance->{self::CONFIG_KEY} = json_encode($updatedConfig); + $configInstance->store(self::CONFIG_KEY, $configInstance->{self::CONFIG_KEY}); + } +}
\ No newline at end of file |
