Tuesday, July 22nd, 2008...10:43 pm
Jak zapisać do katalogu wartości … duże wartości .. i jeszcze ze "znaczkami"
Jump to Comments
Jorge spytał się mnie dzisiaj jak zapisać w atrybucie obiektu wartość, która tak naprawdę jest zawartością plik XML. Chodziło mu o definicję szablonu CLM, która przechowywana jest jako łańcuch XML. Problemów w takim przypadku jest conajmniej dwa:
- wartość atrybutu jest stosunkowo długa, co nie pozwala na użycie wprost narzędzi linii poleceń
- wartośc ta zawiera różne znaki, między innymi końca linii itp.
Rozwiązanie jest stosunkowo proste i jest opisane w RFC opisującym format LDIF. LDIF pozwala na import danych zakodowanych przy pomocy Base64. W ten sposób, można importować do katalogu dane, zawierające znaki specjalne , wartości Unicode itp.
Jak zamienić wartość tekstową na Base64? Rozwiązań w sieci można znaleźć dużo, może tutaj się przydać narzędzie Base64Tool, które udostępnił Novell.
Mając więc wartość atrybutu "sn":
Nowak
w base64 dostajemy:
Tm93YWs=
Tak przygotowaną wartość można zaimportować używając następującej składni w pliku LDIF:
dn: CN=Jan Nowak,CN=Temp users,DC=W2k,DC=PL
changetype: modify
replace: sn
msClm-Data:: T255c3prbyA=
-
W składni LDIF należy zauważyć tylko następujące zmiany:
- w linii, w której definiujemy nazwę atrybuty i jego wartość używamy dwóch dwukropków ‘::’ żeby oddzialić nazwę od wartości
- jeżeli nasza wartość zakodowana w base64 ma wiele linii, na początku każdej z nich musi się znaleźć spacja.
I to w zasadzie tyle … pozostaje uruchomić LDIFDE -i -f …

Leave a Reply