stgbundle/cas-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

stgbundle/cas-bundle

Composer 安装命令:

composer require stgbundle/cas-bundle

包简介

Bundle de CAS para Symfony 7.4+

README 文档

README

Bundle de autenticación CAS (Central Authentication Service) para Symfony 7.4 y PHP 8.2+.

Requisitos

Componente Versión mínima
PHP 8.2
Symfony 7.4
symfony/security-bundle 7.4

Instalación

1). Instalación desde packagist.org: https://packagist.org/packages/stgbundle/cas-bundle

composer require stgbundle/cas-bundle

Nota: Debe tener instalado previamente el SecurityBundle: composer require symfony/security-bundle

En el config/bundles.php, el SecurityBundle se debe cargar antes que CasBundle:

return [
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    Symfony\Bundle\SecurityBundle\SecurityBundle::class   => ['all' => true],
    STG\DEIM\Security\Bundle\CasBundle\CasBundle::class  => ['all' => true],
    // ... otros bundles
];

2). Ajustar la configuración de seguridad — config/packages/security.yaml

security:
    providers:
        cas_users:
            entity:
                class: App\Entity\Usuario
                property: cuil

    firewalls:
        dev:
            pattern: ^/(_profiler|_wdt|assets|build|cas/proxy-callback)/
            security: false

        main:
            # lazy: false es obligatorio con CAS: el entry point debe dispararse
            # para requests anónimas sin esperar credenciales del usuario.
            lazy: false
            provider: cas_users
            cas:
                check_path: /cas/check      # Ruta donde CAS redirige con el ticket
                failure_path: /failure      # Ruta de error en caso de fallo
            entry_point: cas.authenticator.main
            logout:
                path: /secure/logout        # Ruta de logout de la aplicación

    access_control:
        - { path: ^/cas/check, roles: PUBLIC_ACCESS }
        - { path: ^/failure,   roles: PUBLIC_ACCESS }
        - { path: ^/,          roles: ROLE_USER }

Nota: entry_point varía según cómo se llame el firewall ($firewallName) puede ser que sea secure, entonces se define entry_point: cas.authenticator.secure

3). Configuración del bundle

Crear el archivo config\packages\cas.yaml:

cas:
    url: https://dsso.santafe.gov.ar/service-auth
    cert: false
    username_attribute: 'cuil' 
    proxy: false

4). La aplicación necesita al menos estas tres rutas:

// src/Controller/DefaultController.php
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class DefaultController
{
    #[Route('/failure', name: 'failure')]    
    public function failure(Request $request): Response
    {
        return new Response(
            'Error al autenticar - Usuario: ' . $request->get('user')
        );
    }

    #[Route('/secure/logout', name: 'logout')]
    public function logout()
    {
    }

    #[Route('/cas/check', name: 'cas_check')]
    public function casCheck(): Response
    {
        // El CasAuthenticator intercepta esta ruta cuando CAS redirige con ?ticket=
        // Si se llega aquí sin ticket, redirigir al inicio.
        return new RedirectResponse('/');
    }

统计信息

  • 总下载量: 4.69k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-08-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固