Dobry den,

dalsi principielni moznost je pouzit PhaseListener na urovni JSF Lifecyclu ve fazi RESTORE_VIEW a implementovat dle svych pozadavku metodu afterPhase. Pouzivam to pro standardni prihlaseni do aplikace a do CDI Beany (JSF Managed nepouzivam) si ulozim uzivatele, ktery je prihlaseny.

Potom pokud potrebuji prostoupit k prihlasenemu uzivateli v nejake CDI Beane, tak pres @Inject si ji tam vlozim. Analogicky by to slo pokud se nepletu pres ManagedProperty u klasickych ManagedBean.

Ve view pak maji JSF komponenty atribut rendered, kde opet muzete pres vyraz vyhodnotit kdy zobrazit a kdy ne.
-------------
Dalsi reseni je zminena container security tj. userInRole() jak je popsane vyse, nicmene tu jsem zatim nikdy nenakonfiguroval, jelikoz mi to prislo casto, ze budu potrebovat vlastni JAAS provider. A nebo jsem to spatne pochopil.
------------
Pripadne jsem videl nekde postup, jak naroubovat Spring Security na JSF. V podstate jde o prvni variantu ale jiz nekym napsanou a sofistikovanejsi. Zkousel jsem, ale pak jsem uviznul v pekle jaru a verzi a nakonec pouzil prvni variantu s Listenerem, ktera se mi nejvice podobala mym vzorovym resenim pro studenty ze Struts 1 ci 2.

Lumi(r)

Ivan 596 wrote:
Zdravim,

chcem sa opytat na kontrolu pristupu v JSF 2, ale ani nie tak
"komponent" (je v podstate jedno ci sa uzivatel dostane k nejakej
stranke), ako skor kontrolu v kazdej action metode, ktora uklada /
vracia vysledky.
alebo sa nato pozeram spatne a skor sa kontroluje pristup ku komponentam ?

Na vysvetlenie: v Strutse ak boli tri urovne (uzivatel, zamestnanec,
admin) nastavilo sa pri prihlaseni session atribut a kazda napr.
zamestnanecka akcia (strutsovske execute metody) obsahovala

String zamId = (String)request.getSession().getAttribute("zamId");
if (zamId==null || zamId.length()<1) {
     return mapping.findForward("neopravnenyPristup");
}

V JSF 2 ale vyvolat session vyzaduje pomerne skaredy kod s ExternalContext-om,
je riesenim @ManagedProperty, cize injekcia nejakeho session beanu do
kazdeho beanu kde su metody spracovavajuce akciu?

Alebo sa nato pozeram principialne spatne a inak sa kontroluje pristup
v JSF 2 vo velkych aplikaciach?

este poznamenavam, ze bez EJB, ak vsetci pouzivate JSF prevazne s EJB,
tak by ma zaujimalo nakolko sa JSF vyuziva samostatne a ci je to skor
rarita...

diky moc,

ivan

Odpovedet emailem