Hi,

I'm building a web application build with Struts+Spring+Acegi, I'm building the 
login page but I'm getting the next error:



javax.servlet.ServletException: Cannot retrieve mapping for action 
/j_acegi_security_check
        org.apache.jasper.runtime.PageContextImpl.doHandle  
PageException(PageContextImpl.java:825)
        org.apache.jasper.runtime.PageContextImpl.handlePa  
geException(PageContextImpl.java:758)
        org.apache.jsp.userLogin_jsp._jspService(userLogin  _jsp.java:148)
        org.apache.jasper.runtime.HttpJspBase.service(Http  JspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet  .java:802)
        org.apache.jasper.servlet.JspServletWrapper.servic  
e(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFil  
e(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspSe  rvlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet  .java:802)



javax.servlet.jsp.JspException: Cannot retrieve mapping for action 
/j_acegi_security_check
        org.apache.struts.taglib.html.FormTag.lookup(FormT  ag.java:810)
        org.apache.struts.taglib.html.FormTag.doStartTag(F  ormTag.java:506)
        org.apache.jsp.userLogin_jsp._jspx_meth_html_form_  
0(userLogin_jsp.java:213)
        org.apache.jsp.userLogin_jsp._jspService(userLogin  _jsp.java:136)
        org.apache.jasper.runtime.HttpJspBase.service(Http  JspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet  .java:802)
        org.apache.jasper.servlet.JspServletWrapper.servic  
e(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFil  
e(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspSe  rvlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet  .java:802)


My Acegi context file looks like:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
"http://www.springframework.org/dtd/spring-beans.dtd";>
<beans>
        <bean id="filterChainProxy" 
class="org.acegisecurity.util.FilterChainProxy">
                <property name="filterInvocationDefinitionSource">
                        <value>
                                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                                PATTERN_TYPE_APACHE_ANT
/*.do*=httpSessionContextIntegrationFilter,authenti
cationProcessingFilter,exceptionTranslationFilter,
filterInvocationInterceptor</value>
                </property>
        </bean>
        
   <bean id="passwordEncoder" 
class="org.acegisecurity.providers.encoding.Md5Pas  swordEncoder"/>       

        <bean id="httpSessionContextIntegrationFilter" 
class="org.acegisecurity.context.HttpSessionContex  tIntegrationFilter" />

    <bean id="authenticationProcessingFilter" 
class="org.acegisecurity.ui.webapp.AuthenticationP  rocessingFilter">
                <property name="authenticationManager">
                        <ref local="authenticationManager" />
                </property>
                <property name="authenticationFailureUrl">
                        
<value>/userLogin.jsp?login_error=errors.credenciales.nova  lidos</value>
                </property>
                <property name="defaultTargetUrl">
                        <value>/</value>
                </property>
                <property name="filterProcessesUrl">
                        <value>/j_acegi_security_check.do</value>
                </property>
        </bean>

        <bean id="authenticationManager" 
class="org.acegisecurity.providers.ProviderManager  ">
                <property name="providers">
                        <list>
                                <ref local="daoAuthenticationProvider" />
                        </list>
                </property>
        </bean>

        <bean id="filterInvocationInterceptor" 
class="org.acegisecurity.intercept.web.FilterSecur  ityInterceptor">
                <property name="authenticationManager">
                        <ref local="authenticationManager" />
                </property>
                <property name="accessDecisionManager">
                        <ref local="accessDecisionManager" />
                </property>
                <property name="objectDefinitionSource">
                        <value>
                                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                                PATTERN_TYPE_APACHE_ANT
                                /buscadorperfiles.do*=ROLE_ADMIN,ROLE_TODO
                                /*.do*=ROLE_ADMIN,ROLE_TODO
                    </value>
                </property>
        </bean>
        <bean id="authenticationEntryPoint" 
class="org.acegisecurity.ui.webapp.AuthenticationP  rocessingFilterEntryPoint">
                <property name="loginFormUrl">
                        
<value>/userLogin.jsp?login_error=errors.credenciales.nova  lidos</value>
                </property>
                <property name="forceHttps">
                        <value>false</value>
                </property>
        </bean>
    <bean id="daoAuthenticationProvider" 
class="org.acegisecurity.providers.dao.DaoAuthenti  cationProvider">
                <!-- En memoria 
                        <property name="authenticationDao"><ref 
bean="administradoresDAO"/></property> -->
                <!--  En bbdd -->
                <property name="userDetailsService">
                        <ref bean="administradoresJDBCDAO" />
                </property>
                <!-- Cache -->
                <property name="userCache">
                        <ref bean="userCache" />
                </property>
        <property name="passwordEncoder"><ref 
local="passwordEncoder"/></property>              
        </bean>
        <bean id="administradoresJDBCDAO" 
class="org.acegisecurity.userdetails.jdbc.JdbcDaoI  mpl">
                <property name="dataSource">
                        <ref bean="basicDataSource" />
                </property>
                <property name="usersByUsernameQuery">
                        <value>select idusuario as username, password as 
password,'1' as enabled FROM usuarios WHERE idusuario=?</value>
                </property>
                <property name="authoritiesByUsernameQuery">
                        <value>select idusuario as username, 
CONCAT('ROLE_',idperfil) from usuarios where idusuario=?</value>
                </property>
        </bean>
        
        <bean id="userCache" class="org.acegisecurity.providers.dao.cache.EhCac 
 heBasedUserCache">
                <property name="cache">
                        <ref local="userCacheBackend" />
                </property>
        </bean>

        <bean id="userCacheBackend" 
class="org.springframework.cache.ehcache.EhCacheFa  ctoryBean">
                <property name="cacheManager">
                        <ref local="cacheManager" />
                </property>
                <property name="cacheName">
                        <value>userCache</value>
                </property>
        </bean>

        <bean id="cacheManager" 
class="org.springframework.cache.ehcache.EhCacheMa  nagerFactoryBean">
                <property name="configLocation">
                        <value>classpath:/ehcache-failsafe.xml</value>
                </property>
        </bean>
        
<bean id="authenticationProcessingFilterEntryPoint"
class="org.acegisecurity.ui.webapp.AuthenticationP
rocessingFilterEntryPoint">
                <property name="loginFormUrl">
                        <value>/userLogin.jsp</value>
                </property>
                <property name="forceHttps">
                        <value>false</value>
                </property>
        </bean>
        
        <bean id="exceptionTranslationFilter" 
class="org.acegisecurity.ui.ExceptionTranslationFi  lter">
                <property name="authenticationEntryPoint">
                        <ref bean="authenticationProcessingFilterEntryPoint" />
                </property>
                <property name="accessDeniedHandler">
                        <bean 
class="org.acegisecurity.ui.AccessDeniedHandlerImp  l">
                                <property name="errorPage" value="/login.jsp" />
                        </bean>
                </property>
        </bean>

        <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter" />

        <bean id="accessDecisionManager" 
class="org.acegisecurity.vote.AffirmativeBased">
                <property name="allowIfAllAbstainDecisions">
                        <value>false</value>
                </property>
                <property name="decisionVoters">
                        <list>
                                <ref local="roleVoter" />
                        </list>
                </property>
        </bean>        

</beans>


The input login form like this:



                <html:form action="j_acegi_security_check.do" 
name="userLoginForm">
                        username : <html:text property="j_username" />
                        <html:errors property="j_username" />
                        <br />          
                        password : <html:password property="j_password" />
                        <html:errors property="j_password" />
                        <br />
                        <html:submit />
                </html:form>



The struts config file is this one:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="userLoginForm" 
type="com.xxx.yyy.struts.form.UserLoginForm" />
  </form-beans>
  
        
  <action-mappings >
    <action
      attribute="userLoginForm"
      input="/userLogin.jsp"
      name="userLoginForm"
      path="/userLogin"
      scope="request"
      type="com.xxx.yyy.struts.action.UserLoginAction">
      <forward name="success" path="/WEB-INF/page/userLoginSuccess.jsp" />
      <forward name="failure" path="/userLogin.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.xxx.yyy.struts.ApplicationResources  " />
</struts-config>


And my web.xml file is:



        <filter>
        <filter-name>FiltroFilterChainProxy</filter-name>
        <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
        <init-param>
            <param-name>targetClass</param-name>
            <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
        </init-param>
    </filter>

        <filter-mapping>
                <filter-name>FiltroFilterChainProxy</filter-name>
                <url-pattern>*.do</url-pattern>
        </filter-mapping>



Please assist, thank you!
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

Reply via email to