stgbundle / cas-bundle
为 symfony 6.* 提供的 cas-bundle
7.1
2023-12-29 14:06 UTC
Requires
- php: >=8.1
- apereo/phpcas: ^1.6
- symfony/dependency-injection: 6.4.*
- symfony/routing: 6.4.*
- symfony/security-bundle: 6.4.*
This package is not auto-updated.
Last update: 2024-09-20 17:58:04 UTC
README
为 Symfony 6.4 提供的中央认证服务
安装
1). 从 packagist.org 安装: https://packagist.org.cn/packages/stgbundle/cas-bundle
composer require stgbundle/cas-bundle
2). 调整安全配置 (security.yml)
security: # ... providers: app_user_provider: entity: class: App\Entity\Usuario property: cuil firewalls: secure: pattern: ^/secure provider: app_user_provider custom_authenticators: - stg.cas_authenticator logout: path: /secure/logout main: anonymous: lazy # ...
3). 配置 bundle
创建文件 config\packages\cas.yaml
cas: hostname: dsso.santafe.gob.ar url: /service-auth # opcional port: 443 # opcional service_base_url: https://:80 # Url base del sistema que utiliza el bundle user: cuil # Si se quiere acceder por cuil sino uid. Por defecto se utiliza cuil logout_redirect: home # opcional login_failure: failure # opcional - Debe definirse en el área pública debug: true # opcional - Se recomienda false en producción version: "3.0" # opcional
4). 添加空路由
// src/Controller/DefaultController.php /** * @Route("/secure/logout") */ public function logout() { }
5). 登录失败
如果用户不存在于应用程序数据库中,该 bundle 将请求重定向到 bundle 配置中定义的路由,并根据需要传递 cuil 或 uid 作为参数
/** * @Route("/failure", name="failure") */ public function failure(Request $request): Response { return new Response( 'Error al autenticar - Usuario: ' . $request->get('user') ); }
6). 与 Ajax 的使用
该 bundle 检测到调用是 Ajax,如果需要授权,则不会将其重定向到 SSO 界面,而是返回 http 401 (Unauthorized) 状态码。客户端需要检测此响应并重定向调用。