Oracle Waveset nám nabízí mnoho standardních formulářů, ale občas je třeba vytvořit jeden specifický, který se mezi nimi nevyskytuje. S takovýmto problémem jsme se setkali i u nás a to v situaci, kdy bylo potřeba vytvořit formulář pro změnu hesla na nově připojeném systému. Je to centrální autentizační systém. Tento nový formulář slouží běžným uživatelům ke změně svého hesla, správcům potom ke změně hesla normálním uživatelům, kteří spadají do jejich oblasti působnosti (tato oblast je určována podle přiřazené role).
Připojení finančního informačního systému do IdM
Na podzim tohoto roku jsme připojovali finanční informační systém (dále zde označován pod zkratkou FIS) pro vysokou školu od dodavatele BBM. Na této univerzitě již běží Identity Manager Sun/Oracle Waveset, kde je již několik systémů připojených. V tomto článku vás seznámím s průběhem připojení a také s problémy, které při tom nastaly.
Zadání
Identity Manager má za úkol na FISu spravovat uživatele. Přidává nebo odebírá role a také mění jeho atributy. Role ale nevytváří, needituje ani neodstraňuje.
Číst dále »
XPRESS language v Sun IdM (Oracle Waveset)
V tomto článku vám představím XPRESS language. Nejdřív si zde ukážeme, jaký typ programovacího jazyka XPRESS je a jakou má syntaxi. Dále si jazyk popíšeme a ukážeme, k čemu se používá. V textu je také připraveno několik ukázek základních příkazů a úryvky z kódu.
Číst dále »
Oracle: paralelní zpracování
Dnešní databáze běžně obsahují miliony záznamů. Kdyby je měl databázový stroj při každé změně či každém dotazu procházet postupně jeden po druhém, trvalo by to několik hodin. Řešením, které vytěží maximum z dostupného hardware a zvládne úkol v mnohem kratším čase, může být paralelizace. Databáze Oracle verze 11 tuto možnost poskytuje. V článku se podíváme, jak si z pozice administrátora paralelní zpracování na některých databázových objektech vynutit, anebo naopak zakázat, a ukážeme si některé zajímavé parametry, které s paralelizací souvisejí.
Upload a download souborů v Oracle Identity Manageru
Cílem tohoto článku je ukázat způsob, kterým lze v Oracle Identity manageru (Sun Identity Manageru) provádět upload a download souborů z klientského počítače na server.
Úprava schvalovacího workflow v Oracle Identity Managementu
Tento článek popisuje jakým způsobem je možné upravit standardní schvalovací workflow v systému Sun Identity Manager (Oracle Waveset) tak, aby došlo ke schválení i v případě, kdy jeden ze schvalovatelů tuto akci zamítne. Dále zde bude rozebrána funkčnost, kdy jsou schvalovatelé definováni tím, že mají přiřazenou k tomu určenou roli.
Import a export rolí ze Oracle Identity Managementu do CSV
Cílem tohoto článku je ukázat, jakým způsobem je možné exportovat a importovat role ze Sun Identity Manageru (Oracle Waveset).
Jeden z našich klientů, kterému pomáháme v oblasti identity managementu potřeboval, aby z Identity Managera (dále jen IdM) bylo možné vyexportovat role do textového souboru. Exportované soubory s rolemi budou editovat správci jednotlivých systémů a následně bude prováděn hromadný import do IdM.
Vytvoření vlastního resource adaptéru pro Sun Identity Manager
Tento článek popisuje, jakým způsobem je možné naprogramovat vlastní “Standard Resource Adapter” pro produkt Sun Identity Manager, respektive Oracle Waveset 8.1. Při psaní jsem vycházel ze zkušeností, které jsem společně s kolegy nasbíral při programování “univerzálního SSH adaptéru pro unixové systémy (pro Linux, AIX, HP-UX, Solaris a Sambu)” .
Manuální instalace Oracle Waveset 8.1.1 patch 1
Příspěvek obsahuje návod, jak nainstalovat Oracle Waveset (dříve Sun Identity Manager – IdM), patch 1 a také nastavení tomcatu, ve kterém bude IdM deployováno a provozováno. Číst dále »
Sun-Oracle IdM: Zobrazení approval work items všech uživatelů
V administračním rozhraní Sun Identity Manageru (dále jen IdM) na záložce Work Items -> Approvals je možnost vylistovat a následně pracovat se schvalovacími work itemy všech schvalovatelů, tzn. těch, co mají přiřazenou administrační roli “Approver Administrator”.
V jednom projektu jsme ale museli řešit problém, jak na tomto formuláři přidat možnost pracovat se všemi schvalovacími položkami, tedy i s položkami, které patří obyčejným uživatelům.
Konkrétně jde o formulář “Work Item List”, který prezentuje data z pohledu “WorkItem List View”.
Jak se dá dočíst v dokumentaci (http://docs.sun.com/app/docs/doc/820-5821/bvbjl?l=en&a=view&q=WorkItemList), tento pohled obsahuje atribut “workItems”.
Proto se nabízí řešení, naplnít tento atribut vlastním seznamem položek. Ty jde získat například použitím metody “com.waveset.ui.FormUtil.getObjectNames” s parametrem “WorkItem” v kombinaci s metodou “com.waveset.ui.FormUtil.getObject”. Potom je ještě potřeba vytvořit GenericObject atd. Výsledkem je, že se sice položky v seznamu objeví a pokud se podíváme na jejich detail, tak jdou i schválit. Nicméně, pokud v seznamu označíme více položek a ty chceme například schválit, nic se nestane.
Po dekompilaci (pomocí JAD) a prozkoumání příslušného view handleru (com.waveset.view.WorkItemListViewer v balíčku “idm.jar”) zjistíme, že ve výše zmiňovaném případě, je ve view handleru znovu vytvořen seznam work itemu, který se prochází položka po položce a kontroluje se, jestli je obsažena v seznamu těch námi vybraných. Proto, i když v tomto seznamu vybraných položek bude nějaká nová (od obyčejného uživatele), tak se vůbec nebude zpracovávat.
Celý problém se nakonec podařilo vyřešit vytvořením vlastního view handleru “MyWorkItemListViewer” na základě dekompilovaného “WorkItemListVieweru”. Jediné, co bylo potřeba změnit, byla metoda “processQueryResult”. V jejím těle si přečteme hodnotu našeho parametru, který nám říká, jestli se mají zobrazit všechny položky nebo ne.
boolean getAll = view.getBoolean("getAllWorkItems");
A o pár řádku níže, kde se kontroluje, jestli “owner” je v “controlledUsers”, tuhle hodnotu použijeme. My jsme třeba celou podmínku, která tento blok obaluje, změnili z:
if(accountId == null)
na
if(accountId == null && !getAll)
Tím pádem, pokud bude “getAll” nastaveno na “true”, tak se vůbec nebude provádět kontrola, jestli vlastník work itemu je v seznamu “controlledUsers”.
Handler musí být umístěn v balíčku “com.waveset.view”. Aby se použil náš view handler, zmeníme v “approval/approval.jsp” příkaz
form.setViewId("WorkItemList");
na
form.setViewId("MyWorkItemList");
Poslední věc, kterou je ještě potřeba udělat, je zajistit, aby v combo-boxu na formuláři “Work Item List” byla možnost “All users”. Po jejím vybrání se nastaví atribut pohledu “user” na hodnotu “null” a také náš atribut “getAllWorkItems”. Nulová hodnota atributu “user” zajistí, že se bude provádět kód view handleru, kde se používá náš atribut.
Pole “user” jsme upravili následovně:
<Field name='getAllWorkItems'>
<Expansion>
<eq>
<ref>userCombo</ref>
<s>___ALL_APPROVAL_ITEMS___</s>
</eq>
</Expansion>
</Field>
<Field name='user'>
<Expansion>
<cond>
<eq>
<ref>userCombo</ref>
<s>___ALL_APPROVAL_ITEMS___</s>
</eq>
<null/>
<ref>userCombo</ref>
</cond>
</Expansion>
</Field>
<Field name='userCombo'>
<Display class='Select'>
<Property name='command' value='Recalculate'/>
<Property name='nullLabel' value='UI_APPR_JAVA_ALL_APPROVERS'/>
<Property name='valueMap'>
<block>
<defvar name="values">
<list>
<s>___ALL_APPROVAL_ITEMS___</s>
<s>UI_APPR_JAVA_ALL_USERS</s>
</list>
</defvar>
<invoke name="sort" class="java.util.Collections">
<ref>users</ref>
</invoke>
<dolist name="user">
<ref>users</ref>
<append name="values">
<ref>user</ref>
<ref>user</ref>
</append>
</dolist>
<ref>values</ref>
</block>
</Property>
<!--
<Property name='allowedValues' value='$(users)'/>
<Property name='sorted' value='true'/>
-->
</Display>
</Field>