Instale el bundle en un Symfony 5.4 corriendo en un servidor Apache con PHP v8.1.16.
Seguí todos los pasos de instalación como detalla la documentación, hice pequeñas modificaciones en la configuración, como por ejemplo definición de usuarios en memoria en lugar de por base de datos y cambio en nombre de las rutas, nada importante.
Al intentar acceder desde el navegador a la aplicación aparece el siguiente error:
Por lo que uno puede ver en el archivo vendor/stgbundle/cas-bundle/Service/CasService.php, se pasan los siguientes 4 parámetros en el constructor:
// ...
// vendor/stgbundle/cas-bundle/Service/CasService.php
// linea 34
protected function initPhpCas()
{
phpCAS::setLogger($this->getDebug());
phpCAS::setVerbose(false);
if (!phpCAS::isInitialized()) {
phpCAS::client(
$this->getVersion(),
$this->getHostname(),
$this->getPort(),
$this->getUrl()
);
}
// ...
Y el método client() de la clase phpCAS (archivo: vendor/jasig/phpcas/source/CAS.php, linea 348) requiere 5 no nulos:
// linea 348:
public static function client($server_version, $server_hostname,
$server_port, $server_uri, $service_base_url,
$changeSessionID = true, \SessionHandlerInterface $sessionHandler = null
) {
// ...
En síntesis, pareciera que habría que pasarle un parámetro mas en el método initPhpCas(...) del bundle o no se que estoy haciendo mal.
Modifique el nombre de las rutas pero no creo que tenga algo que ver.
Dejo como referencia los archivos actuales.
DefaultController.php
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController
{
#[Route('/', name: 'app_default')]
public function index(): Response
{
return $this->render('default/index.html.twig', [
'controller_name' => 'DefaultController',
]);
}
#[Route('/logout', name: 'app_logout')]
public function logout()
{
}
#[Route('/failure', name: 'app_failure')]
public function failure(Request $request): Response
{
return new Response(
'Error al autenticar - Usuario: ' . $request->get('user')
);
}
}
security:
enable_authenticator_manager: true
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
# https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
providers:
app_user_provider_memory:
memory:
users:
usuario2: { password: 'la password de usuario2', roles: [ 'ROLE_ADMIN' ] }
# jane_admin: { password: '$2y$13$PFi1I ... rGwXCZ', roles: [ 'ROLE_ADMIN', 'ROLE_SUPER_ADMIN' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secure:
pattern: ^/
provider: app_user_provider_memory
custom_authenticators:
- stg.cas_authenticator
logout:
path: /secure/logout
main:
lazy: true
# provider: app_user_provider_memory
# activate different ways to authenticate
# https://symfony.com/doc/current/security.html#the-firewall
# https://symfony.com/doc/current/security/impersonating_user.html
# switch_user: true
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
Hola,
Instale el bundle en un Symfony 5.4 corriendo en un servidor Apache con PHP v8.1.16.
Seguí todos los pasos de instalación como detalla la documentación, hice pequeñas modificaciones en la configuración, como por ejemplo definición de usuarios en memoria en lugar de por base de datos y cambio en nombre de las rutas, nada importante.
Al intentar acceder desde el navegador a la aplicación aparece el siguiente error:
Por lo que uno puede ver en el archivo vendor/stgbundle/cas-bundle/Service/CasService.php, se pasan los siguientes 4 parámetros en el constructor:
Y el método client() de la clase phpCAS (archivo: vendor/jasig/phpcas/source/CAS.php, linea 348) requiere 5 no nulos:
En síntesis, pareciera que habría que pasarle un parámetro mas en el método initPhpCas(...) del bundle o no se que estoy haciendo mal.
Modifique el nombre de las rutas pero no creo que tenga algo que ver.
Dejo como referencia los archivos actuales.
DefaultController.php