Vdaka, v jednom pripade to staci, nasiel som, ze isUserInRole ma aj faces-ovsky ExternalContext to je trochu menej kodu, ako sa dostavat az k requestu
V dalsom to ale nestaci, rozhoduje sa podla viacerych atributov, nielen ci je uzivatel v danej roli, ale aj napr. podla jeho c.pobocky (ma k dispozicii len udaje z vlastnej pobocky) a pod. Je mozne pri standardnej autentizacii kontajneru nejak vytahovat dalsie informacie o prihlasenom uzivatelovi? Alebo si musi potom autentizaciu riesit sama aplikacia, a napr. po prihlaseni informaciami naplnit managed session beanu uzivatela a tu potom injectovat do rozhodovacej logiky. 2012/2/13 Martin Beránek <[email protected]>: > Zdravim, > > JSF jsem sice opustil nekdy pri nastupu JSF2, ale i tak si myslim ze bych > poradit dokazal. To zda k nejake funkcionalite ma nebo nema uzivatel > pristup, bych ve "view" (jsf) resil na urovni komponent. Sada komponent > Tomahawk (myfaces.apache.org) k tomu primo pouziva atributy > enabledOnUserRole a visibleOnUserRole. Pricemz to v jake je uzivatel roli se > zjisti z HttpServletRequest.isUserInRole(String). Takze pokud pouzivate > nejakou standardni autentizaci kontejneru ktera vam spravne naplni Principal > v HttpServletRequestu je o vse postarano. Nebo muzete pred vsechny stranky > predradit filtr, ktery vrati vasi implementaci HttpServletRequestu. > > Martin > > Dne 11.2.2012 17:58, Ivan 596 napsal(a): > >> 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 > > > -- > Martin Beránek > ICZ a.s., Pobočka Brno > http://www.i.cz >
