Zdravim,

pisu webovou aplikaci se SpringFrameworkem a narazil jsem na problem s
autentizaci uzivatelu. Mam login form a prislusny controller, ktery po
uspesne autentizaci ulozi nejaky objekt do session. Jenze pak chci v
nekterych jinych controllerech (zejmena ruznych FormController)
zjistit jestli ten objekt v session je nebo ne, jestli je platny, atd.
Jenze nevim jak na to.

Pred muj Controller (subclass SimpleFormControlleru) sice muzu vrazit
HandlerInterceptor.preHandle() ktery session a uzivatele dokaze
validovat. Ale pak muzu vratit jen true/false, kdezto ja bych
potreboval vratit View s vyzvou k zalogovani, coz nejde.

Nejdriv me napadlo pres treti parametr preHandle(), coz je "Object
handler" tomu handleru (i.e. Controlleru) zmenit formView, ale to se
mi taky zda ponekud nepohodlny, nehlede na to, ze AFAIK ten handler je
singleton, takze bych to zmenil pro vsechny budouci requesty, coz neni
uplne "vono". (nebo se pletu?)

Samozrejme bych i mohl znasilnit nekterou z metod FormControlleru a
tuto funkcnost tam nasroubovat, ale to se mi uz vubec nechce. I kdyz
treba isFormSubmission() se vola presne v miste kde by se podobne
zneuzit dala ;-)

Taky jsem narazil na tridu UserRoleAuthorizationInterceptor, jejiz
jmeno zni celkem slibne, ale nejak netusim jak se pouziva. Navic to
vypada ze tenhle interceptor se tyka HTTP autentizace, zatimco ja
potrebuju login pres HTML <form>.

Nemate nekdo tip jak tuhle zalezitost elegantne vyresit?

Diky!

Goo

Odpovedet emailem