upgrade-06-07.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. ===============================================================================
  2. ACEGI SECURITY SYSTEM FOR SPRING - UPGRADING FROM 0.6 TO 0.7
  3. ===============================================================================
  4. The following should help most casual users of the project update their
  5. applications:
  6. - MethodDefinitionMap, which is usually used by MethodSecurityInterceptor
  7. for its objectDefinitionSource property, has been changed. From 0.7, when
  8. MethodDefinitionMap is queried for configuration attributes associated with
  9. secure MethodInvocations, it will use any method matching in the method
  10. invocation class (as it always has) plus any method matching any interface
  11. the MethodInvocation class directly implements. So consider a PersonManager
  12. interface, a PersonManagerImpl class that implements it, and a definition of
  13. PersonManager.findAll=ROLE_FOO. In this example, any query for either
  14. PersonManager.findAll OR PersonManagerImpl.findAll will return ROLE_FOO.
  15. As we have always encouraged definition against the interface names (as per
  16. this example), this change should not adversely impact users. This change
  17. was necessary because of the new MethodDefinitionSourceAdvisor (see below).
  18. Refer to the MethodDefinitionMap JavaDocs for further clarification.
  19. - MethodDefinitionSourceAdvisor can now be used instead of defining proxies
  20. for secure business objects. The advisor is fully compatible with both
  21. MethodDefinitionMap and MethodDefinitionAttributes. Using an advisor allows
  22. caching of which methods the MethodSecurityInterceptor should handle, thus
  23. providing a performance benefit as MethodSecurityInterceptor is not called
  24. for public (non-secure) objects. It also simplifies configuration.
  25. - MethodSecurityInterceptor has moved from
  26. net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor to
  27. net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.
  28. A simple find and replace will suffice to update your application contexts.
  29. $Id$