Skip to content

Commit

Permalink
[TASK] output notice, when calling the metadata middleware with no ty…
Browse files Browse the repository at this point in the history
…po3 login
  • Loading branch information
cdaecke committed Mar 30, 2022
1 parent 97c60ea commit 6c03542
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions Classes/Middleware/SamlMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,32 +57,36 @@ public function __construct(ResponseFactoryInterface $responseFactory, SettingsS
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
if (
1648123062 == GeneralUtility::_GP('loginProvider')
&& isset($GLOBALS['BE_USER']->user)
) {
if (1648123062 == GeneralUtility::_GP('loginProvider')) {
if (null !== GeneralUtility::_GP('mdsamlmetadata')) {
try {
$extSettings = $this->settingsService->getSettings();
// Now we only validate SP settings
$settings = new \OneLogin\Saml2\Settings($extSettings['saml'], true);
$metadata = $settings->getSPMetadata();
$errors = $settings->validateMetadata($metadata);
if (empty($errors)) {
$response = $this->responseFactory
->createResponse()
->withHeader('Content-Type', 'text/xml; charset=utf-8');
if (isset($GLOBALS['BE_USER']->user)) {
try {
$extSettings = $this->settingsService->getSettings();
// Now we only validate SP settings
$settings = new \OneLogin\Saml2\Settings($extSettings['saml'], true);
$metadata = $settings->getSPMetadata();
$errors = $settings->validateMetadata($metadata);
if (empty($errors)) {
$response = $this->responseFactory
->createResponse()
->withHeader('Content-Type', 'text/xml; charset=utf-8');

$response->getBody()->write($metadata);
return $response;
} else {
throw new \OneLogin\Saml2\Error(
'Invalid SP metadata: ' . implode(', ', $errors),
\OneLogin\Saml2\Error::METADATA_SP_INVALID
);
$response->getBody()->write($metadata);
return $response;
} else {
throw new \OneLogin\Saml2\Error(
'Invalid SP metadata: ' . implode(', ', $errors),
\OneLogin\Saml2\Error::METADATA_SP_INVALID
);
}
} catch (Exception $e) {
echo $e->getMessage();
}
} catch (Exception $e) {
echo $e->getMessage();
} else {
$response = $this->responseFactory->createResponse();

$response->getBody()->write('Please log into TYPO3!');
return $response;
}
}
}
Expand Down

0 comments on commit 6c03542

Please sign in to comment.