Атрибуты#
Внешний валидатор атрибута#
Если возможностей, предоставляемых правилами преобразования входных значений с помощью регулярных выражений недостаточно для реализации требуемой бизнес-логики проверки допустимости значения атрибута, то для атрибута можно запрограммировать и настроить использование внешнего валидатора.
Для этого нужно создать программу с внешним валидатором и собрать ее в JAR-файл.
Созданный JAR-файл нужно скопировать на серверы с приложениями Blitz
Identity Provider. Адрес размещения JAR-файлов прописать в Java-опцию
extensionsDir
.
Пример:
export JAVA_OPTS="${JAVA_OPTS} -DextensionsDir=/usr/share/identityblitz/extensions"
В блоке настроек атрибутов blitz.prod.local.idp.id-attrs.attrsMeta
в
блок описания атрибута, для которого нужно включить проверку через
внешний валидатор, необходимо добавить в блоке source
блок
validators
:
в настройке
className
прописать адрес Java-класса, реализующего имплементацию интерфейсаAttributeValidator
из Blitz JDK;в блоке
conf
прописать настройки, передающиеся в валидатор.
Пример настроек:
"id-attrs" : {
"attrsMeta" : [
{
{
"class" : "verified-mobile",
"format" : "string",
"name" : "phone_number",
"realmed" : false,
"required" : false,
"searchable" : true,
"source" : {
"validators" : [
{
"className" : "validator.MobileValidator",
"conf" : {
"conf1" : "value1"
}
}
],
"type" : "idStore"
},
"unique" : false
},
…
}
]
}
Транслятор атрибута#
С атрибутом можно ассоциировать транслятор, описывающий правила
преобразования атрибута при чтении из LDAP-каталога и при записи в
LDAP-каталог. В блоке настроек хранилища атрибута в разделе настроек
соответствия атрибутов
blitz.prod.local.idp.id-stores.list.mappingRules
в блоке описания
атрибута, для которого нужно включить транслятор, необходимо добавить
блок translator
с настройкой className
, в которой указать имя
Java-класса, реализующего алгоритм трансляции. Java-класс должен
реализовывать имплементацию интерфейса LdapAttributeTranslator из Blitz
JDK.
При необходимости настроить транслятор для атрибута objectGUID
из
LDAP-каталога Active Directory, чтобы этот атрибут представлялся не в
байтовом виде, а в форме строки GUID, можно использовать встроенный в
Blitz Identity Provider Java-класс
com.identityblitz.idp.store.ldap.core.translator.ObjectGUIDTranslator
.
Пример настройки:
"id-stores" : {
"list" : [
{
…
"mappingRules" : [
…
{
"name" : "objectGUID",
"storeAttr" : "objectGUID",
"translator" : {
"className" :
"com.identityblitz.idp.store.ldap.core.translator.ObjectGUIDTranslator"
}
],
},
…
]
}
При использовании самостоятельно разработанного транслятора необходимо создать программу с внешним транслятором и собрать ее в JAR-файл.
Созданный JAR-файл нужно скопировать на серверы с приложениями Blitz
Identity Provider. Адрес размещения JAR-файлов прописать в Java-опцию
extensionsDir
.
Пример:
export JAVA_OPTS="${JAVA_OPTS} -DextensionsDir=/usr/share/identityblitz/extensions"