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