seiffert/crowd-auth-bundle

该组件允许 Symfony 应用程序对 Atlassian Crowd 进行用户身份验证。

dev-master 2014-07-28 21:46 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:47:17 UTC


README

该组件允许 Symfony 应用程序对 Atlassian Crowd 进行用户身份验证。

Build Status

安装

通过 composer 安装该软件包

composer.json:

    "require": {
        ...
        "seiffert/crowd-auth-bundle": "dev-master",
        ...
    }

在 AppKernel 中激活该组件及其依赖组件 SeiffertCrowdRestBundle

app/AppKernel.php:

    public function registerBundles()
    {
        $bundles = array(
            ...
            new Seiffert\CrowdRestBundle\SeiffertCrowdRestBundle(),
            new Seiffert\CrowdRestBundle\SeiffertCrowdAuthBundle(),
            ...
        );
        ...
    }

配置

要连接到您组织的 Crowd 实例,您需要在项目配置中添加一些条目(例如,在 app/config/config.yml 中)

seiffert_crowd_rest:
    url: https://<crowd-url>/crowd/rest/usermanagement/1
    application:
        name: <application-name>
        password: <application-password>
  • crowd-url:您的 Crowd 实例的 URL/主机名。
  • application-name:在 Crowd 中注册的应用程序名称。
  • application-password:在 Crowd 中注册的应用程序密码。

要使用该组件的认证提供程序,您可以使用它作为 Symfony 的 SecurityBundle 的扩展。在您的项目 security.yml 中,您需要配置一个明文密码编码器、组件的用户提供程序,并在您的防火墙定义中使用密钥 crowd_login 而不是 form_login。其余部分与正常表单登录完全相同:您决定 URL 和登录表单。

示例 security.yml

security:
    encoders:
        PS\CrowdRestBundle\Crowd\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        crowd:
            id: ps.crowd_auth.user_provider

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login:
            pattern:  ^/auth/login$
            security: false

        secured_area:
            pattern:    ^/
            crowd_login:
                check_path: /auth/check
                login_path: /auth/login
            logout:
                path:   /auth/logout
                target: /

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_USER }