SimpleSamlphp: добавить атрибут внутри другого атрибута

Я на самом деле использую simpleSamlPhp для создания аутентификации на моем веб-сайте, поэтому у меня есть поставщик услуг, установленный на моем веб-сайте, и я также устанавливаю поставщика удостоверений, пока их не возникнет проблема. Мой провайдер подключается к моему провайдеру и работает нормально.

Я имею в файле "config/authsources.php" моего другого пользователя:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => 'att2'
        )
    ),
    ...
),
...

Моя проблема в том, что я хочу иметь атрибут с несколькими атрибутами в одном атрибуте, потому что есть что-то вроде этого:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => array(
                'Attribut21' =>  'att21',
                'Attribut22' => 'att22',
                 ...    
            )
        )
    ),
    ...
),
...

Но когда я делаю это, у меня появляется эта ошибка:

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
1 C:\wamp\www\Idp\simplesamlphp\www\_include.php:37 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: Exception: Invalid attributes for user userTest in authentication source example-userpass: Invalid attribute value for attribute Attribut2: array (
  'Attribut21' => 'att21',
  'Attribut22' => 'att22'
)

Так как же я могу добавить аттрибут с другим атрибутом?

2 ответа

Решение

Это не было действительно трудно, наконец, я просто должен сделать:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => array(
                'att21',
                'att22',
                 ...    
            )
        )
    ),
    ...
),
...

+ Изменить

'Attribut21' =  'att21',
'Attribut22' = 'att22',

в

'Attribut21' =>  'att21',
'Attribut22' => 'att22',

Так как они должны быть ассоциативным массивом.

РЕДАКТИРОВАТЬ: хорошо, не уверен, в чем проблема здесь... Я опубликую пример, и, надеюсь, вы понимаете шаблон. (каждый массив на самом деле больше атрибутов)

<?php
$config = array(
    'example-userpass' => array(
        'exampleauth:UserPass',
        'student:studentpass' => array(
            'uid' => array('student'),
            'eduPersonAffiliation' => array('member', 'student'),
        ),
        'employee:employeepass' => array(
            'uid' => array('employee'),
            'eduPersonAffiliation' => array('member', 'employee'),
        ),
    ),
);
Другие вопросы по тегам