I've got this working. Code supplied. Please customise for your purpose :)

hivemodule.xml

<module id="com.ews.tapestry.acegi" version="1.0.0">
   <contribution configuration-id="hivemind.ApplicationDefaults">
       <default symbol="hivemind.acegi.dao.passwordEncoder"
           value="
org.acegisecurity.providers.encoding.PlaintextPasswordEncoder" />
       <default symbol="hivemind.acegi.dao.systemWideSalt" value="" />
         <default symbol="tapestry.acegi.authenticationProcessingFilter"
value="com.ews.tapestry.acegi.FormProcessingFilter"/>
       <default symbol="tapestry.acegi.authenticationEntryPoint" value="
com.ews.tapestry.acegi.FormAuthenticationEntryPoint"/>
   </contribution>

   <implementation
       service-id="hivemind.acegi.dao.UserDetailsService">
       <invoke-factory service-id="hivemind.lib.SpringLookupFactory">
           <lookup-bean name="authoriserService" />
       </invoke-factory>
   </implementation>

   <contribution
       configuration-id="hivemind.acegi.AccessDecisionVoters">
       <voter object="instance:org.acegisecurity.vote.RoleVoter" />
   </contribution>

   <service-point id="FormProcessingFilter"
       interface="javax.servlet.Filter">
       <invoke-factory>
           <construct
               class="
org.acegisecurity.ui.webapp.AuthenticationProcessingFilter"
               initialize-method="afterPropertiesSet">
               <set property="authenticationFailureUrl"
                   value="/app?page=Home;service=page" />
               <set property="defaultTargetUrl"
value="/app?page=Landing;service=page" />
               <set property="filterProcessesUrl"
                   value="/j_acegi_security_check" />
           </construct>
       </invoke-factory>
   </service-point>

   <service-point id="FormAuthenticationEntryPoint"
       interface="org.acegisecurity.ui.AuthenticationEntryPoint">
       <invoke-factory>
           <construct
               class="
org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
               <set property="loginFormUrl"
                   value="/app?page=Home;service=page" />
               <set property="forceHttps" value="false" />
           </construct>
       </invoke-factory>
   </service-point>

   <contribution configuration-id="tapestry.state.ApplicationObjects">
     <state-object name="EWSSession" scope="session">
       <create-instance class="com.ews.web.session.EWSSession"/>
     </state-object>
   </contribution>
</module>

AuthoriserServiceImpl code:

import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.dao.DataAccessException;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.ews.domain.core.User;
import com.ews.domain.core.UserService;

/**
* Implementation of the authoriser service
*
* @author williamk
*
*/
public class AuthoriserServiceImpl implements AuthoriserService
{

   /**
    * Injected user service
    */
   private UserService userService;

   /**
    * Constructor
    *
    * @param userService
    */
   public AuthoriserServiceImpl(UserService userService)
   {
       this.userService = userService;
   }

   /**
    * [EMAIL PROTECTED]
    */
   @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
   public UserDetails loadUserByUsername(String arg0)
           throws UsernameNotFoundException, DataAccessException
   {
       User user = userService.fetchByUsername(arg0);
       if (user == null)
       {
           throw new UsernameNotFoundException("Authentication failed");
       }
       return user;
   }

}


Hopefully that will get you started!

On 5/4/07, Asim Khaja <[EMAIL PROTECTED]> wrote:

Is there a good tutorial on using the tapestry-acegi (
http://www.carmanconsulting.com/tapestry-acegi/) library?

Thanks,
Asim

Reply via email to