在symfony';上的LDAP连接后向用户添加角色;s项目

在symfony';上的LDAP连接后向用户添加角色;s项目,symfony,authentication,ldap,roles,Symfony,Authentication,Ldap,Roles,我在symfony 5中为我的网站做了一个LDAP身份验证 身份验证工作正常,用户将“ROLE\u user”作为角色。 但是,如果该用户在管理组(LDAP上)中,他需要有“角色超级管理员” 我尝试使用:addRole()-但它不起作用 你能帮我吗?如何修改代码以向用户添加角色?Thx家伙 #app/config/services.yaml #此文件是配置您自己的服务的入口点。 #包/子目录中的文件配置依赖项。 #在部署应用程序的每台计算机上,将不需要更改的参数放在此处 # https://sy

我在symfony 5中为我的网站做了一个LDAP身份验证

身份验证工作正常,用户将“ROLE\u user”作为角色。 但是,如果该用户在管理组(LDAP上)中,他需要有“角色超级管理员”

我尝试使用:addRole()-但它不起作用

你能帮我吗?如何修改代码以向用户添加角色?Thx家伙

#app/config/services.yaml
#此文件是配置您自己的服务的入口点。
#包/子目录中的文件配置依赖项。
#在部署应用程序的每台计算机上,将不需要更改的参数放在此处
# https://symfony.com/doc/current/best_practices/configuration.html#application-相关配置
参数:
服务:
#*此*文件中服务的默认配置
_默认值:
autowire:true#自动在服务中注入依赖项。
自动配置:true#自动将您的服务注册为命令、事件订阅者等。
Symfony\Component\Ldap\Ldap:
参数:['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
论据:
-主机:ldap.example.com
港口:389
#加密:tls
选项:
协议版本:3
转介:假
#使src/中的类可用作服务
#这将为id为完全限定类名的每个类创建一个服务
应用\:
资源:'../src/*'
排除:“../src/{DependencyInjection,实体,迁移,测试,Kernel.php}”
#控制器是单独导入的,以确保可以注入服务
#作为操作参数,即使不扩展任何基本控制器类
应用程序\控制器\:
资源:“../src/Controller”
标记:['controller.service_参数']
#需要显式配置时添加更多服务定义
#请注意,最后的定义总是*替换*以前的定义
#app/config/packages/security.yaml
安全:
# https://symfony.com/doc/current/security.html#where-用户是否来自用户提供商
供应商:
我的ldap:
ldap:
服务:Symfony\Component\Ldap\Ldap
基本dn:dc=示例,dc=com
搜索dn:cn=username,ou=Administration,dc=example,dc=com
搜索密码:userPassword
默认角色:角色用户
防火墙:
开发人员:
模式:^/((探查器wdt)| css |图像| js)/
安全性:错误
主要内容:
匿名:~
表单\登录\ ldap:
登录路径:登录
检查路径:登录
服务:Symfony\Component\Ldap\Ldap
dn\U字符串:ou=AGROUP此处为MyUsers,dc=example,dc=com
查询字符串:'(samaccountname={username}'
搜索dn:cn=username,ou=Administration,dc=example,dc=com
搜索密码:userPassword
注销:
路径:app\u注销
访问控制:
-{path:^/$,角色:是否经过身份验证\u匿名}
-{路径:^/info$,角色:角色\用户}
//app/src/Controller/defaultController.php
{# app/templates/security/login.html.twig #}

{% extends 'base.html.twig' %}
 
{% block body %}
    {% if error %}
        <div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
    {% endif %}
     
    <form method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" required />
     
        <label for="password">Password:</label>
        <input type="password" id="password" name="_password" required />

        <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
     
        <button type="submit">login</button>
    </form>

    <a href='/logout'> Logout </a>
{% endblock %}