Ok so the three things i think i need to do are as follows. This bean will be created per request
public class SystemUserHolder implements ISystemUserHolder{ private final SystemUser systemUser; /** * */ public SystemUserHolder() { super(); SecureContext secureContext = ((SecureContext) ContextHolder.getContext()); systemUser = ( SystemUser )secureContext.getAuthentication().getDetails(); } getSystemUser() ........ } Then I will implement the snip= public class HibernateAuthenticationDAOImpl extends HibernateDaoSupport implements AuthenticationDao { /* (non-Javadoc) * @see net.sf.acegisecurity.providers.dao.AuthenticationDao#loadUserByUsername(java.lang.String) */ public UserDetails loadUserByUsername(String arg0) throws UsernameNotFoundException, DataAccessException { // TODO Impliment this properly GrantedAuthority [] authorities = {new Authority("SYSTEM_ADMINISTRATOR"),new Authority("CUSTOMER")}; SystemUser systemUser = new SystemUser(); systemUser.setId(new Integer(1)); systemUser.setUsername("bryanhunt"); systemUser.setPassword("bryanhunt"); systemUser.setAuthorities(authorities); return (UserDetails) systemUser; } } =snip and then I will have <bean id="systemUserHolder" class="ie.jestate.acegi" singleton="false"> </bean> <bean id="orderServiceTarget" class="ie.jestate.spring.service.impls.OrderService"> <property name="orderDAO"> <ref local="orderDAO"/> </property> <property name="systemUserHolder"> <ref local="systemUserHolder"/> </property> </bean> Then my methods that are in the orderService class can call systemUserHolder.getSystemUser.getId() and do searches for example where the user is only allowed to see financial data for a certain region. I am very much new to Spring so if I'm completely off the mark here feel free to flame me. I think this code will be a good reference implimentation if I can get it working good. --b On Mon, 9 Aug 2004 17:39:46 +0200, Karel Miarka <[EMAIL PROTECTED]> wrote: > Hi, > > > So it would be really cool if the User ( which implements UserDetails ) > > also had an id ( Integer ) properties. > > You can return any object implementing UserDetails interface from your > loadUserByUsername() implementation of AuthenticationDao interface, so at > any place you can cast this user object from the UserDetails to your > appropriate user object and access all its properties for example the > integer id. > > > Also is there any way that I could get this information into the service > > beans without adding any ageci dependant code into my struts actions ? > > > > I think you can encapsulate the acegi code for obtaining the current user > into a method in your service layer like this: > > public class MyServiceImpl { > ... > public MyUser getCurrentUser() { > SecureContext secureContext = ((SecureContext) > ContextHolder.getContext()); > final Authentication currentUser = secureContext.getAuthentication(); > return (MyUser)currentUser.getPrincipal(); > } > .... > } > > HTH, > Karel > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by OSTG. Have you noticed the changes on > Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, > one more big change to announce. We are now OSTG- Open Source Technology > Group. Come see the changes on the new OSTG site. www.ostg.com > _______________________________________________ > Acegisecurity-developer mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 _______________________________________________ Acegisecurity-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer