Presented below are the steps we encourage you to take in order to gain the most out of Acegi Security in a realistic timeframe.
acegi-security-sample-contacts-filter.war.ContactManagerBackend
	which shows how we create and delete ACL permissions. The rest of the Java code has no
	security awareness, with all security services being declared in the XML files
	(don't worry, there aren't any new XML formats to learn: they're all standard Spring IoC container
	declarations or the stock-standard web.xml). The main
	XML files to review are
	applicationContext-acegi-security.xml (from the filter webapp),
	applicationContext-common-authorization.xml,
	applicationContext-common-business.xml (just note we add contactManagerSecurity to the services layer target bean), and
	web.xml (from the filter webapp).
	The XML definitions are comprehensively discussed in the
	Reference Guide.
	ContextHolder, the
	authentication mechanism (such as AuthenticationProcessingFilter), the
	authentication commencement process (specifically SecurityEnforcementFilter and
	say AuthenticationProcessingFilterEntryPoint), and the system that manages authentication
	data between invocations (say HttpSessionIntegrationFilter). You don't have to
	know every detail, just basically what they do and the key differences (again, the
	reference guide should help considerably, as there are diagrams etc).
	FilterSecurityInterceptor's role and how its
	regular expression or Ant paths protect URIs. Next up explore how RoleVoter
	works in our sample application with the FilterSecurityInterceptor and
	MethodSecurityInterceptor. Finally, review what the
	BasicAclEntryVoter does in our sample application, in terms of protecting
	domain objects from method invocations the principal does not have permission to.
	
	AfterInvocationProviderManager
	is being used to stop domain objects being returned to which the principal has no
	permission, and to filter Collections so they don't contain domain objects to
	which the principal has no permission. By all means comment out parts of the Spring IoC XML
	and see the effect. For example, comment out the AfterInvocationProviderManager (of course, remove its reference
	in the MethodSecurityInterceptor) and see how all of the contacts get returned.
	BasicAclEntryVoter and 
	AfterInvocationProviderManager.
	DaoAuthenticationProvider,
	one of Acegi Security's AuthenticationDaos (or your own), and your basic
	authorisation configuration. Like anything, start with something simple and build on it
	(this would be the opposite advice if you were building your own security framework,
	where you would need to cross the highest and most difficult bridges first, to check they
	are actually possible).Please note the time estimates are just that: estimates. They will vary considerably depending on how much experience you have, particularly with Java and Spring. They will also vary depending on how complex your intended security-enabled application will be. Some people need to push the domain object instance access control list capabilities to the maximum, whilst others don't even need anything beyond web request URI security. The good thing is Acegi Security will either directly support your future needs, or provide a clearly-defined extension point for addressing them.
We welcome your feedback about how long it has actually taken you to complete each step, so we can update this page and help new users better assess their project timetables in the future. Any other tips on what you found helpful in learning Acegi Security are also very welcome.