-
Notifications
You must be signed in to change notification settings - Fork 5
Description
в ЛДАП-адаптере есть функция преобразования логина, включается секцией UserNameTransformRules.
В этой секции задаются правила трансформации юзернейма. Похожая штука есть и в радиусе. Но в радиусе трансформация происходит перед проверкой первого фактора, а в ЛДАП - перед проверкой второго.
Задача
Обогатить функционал трансформации в ЛДАП-адаптере таким образом, чтобы через секцию можно была задавать момент, когда вызывать трансформацию: перед первым фактором, перед вторым фактором.
Работать это должно примерно так
Адаптер парсит правила и раскидывает их по двум кучам: правила перед первым фактором, правила перед вторым.
Когда наступает момент проверки первого фактора, выполняются преобразования по правилам из первой кучи. Перед вторым - соответсвенно.
Обратить внимание
Сейчас эти правила работают в режимо "до второго фактора". Это означает, что если используется старый синтаксис, он по умолчанию улетает во вторую кучу.
Примеры
Стандартная секция (сейчас):
<UserNameTransformRules>
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</UserNameTransformRules>
Обновленная секция (все вместе):
<UserNameTransformRules>
<!-- До 1 фактора /-->
<BeforeFirstFactor>
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</BeforeFirstFactor>
<!-- До 2 фактора /-->
<BeforeSecondFactor>
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</BeforeSecondFactor>
<!-- легаси, которое расценивается, как "До 2 фактора" -->
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</UserNameTransformRules>
Еще пример - тут все должно уйти во вторую кучу:
<UserNameTransformRules>
<!-- До 2 фактора /-->
<BeforeSecondFactor>
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</BeforeSecondFactor>
<!-- легаси, которое расценивается, как "До 2 фактора" -->
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</UserNameTransformRules>
Еще пример - должно уйти впервую и вторую:
Обновленная секция (все вместе):
<UserNameTransformRules>
<!-- До 1 фактора /-->
<BeforeFirstFactor>
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</BeforeFirstFactor>
<!-- легаси, которое расценивается, как "До 2 фактора" -->
<add match="USER_" replace="" />
<add match="_" replace="." count="1" />
<add match="_" replace="-" />
</UserNameTransformRules>