|
@@ -1,4 +1,8 @@
|
|
|
-<html>
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
+
|
|
|
+<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
+
|
|
|
<head>
|
|
|
<title>Acegi Security - Upgrading from version 0.8.0 to 1.0.0</title>
|
|
|
</head>
|
|
@@ -8,86 +12,110 @@
|
|
|
<p>
|
|
|
The following should help most casual users of the project update their
|
|
|
applications:
|
|
|
+</p>
|
|
|
+
|
|
|
+<h1>Changes 0.9.0 to RC1</h1>
|
|
|
+
|
|
|
+<ul>
|
|
|
+
|
|
|
+<li>The top level package name has changed. Simply find "net.sf.acegisecurity" and replace with
|
|
|
+"org.acegisecurity".</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+DaoAuthenticationProvider has a property, authenticationDao. This property should now be renamed to
|
|
|
+userDetailsService.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+In JSPs, each "authz" taglib prefix must be changed from uri="http://acegisecurity.sf.net/authz"
|
|
|
+to uri="http://acegisecurity.org/authz".
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>net.sf.acegisecurity.providers.dao.AuthenticationDao is now org.acegisecurity.userdetails.UserDetailsService.
|
|
|
+The interface signature has not changed. Similarly, User and UserDetails have moved into the latter's package as well.
|
|
|
+If you've implemented your own AuthenticationDao, you'll need to change the class it's implementing and quite likely
|
|
|
+the import packages for User and UserDetails. In addition, if using JdbcDaoImpl or InMemoryDaoImpl please
|
|
|
+note they have moved to this new package.</li>
|
|
|
+
|
|
|
+<li>Acegi Security is now localised. In net.sf.acegisecurity you will find a messages.properties. It is
|
|
|
+suggested to register this in your application context, perhaps using ReloadableResourceBundleMessageSource.
|
|
|
+If you do not do this, the default messages included in the source code will be used so this change is
|
|
|
+not critical. The Spring LocaleContextHolder class is used to determine the locale of messages included in
|
|
|
+exceptions. At present only the default messages.properties is included (which is in English). If
|
|
|
+you localise this file to another language, please consider attaching it to a
|
|
|
+<a href="http://opensource2.atlassian.com/projects/spring/secure/BrowseProject.jspa?id=10040">new JIRA task</a>
|
|
|
+so that we can include it in future Acegi Security releases.</li>
|
|
|
+
|
|
|
+</ul>
|
|
|
+
|
|
|
+
|
|
|
+<h1>Changes RC1 to RC2</h1>
|
|
|
+
|
|
|
+
|
|
|
+<ul>
|
|
|
+
|
|
|
+<li>
|
|
|
+org.acegisecurity.ui.rememberme.RememberMeProcessingFilter now requires an authenticationManager property. This will generally
|
|
|
+point to an implementation of org.acegisecurity.providers.ProviderManager.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+org.acegisecurity.intercept.web.AuthenticationEntryPoint has moved to a new location,
|
|
|
+org.acegisecurity.ui.AuthenticationEntryPoint.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+org.acegisecurity.intercept.web.SecurityEnforcementFilter has moved to a new location and name,
|
|
|
+org.acegisecurity.ui.ExceptionTranslationFilter. In addition, the "filterSecurityInterceptor"
|
|
|
+property on the old SecurityEnforcementFilter class has been removed. This is because
|
|
|
+SecurityEnforcementFilter will no longer delegate to FilterSecurityInterceptor as it has in the
|
|
|
+past. Because this delegation feature has been removed (see SEC-144 for a background as to why),
|
|
|
+please add a new filter definition for FilterSecurityInterceptor to the end of your
|
|
|
+FilterChainProxy. Generally you'll also rename the old SecurityEnforcementFilter entry in your
|
|
|
+FilterChainProxy to ExceptionTranslationFilter, more accurately reflecting its purpose.
|
|
|
+If you are not using FilterChainProxy (although we recommend that you do), you will need to add
|
|
|
+an additional filter entry to web.xml and use FilterToBeanProxy to access the FilterSecurityInterceptor.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+If you are directly using SecurityContextHolder.setContext(SecurityContext) - which is not
|
|
|
+very common - please not that best practise is now to call SecurityContextHolder.clearContext()
|
|
|
+if you wish to erase the contents of the SecurityContextHolder. Previously code such as
|
|
|
+SecurityContextHolder.setContext(new SecurityContextImpl()) would have been used. The revised
|
|
|
+method internally stores null, which helps avoids redeployment issue caused by the previous
|
|
|
+approaches (see SEC-159 for further details).
|
|
|
+</li>
|
|
|
+
|
|
|
+</ul>
|
|
|
+
|
|
|
+
|
|
|
+<h1>Changes RC2 to Final</h1>
|
|
|
+
|
|
|
+
|
|
|
+<ul>
|
|
|
+
|
|
|
+<li>
|
|
|
+AbstractProcessingFilter.onUnsuccessfulAuthentication(HttpServletRequest, HttpServletResponse)
|
|
|
+has changed it signature (SEC-238). If subclassing, please override the new signature.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+ExceptionTranslationFilter no longer provides a sendAccessDenied() method. Use the
|
|
|
+new AccessDeniedHandler instead if custom handling is required.
|
|
|
+</li>
|
|
|
+
|
|
|
+<li>
|
|
|
+There have been some changes to the LDAP provider APIs to allow for future improvements, as detailed in
|
|
|
+<a href="http://opensource.atlassian.com/projects/spring/browse/SEC-264">SEC-264</a>. These
|
|
|
+should only affect users who have written their own extensions to the provider. The general LDAP
|
|
|
+classes are now in the packages org.acegisecurity.ldap and the org.acegisecurity.userdetails.ldap
|
|
|
+package has been introduced. The search and authentication classes now return an
|
|
|
+<a href="../multiproject/acegi-security/apidocs/org/acegisecurity/userdetails/ldap/LdapUserDetails.html">LdapUserDetails</a>
|
|
|
+instance. The LdapAuthoritiesPopulator interface and its default implementation now both make use of
|
|
|
+LdapUserDetails. Any customized versions should be updated to use the new method signatures.
|
|
|
+</li>
|
|
|
|
|
|
- <ul>
|
|
|
-
|
|
|
- <h1>Changes 0.9.0 to RC1</h1>
|
|
|
-
|
|
|
- <li>The top level package name has changed. Simply find "net.sf.acegisecurity" and replace with
|
|
|
- "org.acegisecurity".</li>
|
|
|
-
|
|
|
- <li>
|
|
|
- DaoAuthenticationProvider has a property, authenticationDao. This property should now be renamed to
|
|
|
- userDetailsService.
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- In JSPs, each "authz" taglib prefix must be changed from uri="http://acegisecurity.sf.net/authz"
|
|
|
- to uri="http://acegisecurity.org/authz".
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>net.sf.acegisecurity.providers.dao.AuthenticationDao is now org.acegisecurity.userdetails.UserDetailsService.
|
|
|
- The interface signature has not changed. Similarly, User and UserDetails have moved into the latter's package as well.
|
|
|
- If you've implemented your own AuthenticationDao, you'll need to change the class it's implementing and quite likely
|
|
|
- the import packages for User and UserDetails. In addition, if using JdbcDaoImpl or InMemoryDaoImpl please
|
|
|
- note they have moved to this new package.</li>
|
|
|
-
|
|
|
- <li>Acegi Security is now localised. In net.sf.acegisecurity you will find a messages.properties. It is
|
|
|
- suggested to register this in your application context, perhaps using ReloadableResourceBundleMessageSource.
|
|
|
- If you do not do this, the default messages included in the source code will be used so this change is
|
|
|
- not critical. The Spring LocaleContextHolder class is used to determine the locale of messages included in
|
|
|
- exceptions. At present only the default messages.properties is included (which is in English). If
|
|
|
- you localise this file to another language, please consider attaching it to a
|
|
|
- <a href="http://opensource2.atlassian.com/projects/spring/secure/BrowseProject.jspa?id=10040">new JIRA task</a>
|
|
|
- so that we can include it in future Acegi Security releases.</li>
|
|
|
-
|
|
|
- <h1>Changes RC1 to RC2</h1>
|
|
|
-
|
|
|
- <li>
|
|
|
- org.acegisecurity.ui.rememberme.RememberMeProcessingFilter now requires an authenticationManager property. This will generally
|
|
|
- point to an implementation of org.acegisecurity.providers.ProviderManager.
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- org.acegisecurity.intercept.web.AuthenticationEntryPoint has moved to a new location,
|
|
|
- org.acegisecurity.ui.AuthenticationEntryPoint.
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- org.acegisecurity.intercept.web.SecurityEnforcementFilter has moved to a new location and name,
|
|
|
- org.acegisecurity.ui.ExceptionTranslationFilter. In addition, the "filterSecurityInterceptor"
|
|
|
- property on the old SecurityEnforcementFilter class has been removed. This is because
|
|
|
- SecurityEnforcementFilter will no longer delegate to FilterSecurityInterceptor as it has in the
|
|
|
- past. Because this delegation feature has been removed (see SEC-144 for a background as to why),
|
|
|
- please add a new filter definition for FilterSecurityInterceptor to the end of your
|
|
|
- FilterChainProxy. Generally you'll also rename the old SecurityEnforcementFilter entry in your
|
|
|
- FilterChainProxy to ExceptionTranslationFilter, more accurately reflecting its purpose.
|
|
|
- If you are not using FilterChainProxy (although we recommend that you do), you will need to add
|
|
|
- an additional filter entry to web.xml and use FilterToBeanProxy to access the FilterSecurityInterceptor.
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- If you are directly using SecurityContextHolder.setContext(SecurityContext) - which is not
|
|
|
- very common - please not that best practise is now to call SecurityContextHolder.clearContext()
|
|
|
- if you wish to erase the contents of the SecurityContextHolder. Previously code such as
|
|
|
- SecurityContextHolder.setContext(new SecurityContextImpl()) would have been used. The revised
|
|
|
- method internally stores null, which helps avoids redeployment issue caused by the previous
|
|
|
- approaches (see SEC-159 for further details).
|
|
|
- </li>
|
|
|
-
|
|
|
- <h1>Changes RC2 to Final</h1>
|
|
|
-
|
|
|
- <li>
|
|
|
- AbstractProcessingFilter.onUnsuccessfulAuthentication(HttpServletRequest, HttpServletResponse)
|
|
|
- has changed it signature (SEC-238). If subclassing, please override the new signature.
|
|
|
- </li>
|
|
|
-
|
|
|
- <li>
|
|
|
- ExceptionTranslationFilter no longer provides a sendAccessDenied() method. Use the
|
|
|
- new AccessDeniedHandler instead if custom handling is required.
|
|
|
- </li>
|
|
|
-
|
|
|
- </ul>
|
|
|
+</ul>
|
|
|
|
|
|
</body>
|
|
|
</html>
|