1. Go to this page and download the library: Download lotashinski/saml-sp-package library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lotashinski / saml-sp-package example snippets
use Grsu\SamlSpService\SamlServiceFactory;
use Grsu\SamlSpService\SamlServiceInterface;
const CONFIG_FILE_PATH = __DIR__ . "/config/sso_saml.yaml"
// create service from factory
$samlServiceFactory = new SamlServiceFactory($loggerInterface, $requestStack);
$samlService = $samlServiceFactory->createServiceFromConfigFile(CONFIG_FILE_PATH);
namespace App\Controller;
use Grsu\SamlSpService\Exception\InvalidServiceProviderMetadataException;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class AuthController extends AbstractController
{
private SamlServiceInterface $samlService;
private EventDispatcherInterface $eventDispatcher;
public function __construct(
SamlServiceInterface $samlService,
EventDispatcherInterface $eventDispatcher
)
{
$this->samlService = $samlService;
$this->eventDispatcher = $eventDispatcher;
}
/**
* @throws InvalidServiceProviderMetadataException
*/
#[Route('/saml/metadata', name: 'saml_auth', methods: ['GET'])]
public function metadata(): Response
{
$response = new Response();
$response->headers->set('Content-Type', 'text-xml');
$response->setContent($this->samlService->getMetadata());
return $response;
}
/**
* @throws SamlFlowException
*/
#[Route('/saml/login', name: 'saml_start_login_flow', methods: ['GET'])]
public function startLoginFlow(): Response
{
return $this->redirect($this->samlService->createLoginFlowAndReturnRedirectUrl());
}
/**
* @throws InvalidSamlResponseException
* @throws SamlFlowException
*/
#[Route('/saml/login', name: 'saml_confirm_login_flow', methods: ['POST'])]
public function confirmLoginFlow(): Response
{
$user = $this->samlService->completeLoginFlow();
// ...
return $this->json("success");
}
/**
* @throws SamlFlowException
*/
#[Route('/saml/logout', name: 'saml_logout_flow', methods: ['GET'])]
public function configureOrReceiveLogoutFlow(): Response
{
$this->samlService->createOrConfirmLogoutFlow();
// ...
return $this->json("user logout");
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.