Toho může být docela dost, každopádně byste měl mít v chainu filtrů nakonfigurovaný "authenticationProcessingFilter" odkazující se na class org.acegisecurity.ui.webapp.AuthenticationProcessingFilter, dále "filterInvocationInterceptor" s třídou org.acegisecurity.intercept.web.FilterSecurityInterceptor a nbakonec "exceptionTranslationFilter" s třídou org.acegisecurity.ui.ExceptionTranslationFilter.
Prvně jsmenovaný filtr zajišťuje, že se zalogujete v případě že zadáte v přihlašovacím formuláři uživatelské údaje. Druhý filtr zajišťuje, že pokud přistupujete na chráněný resource (nakonfigurováno v definitionSourceMaintainer) a nejste přihlášený (v SecurityContextu není objekt Authentication) budete vyhozena exception, kterou zpracuje třetí jmenovaný filtr a přesměruje uživatele na přihlašovací stránku. u mě konfigurace vypadá následovně: <bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter"> <property name="authenticationManager" ref="authenticationManager"/> <property name="authenticationFailureUrl" value="/secure/loginFailure.do"/> <property name="defaultTargetUrl" value="/homepage.do"/> <property name="filterProcessesUrl" value="/secure/performLogin.do"/> <property name="rememberMeServices" ref="nullRememberMeServices"/> <property name="forwardWhenFailure" value="false"/> </bean> <bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor"> <property name="authenticationManager" ref="authenticationManager"/> <property name="definitionSourceMaintainer" ref="patternSecurityDefinitionSourceMantainer"/> <property name="accessDecisionManager"> <bean class="org.acegisecurity.vote.AffirmativeBased"> <property name="allowIfAllAbstainDecisions" value="false"/> <property name="decisionVoters"> <list> <ref bean="authenticatedVoter"/> </list> </property> </bean> </property> </bean> <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter"> <property name="authenticationEntryPoint"> <bean class="com.fg.user.cps.filter.SelfAwareRelocationAuthenticationProcessingFilterEntryPoint"> <property name="loginFormUrl" value="/secure/loginDialog.do"/> <property name="forceHttps" value="true"/> <property name="urlProcessor" ref="urlProcessor"/> </bean> </property> <property name="accessDeniedHandler" ref="accessDeniedHandler"/> </bean> Bean je v konfiguraci samozřejmě víc, ale uvedl jsem jen ty základní. Filtry musí být uvedeny v tomto pořadí v základním delegating filtru, aby správně fungovaly. Honza N. 2008/1/23, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > Máme malou webovou aplikaci používající Spring. > Po jednoduchém přihlášení přidáváme atribut 'user' do session a pro > neoprávněný > přístup (uhádnutí adresy) máme na každé jsp (kromě loginu) tento kód > > <c:if test="${sessionScope.user == null}"> > <c:redirect url="/Login.do"></c:redirect> > </c:if> > > No a teď jsme začali používat Acegi - zadařilo se a můžeme používat na jsp > stránkách > <authz:authorize> značky. > > Ale bohužel teď použití 'uhodnuté' adresy bez přihlášení jde do chyby: > > org.acegisecurity.AuthenticationCredentialsNotFoundException: > An Authentication object was not found in the SecurityContext > at org.acegisecurity.intercept.AbstractSecurityInterc > eptor.credentialsNotFound(AbstractSecurityIntercep tor.java:375) > at org.acegisecurity.intercept.AbstractSecurityInterc > eptor.beforeInvocation(AbstractSecurityInterceptor .java:288) > at org.acegisecurity.intercept.web.FilterSecurityInte > rceptor.invoke(FilterSecurityInterceptor.java:104) > at org.acegisecurity.intercept.web.FilterSecurityInte > rceptor.doFilter(FilterSecurityInterceptor.java:72 ) > at org.acegisecurity.util.FilterChainProxy$VirtualFil > terChain.doFilter(FilterChainProxy.java:275) > ........... > > Netušíte, co může chybět v konfiguračním xml ? > > Díky. -- -------------------------------------------------------------- Ing. Jan Novotný @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ http://blog.novoj.net Myšlenky dne otce Fura --------------------------------------------------------------