diff --git a/src/site/apt/svn-usage.apt b/src/site/apt/svn-usage.apt index f071e545ea..292874f8b6 100644 --- a/src/site/apt/svn-usage.apt +++ b/src/site/apt/svn-usage.apt @@ -31,7 +31,7 @@ Subversion Usage +----------------------------------------------------------------------------------------------------------------------+ Specific tagged releases can be checked out from the URL - {{{"http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security/tags/}}}. + {{{"http://acegisecurity.svn.sourceforge.net/svnroot/acegisecurity/spring-security/tags/"}}}. diff --git a/src/site/resources/announcements/announcement-0.1.txt b/src/site/resources/announcements/announcement-0.1.txt deleted file mode 100644 index 3847e81c63..0000000000 --- a/src/site/resources/announcements/announcement-0.1.txt +++ /dev/null @@ -1,16 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Initial public release - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.2.txt b/src/site/resources/announcements/announcement-0.2.txt deleted file mode 100644 index 07e4456486..0000000000 --- a/src/site/resources/announcements/announcement-0.2.txt +++ /dev/null @@ -1,34 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.2 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added Commons Attributes support and sample (thanks to Cameron Braid) -o Added JBoss container adapter -o Added Resin container adapter -o Added JDBC DAO authentication provider -o Added several filter implementations for container adapter integration -o Added SecurityInterceptor startup time validation of ConfigAttributes -o Added more unit tests - - Fixed bugs: - -o Fixed switch block in voting decision manager implementations - - Changes: - -o Refactored ConfigAttribute to interface and added concrete implementation -o Enhanced diagnostics information provided by sample application debug.jsp -o Modified sample application for wider container portability (Resin, JBoss) -o Removed Spring MVC interceptor for container adapter integration -o Documentation improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.3.txt b/src/site/resources/announcements/announcement-0.3.txt deleted file mode 100644 index 2d45aa0501..0000000000 --- a/src/site/resources/announcements/announcement-0.3.txt +++ /dev/null @@ -1,28 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.3 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added "in container" unit test system for container adapters and sample app -o Added library extractor tool to reduce the "with deps" ZIP release sizes -o Added unit test to the attributes sample -o Added Jalopy source formatting - - Changes: - -o Modified all files to use net.sf.acegisecurity namespace -o Renamed springsecurity.xml to acegisecurity.xml for consistency -o Reduced length of ZIP and JAR filenames -o Clarified licenses and sources for all included libraries -o Updated documentation to reflect new file and package names -o Setup Sourceforge.net project and added to CVS etc - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.4.txt b/src/site/resources/announcements/announcement-0.4.txt deleted file mode 100644 index 4005eeebe6..0000000000 --- a/src/site/resources/announcements/announcement-0.4.txt +++ /dev/null @@ -1,40 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.4 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added HTTP session authentication as an alternative to container adapters -o Added HTTP request security interceptor (offers considerable flexibility) -o Added security taglib -o Added Clover test coverage instrumentation (currently 97.2%) -o Added support for Catalina (Tomcat) 4.1.30 to in-container integration - tests -o Added HTML test and summary reporting to in-container integration tests - - Fixed bugs: - -o Fixed case handling support in data access object authentication provider - - Changes: - -o Updated JARs to Spring Framework release 1.0, with associated AOP changes -o Updated to Apache License version 2.0 -o Updated copyright with permission of past contributors -o Refactored unit tests to use mock objects and focus on a single class each -o Refactored many classes to enable insertion of mock objects during testing -o Refactored core classes to ease support of new secure object types -o Changed package layout to better describe the role of contained items -o Changed the extractor to extract additional classes from JBoss and Catalina -o Changed Jetty container adapter configuration (see reference documentation) -o Improved AutoIntegrationFilter handling of deployments without JBoss JARs -o Documentation improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.5.1.txt b/src/site/resources/announcements/announcement-0.5.1.txt deleted file mode 100644 index fb33c6ce33..0000000000 --- a/src/site/resources/announcements/announcement-0.5.1.txt +++ /dev/null @@ -1,37 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.5.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added samples/quick-start -o Added NullRunAsManager and made default for AbstractSecurityInterceptor -o Added event notification (see net.sf.acegisecurity.providers.dao.event) - - Fixed bugs: - -o Fixed issue with hot deploy of EhCacheBasedTicketCache (used with CAS) -o Fixed issue with NullPointerExceptions in taglib - - Changes: - -o Updated JAR to Spring 1.0.2 -o Updated JAR to Commons Attributes CVS snapshot from Spring 1.0.2 release -o Updated GrantedAuthorityImpl to be serializable (JBoss support) -o Updated Authentication interface to present extra details for a request -o Updated Authentication interface to subclass java.security.Principal -o Refactored DaoAuthenticationProvider caching (refer to reference docs) -o Improved HttpSessionIntegrationFilter to manage additional attributes -o Improved URL encoding during redirects -o Removed DaoAuthenticationToken and session-based caching -o Documentation improvements -o Upgrade Note: DaoAuthenticationProvider no longer has a "key" property - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.5.txt b/src/site/resources/announcements/announcement-0.5.txt deleted file mode 100644 index ea221fec8d..0000000000 --- a/src/site/resources/announcements/announcement-0.5.txt +++ /dev/null @@ -1,42 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.5 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added single sign on support via Yale Central Authentication Service (CAS) -o Added full support for HTTP Basic Authentication -o Added caching for DaoAuthenticationProvider successful authentications -o Added Burlap and Hessian remoting to Contacts sample application -o Added pluggable password encoders including plaintext, SHA and MD5 -o Added pluggable salt sources to enhance security of hashed passwords -o Added FilterToBeanProxy to obtain filters from Spring application context -o Added support for prepending strings to roles created by JdbcDaoImpl -o Added support for user definition of SQL statements used by JdbcDaoImpl -o Added definable prefixes to avoid expectation of "ROLE_" GrantedAuthoritys -o Added pluggable AuthenticationEntryPoints to SecurityEnforcementFilter -o Added Apache Ant path syntax support to SecurityEnforcementFilter -o Added filter to automate web channel requirements (eg HTTPS redirection) - - Fixed bugs: - -o Fixed FilterInvocation.getRequestUrl() to also include getPathInfo() -o Fixed Contacts sample application tags - - Changes: - -o Updated JAR to Spring 1.0.1 -o Updated several classes to use absolute (not relative) redirection URLs -o Refactored filters to use Spring application context lifecycle support -o Improved constructor detection of nulls in User and other key objects -o Established acegisecurity-developer mailing list -o Documentation improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.6.1.txt b/src/site/resources/announcements/announcement-0.6.1.txt deleted file mode 100644 index 780c9fc191..0000000000 --- a/src/site/resources/announcements/announcement-0.6.1.txt +++ /dev/null @@ -1,39 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.6.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added additional DaoAuthenticationProvider event when user not found -o Added Authentication.getDetails() to DaoAuthenticationProvider response -o Added DaoAuthenticationProvider.hideUserNotFoundExceptions (default=true) -o Added PasswordAuthenticationProvider for password-validating DAOs (eg LDAP) -o Added FilterToBeanProxy compatibility with ContextLoaderServlet (lazy - inits) -o Added convenience methods to ConfigAttributeDefinition - - Fixed bugs: - -o Fixed MethodDefinitionAttributes to implement ObjectDefinitionSource change -o Fixed EH-CACHE-based caching implementation behaviour when cache exists -o Fixed Ant "release" target not including project.properties -o Fixed GrantedAuthorityEffectiveAclsResolver if null ACLs provided to method - - Changes: - -o Resolved to use http://apr.apache.org/versioning.html for future versioning -o Improved sample applications' bean reference notation -o Clarified contract for ObjectDefinitionSource.getAttributes(Object) -o Extracted removeUserFromCache(String) to UserCache interface -o Improved ConfigAttributeEditor so it trims preceding and trailing spaces -o Refactored UsernamePasswordAuthenticationToken.getDetails() to Object -o Documentation improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.6.txt b/src/site/resources/announcements/announcement-0.6.txt deleted file mode 100644 index 363447ace6..0000000000 --- a/src/site/resources/announcements/announcement-0.6.txt +++ /dev/null @@ -1,50 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.6 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added domain object instance access control list (ACL) packages -o Added feature so DaoAuthenticationProvider returns User in Authentication -o Added AbstractIntegrationFilter.secureContext property for custom contexts -o Added stack trace logging to SecurityEnforcementFilter -o Added exception-specific target URLs to AbstractProcessingFilter -o Added JdbcDaoImpl hook so subclasses can insert custom granted authorities -o Added AuthenticationProvider that wraps JAAS login modules -o Added support for EL expressions in the authz tag library -o Added failed Authentication object to AuthenticationExceptions -o Added signed JARs to all official release builds (see readme.txt) -o Added remote client authentication validation package -o Added protected sendAccessDeniedError method to SecurityEnforcementFilter - - Fixed bugs: - -o Fixed CasAuthenticationToken if proxy granting ticket callback not - requested -o Fixed EH-CACHE handling on web context refresh - - Changes: - -o Updated Authentication to be serializable (Weblogic support) -o Updated JAR to Spring 1.1 RC 1 -o Updated to Clover 1.3 -o Updated to HSQLDB version 1.7.2 Release Candidate 6D -o Refactored User to net.sf.acegisecurity.UserDetails interface -o Refactored CAS package to store UserDetails in CasAuthenticationToken -o Improved organisation of DaoAuthenticationProvider to facilitate - subclassing -o Improved test coverage (now 98.3%) -o Improved JDBC-based tests to use in-memory database rather than filesystem -o Fixed Linux compatibility issues (directory case sensitivity etc) -o Fixed AbstractProcessingFilter to handle servlet spec container differences -o Fixed AbstractIntegrationFilter to resolve a Weblogic compatibility issue -o Documentation improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.7.0.txt b/src/site/resources/announcements/announcement-0.7.0.txt deleted file mode 100644 index e74befdfef..0000000000 --- a/src/site/resources/announcements/announcement-0.7.0.txt +++ /dev/null @@ -1,68 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.7.0 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Major CVS repository restructure to support Maven and eliminate libraries -o Added AfterInvocationManager to mutate objects return from invocations -o Added BasicAclEntryAfterInvocationProvider to ACL evaluate returned Object -o Added BasicAclEntryAfterInvocationCollectionFilteringProvider -o Added security propagation during RMI invocations (from sandbox) -o Added security propagation for Spring's HTTP invoker -o Added BasicAclEntryVoter, which votes based on AclManager permissions -o Added AspectJ support (especially useful for instance-level security) -o Added MethodDefinitionSourceAdvisor for performance and autoproxying -o Added MethodDefinitionMap querying of interfaces defined by secure objects -o Added AuthenticationProcessingFilter.setDetails for use by subclasses -o Added 403-causing exception to HttpSession via SecurityEnforcementFilter -o Added net.sf.acegisecurity.intercept.event package -o Added BasicAclExtendedDao interface and JdbcExtendedDaoImpl for ACL CRUD -o Added additional remoting protocol demonstrations to Contacts sample -o Added AbstractProcessingFilter property to always use defaultTargetUrl -o Added ContextHolderAwareRequestWrapper to integrate with getRemoteUser() -o Added attempted username to view if processed by - AuthenticationProcessingFilter -o Added UserDetails account and credentials expiration methods -o Added exceptions and events to support new UserDetails methods -o Added new exceptions to JBoss container adapter - - Fixed bugs: - -o Fixed ambiguous column references in JdbcDaoImpl default query -o Fixed AbstractProcessingFilter to use removeAttribute (JRun compatibility) -o Fixed GrantedAuthorityEffectiveAclResolver support of UserDetails - principals -o Fixed HttpSessionIntegrationFilter "cannot commit to container" during - logoff - - Changes: - -o Major improvements to Contacts sample application (now demos ACL security) -o Improved BasicAclProvider to only respond to specified ACL object requests -o Refactored MethodDefinitionSource to work with Method, not MethodInvocation -o Refactored AbstractFilterInvocationDefinitionSource to work with URL - Strings alone -o Refactored AbstractSecurityInterceptor to better support other AOP - libraries -o Improved performance of JBoss container adapter (see reference docs) -o Made DaoAuthenticationProvider detect null in Authentication.principal -o Improved JaasAuthenticationProvider startup error detection -o Refactored EH-CACHE implementations to use Spring IoC defined caches - instead -o AbstractProcessingFilter now has various hook methods to assist subclasses -o DaoAuthenticationProvider better detects AuthenticationDao interface - violations -o The User class has a new constructor (the old constructor is deprecated) -o Moved MethodSecurityInterceptor to ...intercept.method.aopalliance package -o Documentation improvements -o Test coverage improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.7.1.txt b/src/site/resources/announcements/announcement-0.7.1.txt deleted file mode 100644 index 37c028483c..0000000000 --- a/src/site/resources/announcements/announcement-0.7.1.txt +++ /dev/null @@ -1,18 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.7.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Fixed bugs: - -o AbstractIntegrationFilter elegantly handles IOExceptions and - ServletExceptions within filter chain (see - http://opensource.atlassian.com/projects/spring/browse/SEC-20) - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.8.0.txt b/src/site/resources/announcements/announcement-0.8.0.txt deleted file mode 100644 index d66aadb974..0000000000 --- a/src/site/resources/announcements/announcement-0.8.0.txt +++ /dev/null @@ -1,59 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.8.0 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o Added Digest Authentication support (RFC 2617 and RFC 2069) -o Added pluggable remember-me services -o Added pluggable mechnism to prevent concurrent login sessions -o FilterChainProxy added to significantly simplify web.xml configuration of - Acegi Security -o AuthenticationProcessingFilter now provides hook for extra credentials (eg - postcodes) -o New WebAuthenticationDetails class now used by processing filters for - Authentication.setDetails() -o Additional debug-level logging -o Improved Tapestry support in AbstractProcessingFilter - - Fixed bugs: - -o Correct issue with JdbcDaoImpl default SQL query not using consistent case - sensitivity -o Improve Linux and non-Sun JDK (specifically IBM JDK) compatibility -o Log4j now included in generated WAR artifacts (fixes issue with Log4j - listener) -o Correct NullPointerException in FilterInvocationDefinitionSource - implementations - - Changes: - -o Made ConfigAttributeDefinition and ConfigAttribute Serializable -o User now accepts blank passwords (null passwords still rejected) -o FilterToBeanProxy now searches hierarchical bean factories -o User now accepted blank passwords (null passwords still rejected) -o ContextHolderAwareRequestWrapper now provides a getUserPrincipal() method -o HttpSessionIntegrationFilter no longer creates a HttpSession unnecessarily -o FilterSecurityInterceptor now only executes once per request (improves - performance with SiteMesh) -o JaasAuthenticatinProvider now uses System.property - "java.security.auth.login.config" -o JaasAuthenticationCallbackHandler Authentication is passed to handle method - setAuthentication removed -o Added AuthenticationException to the AutenticationEntryPoint.commence - method signature -o Added AccessDeniedException to the - SecurityEncorcementFilter.sendAccessDeniedError method signature -o FilterToBeanProxy now addresses lifecycle mismatch (IoC container vs - servlet container) issue -o Significantly refactor "well-known location model" to authentication - processing mechanism and HttpSessionContextIntegrationFilter model - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.8.1.1.txt b/src/site/resources/announcements/announcement-0.8.1.1.txt deleted file mode 100644 index 44a55895d9..0000000000 --- a/src/site/resources/announcements/announcement-0.8.1.1.txt +++ /dev/null @@ -1,18 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.8.1.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Fixed bugs: - -o HttpSessionContextIntegrationFilter elegantly handles IOExceptions and - ServletExceptions within filter chain (see - http://opensource.atlassian.com/projects/spring/browse/SEC-20) - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.8.1.txt b/src/site/resources/announcements/announcement-0.8.1.txt deleted file mode 100644 index 1c6c1dd883..0000000000 --- a/src/site/resources/announcements/announcement-0.8.1.txt +++ /dev/null @@ -1,43 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.8.1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - New Features: - -o X509 (certificate-based) authentication support - - Fixed bugs: - -o SecurityEnforcementFilter caused NullPointerException when anonymous - authentication used with BasicProcessingFilterEntryPoint -o FilterChainProxy now supports replacement of ServletRequest and - ServetResponse by Filter beans -o Corrected Authz parsing of whitespace in GrantedAuthoritys -o TokenBasedRememberMeServices now respects expired users, expired - credentials and disabled users -o HttpSessionContextIntegrationFilter now handles HttpSession invalidation - without redirection -o StringSplitUtils.split() ignored delimiter argument -o DigestProcessingFilter now provides userCache getter and setter -o Contacts Sample made to work with UserDetails-based Principal - - Changes: - -o UserDetails now advises locked accounts, with corresponding - DaoAuthenticationProvider events and enforcement -o ContextHolderAwareRequestWrapper methods return null if user is anonymous -o AbstractBasicAclEntry improved compatibility with Hibernate -o User now provides a more useful toString() method -o Update to match Spring 1.1.5 official JAR dependencies (NB: now using - Servlet 2.4 and related JSP/taglib JARs) -o Documentation improvements -o Test coverage improvements - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.8.2.txt b/src/site/resources/announcements/announcement-0.8.2.txt deleted file mode 100644 index 97d61975bd..0000000000 --- a/src/site/resources/announcements/announcement-0.8.2.txt +++ /dev/null @@ -1,33 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.8.2 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Fixed bugs: - -o Correct location of AuthenticationSimpleHttpInvokerRequestExecutor in - clientContext.xml -o TokenBasedRememberMeServices changed to use long instead of int for - tokenValiditySeconds (SPR-807) -o Handle null Authentication.getAuthorities() in AuthorizeTag -o PasswordDaoAuthenticationProvider no longer stores String against - Authentication.setDetails() - - Changes: - -o Update commons-codec dependency to 1.3 -o AbstractProcessingFilter no longer has setters for failures, it uses the - exceptionMappings property -o Update to match Spring 1.2-RC2 official JAR dependencies -o AuthenticationProcessingFilter now provides an obtainUsername method -o Correct PathBasedFilterInvocationDefinitionMap compatibility with Spring - 1.2-RC2 -o Refactoring to leverage Spring's Assert class and mocks where possible - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.8.3.txt b/src/site/resources/announcements/announcement-0.8.3.txt deleted file mode 100644 index 34dd613712..0000000000 --- a/src/site/resources/announcements/announcement-0.8.3.txt +++ /dev/null @@ -1,18 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.8.3 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Fixed bugs: - -o HttpSessionContextIntegrationFilter elegantly handles IOExceptions and - ServletExceptions within filter chain (see - http://opensource.atlassian.com/projects/spring/browse/SEC-20) - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-0.9.0.txt b/src/site/resources/announcements/announcement-0.9.0.txt deleted file mode 100644 index 41a958d220..0000000000 --- a/src/site/resources/announcements/announcement-0.9.0.txt +++ /dev/null @@ -1,17 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 0.9.0 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Changes: - -o All changes are in JIRA at - http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-1.0.0 Final.txt b/src/site/resources/announcements/announcement-1.0.0 Final.txt deleted file mode 100644 index a987b207f0..0000000000 --- a/src/site/resources/announcements/announcement-1.0.0 Final.txt +++ /dev/null @@ -1,17 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 1.0.0 Final release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Changes: - -o All changes are in JIRA at - http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-1.0.0 RC1.txt b/src/site/resources/announcements/announcement-1.0.0 RC1.txt deleted file mode 100644 index 38558daab4..0000000000 --- a/src/site/resources/announcements/announcement-1.0.0 RC1.txt +++ /dev/null @@ -1,17 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 1.0.0 RC1 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Changes: - -o All changes are in JIRA at - http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/announcements/announcement-1.0.0 RC2.txt b/src/site/resources/announcements/announcement-1.0.0 RC2.txt deleted file mode 100644 index b2da0a6d17..0000000000 --- a/src/site/resources/announcements/announcement-1.0.0 RC2.txt +++ /dev/null @@ -1,17 +0,0 @@ -The acegi-security-doc team is pleased to announce the Acegi Security System -for Spring 1.0.0 RC2 release! - -http://acegisecurity.org/ - -Acegi Security System for Spring - -Changes in this version include: - - Changes: - -o All changes are in JIRA at - http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - -Have fun! --The acegi-security-doc team - \ No newline at end of file diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css deleted file mode 100644 index 3b6994bd0b..0000000000 --- a/src/site/resources/css/site.css +++ /dev/null @@ -1,55 +0,0 @@ - -#poweredBy { - visibility: hidden; -} - -#bannerLeft img { - padding: 35px 0 0 25px -} - -#leftColumn { - margin: 30px 0 0 5px; - border: none; - background-color: white; -} - -#navcolumn li { - line-height: 1.5em; - font-size: 0.95em; -} - -#navcolumn h5 { - font-size: 0.95em; -} - -h2 { - padding: 0; - border: none; - color: black; - background-color: white; - font-weight:bold; - font-size: large; - text-align: center; -} -h3 { - padding: 0; - border: none; - color: black; - background-color: white; - font-weight: normal; - font-size: large; -} -h4 { - padding: 0; - border: none; - background-color: white; - color: black; - font-weight: normal; - font-size: large; -} - -h5 { - padding: 0; - background-color: white; - color: black; -} diff --git a/src/site/resources/dbinit.txt b/src/site/resources/dbinit.txt deleted file mode 100644 index 26cdd99acb..0000000000 --- a/src/site/resources/dbinit.txt +++ /dev/null @@ -1,92 +0,0 @@ ---- $Id$ - ---- Sample Hypersonic SQL compatible schema and data ---- ---- All Spring Security JDBC DAOs can be customised to use a different schema. ---- In addition, the Spring Security JDBC DAOs do not even need to be used ---- with Spring Security, and an entirely customised persistence strategy ---- can be employed via standard interfaces (eg in-memory, Hibernate etc). - -SET IGNORECASE TRUE; - -CREATE TABLE users ( - username VARCHAR(50) NOT NULL PRIMARY KEY, - password VARCHAR(50) NOT NULL, - enabled BIT NOT NULL -); - -CREATE TABLE authorities ( - username VARCHAR(50) NOT NULL, - authority VARCHAR(50) NOT NULL -); -CREATE UNIQUE INDEX ix_auth_username ON authorities ( username, authority ); - -ALTER TABLE authorities ADD CONSTRAINT fk_authorities_users foreign key (username) REFERENCES users(username); - -INSERT INTO users VALUES ('rod', 'koala', true); -INSERT INTO users VALUES ('dianne', 'emu', true); -INSERT INTO users VALUES ('scott', 'wombat', true); -INSERT INTO users VALUES ('peter', 'opal', false); - -INSERT INTO authorities VALUES ('rod', 'ROLE_TELLER'); -INSERT INTO authorities VALUES ('rod', 'ROLE_SUPERVISOR'); -INSERT INTO authorities VALUES ('dianne', 'ROLE_TELLER'); -INSERT INTO authorities VALUES ('scott', 'ROLE_TELLER'); -INSERT INTO authorities VALUES ('peter', 'ROLE_TELLER'); - ---- Indexes auto created in HSQLDB for primary keys and unique columns - -CREATE TABLE acl_object_identity ( - id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, - object_identity VARCHAR_IGNORECASE(250) NOT NULL, - parent_object BIGINT, - acl_class VARCHAR_IGNORECASE(250) NOT NULL, - CONSTRAINT unique_object_identity UNIQUE(object_identity), - FOREIGN KEY (parent_object) REFERENCES acl_object_identity(id) -); - -CREATE TABLE acl_permission ( - id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, - acl_object_identity BIGINT NOT NULL, - recipient VARCHAR_IGNORECASE(100) NOT NULL, - mask INTEGER NOT NULL, - CONSTRAINT unique_recipient UNIQUE(acl_object_identity, recipient), - FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id) -); - ---- Mask integer 0 = no permissions ---- Mask integer 1 = administer ---- Mask integer 2 = read ---- Mask integer 6 = read and write permissions ---- Mask integer 14 = read and write and create permissions - ---------------------------------------------------------------------- ---- *** INHERITED RIGHTS FOR DIFFERENT INSTANCES AND RECIPIENTS *** ---- INSTANCE RECIPIENT PERMISSION(S) (COMMENT #INSTANCE) ---------------------------------------------------------------------- ---- 1 ROLE_SUPERVISOR Administer ---- 2 ROLE_SUPERVISOR None (overrides parent #1) ---- rod Read ---- 3 ROLE_SUPERVISOR Administer (from parent #1) ---- scott Read, Write, Create ---- 4 ROLE_SUPERVISOR Administer (from parent #1) ---- 5 ROLE_SUPERVISOR Administer (from parent #3) ---- scott Read, Write, Create (from parent #3) ---- 6 ROLE_SUPERVISOR Administer (from parent #3) ---- scott Administer (overrides parent #3) ---------------------------------------------------------------------- - -INSERT INTO acl_object_identity VALUES (1, 'org.springframework.security.acl.DomainObject:1', null, 'org.springframework.security.acl.basic.SimpleAclEntry'); -INSERT INTO acl_object_identity VALUES (2, 'org.springframework.security.acl.DomainObject:2', 1, 'org.springframework.security.acl.basic.SimpleAclEntry'); -INSERT INTO acl_object_identity VALUES (3, 'org.springframework.security.acl.DomainObject:3', 1, 'org.springframework.security.acl.basic.SimpleAclEntry'); -INSERT INTO acl_object_identity VALUES (4, 'org.springframework.security.acl.DomainObject:4', 1, 'org.springframework.security.acl.basic.SimpleAclEntry'); -INSERT INTO acl_object_identity VALUES (5, 'org.springframework.security.acl.DomainObject:5', 3, 'org.springframework.security.acl.basic.SimpleAclEntry'); -INSERT INTO acl_object_identity VALUES (6, 'org.springframework.security.acl.DomainObject:6', 3, 'org.springframework.security.acl.basic.SimpleAclEntry'); - -INSERT INTO acl_permission VALUES (null, 1, 'ROLE_SUPERVISOR', 1); -INSERT INTO acl_permission VALUES (null, 2, 'ROLE_SUPERVISOR', 0); -INSERT INTO acl_permission VALUES (null, 2, 'rod', 2); -INSERT INTO acl_permission VALUES (null, 3, 'scott', 14); -INSERT INTO acl_permission VALUES (null, 6, 'scott', 1); - - diff --git a/src/site/resources/images/logo.gif b/src/site/resources/images/logo.gif deleted file mode 100644 index 130cc4589a..0000000000 Binary files a/src/site/resources/images/logo.gif and /dev/null differ diff --git a/src/site/xdoc/articles.xml b/src/site/xdoc/articles.xml deleted file mode 100644 index 341bd10207..0000000000 --- a/src/site/xdoc/articles.xml +++ /dev/null @@ -1,153 +0,0 @@ - -External Web Articles covering Spring Security

Here are some of the external pages mentioning Spring Security. If you've - found another, please let us know. -

- - -

\ No newline at end of file diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml deleted file mode 100644 index b6222441c3..0000000000 --- a/src/site/xdoc/changes.xml +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - Spring Security changes - - - - All changes are in JIRA at http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - - - All changes are in JIRA at http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - - - All changes are in JIRA at http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - - - All changes are in JIRA at http://opensource2.atlassian.com/projects/spring/secure/ReleaseNote.jspa?projectId=10040 - - - HttpSessionContextIntegrationFilter elegantly handles IOExceptions and ServletExceptions within filter chain (see http://opensource.atlassian.com/projects/spring/browse/SEC-20) - - - HttpSessionContextIntegrationFilter elegantly handles IOExceptions and ServletExceptions within filter chain (see http://opensource.atlassian.com/projects/spring/browse/SEC-20) - - - AbstractIntegrationFilter elegantly handles IOExceptions and ServletExceptions within filter chain (see http://opensource.atlassian.com/projects/spring/browse/SEC-20) - - - Correct location of AuthenticationSimpleHttpInvokerRequestExecutor in clientContext.xml - TokenBasedRememberMeServices changed to use long instead of int for tokenValiditySeconds (SPR-807) - Handle null Authentication.getAuthorities() in AuthorizeTag - PasswordDaoAuthenticationProvider no longer stores String against Authentication.setDetails() - Update commons-codec dependency to 1.3 - AbstractProcessingFilter no longer has setters for failures, it uses the exceptionMappings property - Update to match Spring 1.2-RC2 official JAR dependencies - AuthenticationProcessingFilter now provides an obtainUsername method - Correct PathBasedFilterInvocationDefinitionMap compatibility with Spring 1.2-RC2 - Refactoring to leverage Spring's Assert class and mocks where possible - - - X509 (certificate-based) authentication support - UserDetails now advises locked accounts, with corresponding DaoAuthenticationProvider events and enforcement - ContextHolderAwareRequestWrapper methods return null if user is anonymous - AbstractBasicAclEntry improved compatibility with Hibernate - User now provides a more useful toString() method - Update to match Spring 1.1.5 official JAR dependencies (NB: now using Servlet 2.4 and related JSP/taglib JARs) - SecurityEnforcementFilter caused NullPointerException when anonymous authentication used with BasicProcessingFilterEntryPoint - FilterChainProxy now supports replacement of ServletRequest and ServetResponse by Filter beans - Corrected Authz parsing of whitespace in GrantedAuthoritys - TokenBasedRememberMeServices now respects expired users, expired credentials and disabled users - HttpSessionContextIntegrationFilter now handles HttpSession invalidation without redirection - StringSplitUtils.split() ignored delimiter argument - DigestProcessingFilter now provides userCache getter and setter - Contacts Sample made to work with UserDetails-based Principal - Documentation improvements - Test coverage improvements - - - Added Digest Authentication support (RFC 2617 and RFC 2069) - Added pluggable remember-me services - Added pluggable mechnism to prevent concurrent login sessions - FilterChainProxy added to significantly simplify web.xml configuration of Acegi Security - AuthenticationProcessingFilter now provides hook for extra credentials (eg postcodes) - New WebAuthenticationDetails class now used by processing filters for Authentication.setDetails() - Additional debug-level logging - Improved Tapestry support in AbstractProcessingFilter - Made ConfigAttributeDefinition and ConfigAttribute Serializable - User now accepts blank passwords (null passwords still rejected) - FilterToBeanProxy now searches hierarchical bean factories - User now accepted blank passwords (null passwords still rejected) - ContextHolderAwareRequestWrapper now provides a getUserPrincipal() method - HttpSessionIntegrationFilter no longer creates a HttpSession unnecessarily - FilterSecurityInterceptor now only executes once per request (improves performance with SiteMesh) - JaasAuthenticatinProvider now uses System.property "java.security.auth.login.config" - JaasAuthenticationCallbackHandler Authentication is passed to handle method setAuthentication removed - Added AuthenticationException to the AutenticationEntryPoint.commence method signature - Added AccessDeniedException to the SecurityEncorcementFilter.sendAccessDeniedError method signature - FilterToBeanProxy now addresses lifecycle mismatch (IoC container vs servlet container) issue - Significantly refactor "well-known location model" to authentication processing mechanism and HttpSessionContextIntegrationFilter model - Correct issue with JdbcDaoImpl default SQL query not using consistent case sensitivity - Improve Linux and non-Sun JDK (specifically IBM JDK) compatibility - Log4j now included in generated WAR artifacts (fixes issue with Log4j listener) - Correct NullPointerException in FilterInvocationDefinitionSource implementations - - - Major CVS repository restructure to support Maven and eliminate libraries - Major improvements to Contacts sample application (now demos ACL security) - Added AfterInvocationManager to mutate objects return from invocations - Added BasicAclEntryAfterInvocationProvider to ACL evaluate returned Object - Added BasicAclEntryAfterInvocationCollectionFilteringProvider - Added security propagation during RMI invocations (from sandbox) - Added security propagation for Spring's HTTP invoker - Added BasicAclEntryVoter, which votes based on AclManager permissions - Added AspectJ support (especially useful for instance-level security) - Added MethodDefinitionSourceAdvisor for performance and autoproxying - Added MethodDefinitionMap querying of interfaces defined by secure objects - Added AuthenticationProcessingFilter.setDetails for use by subclasses - Added 403-causing exception to HttpSession via SecurityEnforcementFilter - Added net.sf.acegisecurity.intercept.event package - Added BasicAclExtendedDao interface and JdbcExtendedDaoImpl for ACL CRUD - Added additional remoting protocol demonstrations to Contacts sample - Added AbstractProcessingFilter property to always use defaultTargetUrl - Added ContextHolderAwareRequestWrapper to integrate with getRemoteUser() - Added attempted username to view if processed by AuthenticationProcessingFilter - Added UserDetails account and credentials expiration methods - Added exceptions and events to support new UserDetails methods - Added new exceptions to JBoss container adapter - Improved BasicAclProvider to only respond to specified ACL object requests - Refactored MethodDefinitionSource to work with Method, not MethodInvocation - Refactored AbstractFilterInvocationDefinitionSource to work with URL Strings alone - Refactored AbstractSecurityInterceptor to better support other AOP libraries - Improved performance of JBoss container adapter (see reference docs) - Made DaoAuthenticationProvider detect null in Authentication.principal - Improved JaasAuthenticationProvider startup error detection - Refactored EH-CACHE implementations to use Spring IoC defined caches instead - AbstractProcessingFilter now has various hook methods to assist subclasses - DaoAuthenticationProvider better detects AuthenticationDao interface violations - The User class has a new constructor (the old constructor is deprecated) - Fixed ambiguous column references in JdbcDaoImpl default query - Fixed AbstractProcessingFilter to use removeAttribute (JRun compatibility) - Fixed GrantedAuthorityEffectiveAclResolver support of UserDetails principals - Fixed HttpSessionIntegrationFilter "cannot commit to container" during logoff - Moved MethodSecurityInterceptor to ...intercept.method.aopalliance package - Documentation improvements - Test coverage improvements - - - Resolved to use http://apr.apache.org/versioning.html for future versioning - Added additional DaoAuthenticationProvider event when user not found - Added Authentication.getDetails() to DaoAuthenticationProvider response - Added DaoAuthenticationProvider.hideUserNotFoundExceptions (default=true) - Added PasswordAuthenticationProvider for password-validating DAOs (eg LDAP) - Added FilterToBeanProxy compatibility with ContextLoaderServlet (lazy inits) - Added convenience methods to ConfigAttributeDefinition - Improved sample applications' bean reference notation - Clarified contract for ObjectDefinitionSource.getAttributes(Object) - Extracted removeUserFromCache(String) to UserCache interface - Improved ConfigAttributeEditor so it trims preceding and trailing spaces - Refactored UsernamePasswordAuthenticationToken.getDetails() to Object - Fixed MethodDefinitionAttributes to implement ObjectDefinitionSource change - Fixed EH-CACHE-based caching implementation behaviour when cache exists - Fixed Ant "release" target not including project.properties - Fixed GrantedAuthorityEffectiveAclsResolver if null ACLs provided to method - Documentation improvements - - - Added domain object instance access control list (ACL) packages - Added feature so DaoAuthenticationProvider returns User in Authentication - Added AbstractIntegrationFilter.secureContext property for custom contexts - Added stack trace logging to SecurityEnforcementFilter - Added exception-specific target URLs to AbstractProcessingFilter - Added JdbcDaoImpl hook so subclasses can insert custom granted authorities - Added AuthenticationProvider that wraps JAAS login modules - Added support for EL expressions in the authz tag library - Added failed Authentication object to AuthenticationExceptions - Added signed JARs to all official release builds (see readme.txt) - Added remote client authentication validation package - Added protected sendAccessDeniedError method to SecurityEnforcementFilter - Updated Authentication to be serializable (Weblogic support) - Updated JAR to Spring 1.1 RC 1 - Updated to Clover 1.3 - Updated to HSQLDB version 1.7.2 Release Candidate 6D - Refactored User to net.sf.acegisecurity.UserDetails interface - Refactored CAS package to store UserDetails in CasAuthenticationToken - Improved organisation of DaoAuthenticationProvider to facilitate subclassing - Improved test coverage (now 98.3%) - Improved JDBC-based tests to use in-memory database rather than filesystem - Fixed Linux compatibility issues (directory case sensitivity etc) - Fixed AbstractProcessingFilter to handle servlet spec container differences - Fixed AbstractIntegrationFilter to resolve a Weblogic compatibility issue - Fixed CasAuthenticationToken if proxy granting ticket callback not requested - Fixed EH-CACHE handling on web context refresh - Documentation improvements - - - Added samples/quick-start - Added NullRunAsManager and made default for AbstractSecurityInterceptor - Added event notification (see net.sf.acegisecurity.providers.dao.event) - Updated JAR to Spring 1.0.2 - Updated JAR to Commons Attributes CVS snapshot from Spring 1.0.2 release - Updated GrantedAuthorityImpl to be serializable (JBoss support) - Updated Authentication interface to present extra details for a request - Updated Authentication interface to subclass java.security.Principal - Refactored DaoAuthenticationProvider caching (refer to reference docs) - Improved HttpSessionIntegrationFilter to manage additional attributes - Improved URL encoding during redirects - Fixed issue with hot deploy of EhCacheBasedTicketCache (used with CAS) - Fixed issue with NullPointerExceptions in taglib - Removed DaoAuthenticationToken and session-based caching - Documentation improvements - Upgrade Note: DaoAuthenticationProvider no longer has a "key" property - - - Added single sign on support via Yale Central Authentication Service (CAS) - Added full support for HTTP Basic Authentication - Added caching for DaoAuthenticationProvider successful authentications - Added Burlap and Hessian remoting to Contacts sample application - Added pluggable password encoders including plaintext, SHA and MD5 - Added pluggable salt sources to enhance security of hashed passwords - Added FilterToBeanProxy to obtain filters from Spring application context - Added support for prepending strings to roles created by JdbcDaoImpl - Added support for user definition of SQL statements used by JdbcDaoImpl - Added definable prefixes to avoid expectation of "ROLE_" GrantedAuthoritys - Added pluggable AuthenticationEntryPoints to SecurityEnforcementFilter - Added Apache Ant path syntax support to SecurityEnforcementFilter - Added filter to automate web channel requirements (eg HTTPS redirection) - Updated JAR to Spring 1.0.1 - Updated several classes to use absolute (not relative) redirection URLs - Refactored filters to use Spring application context lifecycle support - Improved constructor detection of nulls in User and other key objects - Fixed FilterInvocation.getRequestUrl() to also include getPathInfo() - Fixed Contacts sample application tags - Established acegisecurity-developer mailing list - Documentation improvements - - - Added HTTP session authentication as an alternative to container adapters - Added HTTP request security interceptor (offers considerable flexibility) - Added security taglib - Added Clover test coverage instrumentation (currently 97.2%) - Added support for Catalina (Tomcat) 4.1.30 to in-container integration tests - Added HTML test and summary reporting to in-container integration tests - Updated JARs to Spring Framework release 1.0, with associated AOP changes - Updated to Apache License version 2.0 - Updated copyright with permission of past contributors - Refactored unit tests to use mock objects and focus on a single class each - Refactored many classes to enable insertion of mock objects during testing - Refactored core classes to ease support of new secure object types - Changed package layout to better describe the role of contained items - Changed the extractor to extract additional classes from JBoss and Catalina - Changed Jetty container adapter configuration (see reference documentation) - Improved AutoIntegrationFilter handling of deployments without JBoss JARs - Fixed case handling support in data access object authentication provider - Documentation improvements - - - Added "in container" unit test system for container adapters and sample app - Added library extractor tool to reduce the "with deps" ZIP release sizes - Added unit test to the attributes sample - Added Jalopy source formatting - Modified all files to use net.sf.acegisecurity namespace - Renamed springsecurity.xml to acegisecurity.xml for consistency - Reduced length of ZIP and JAR filenames - Clarified licenses and sources for all included libraries - Updated documentation to reflect new file and package names - Setup Sourceforge.net project and added to CVS etc - - - Added Commons Attributes support and sample (thanks to Cameron Braid) - Added JBoss container adapter - Added Resin container adapter - Added JDBC DAO authentication provider - Added several filter implementations for container adapter integration - Added SecurityInterceptor startup time validation of ConfigAttributes - Added more unit tests - Refactored ConfigAttribute to interface and added concrete implementation - Enhanced diagnostics information provided by sample application debug.jsp - Modified sample application for wider container portability (Resin, JBoss) - Fixed switch block in voting decision manager implementations - Removed Spring MVC interceptor for container adapter integration - Documentation improvements - - - Initial public release - - - diff --git a/src/site/xdoc/downloads.xml b/src/site/xdoc/downloads.xml deleted file mode 100644 index 7e55fa9b0c..0000000000 --- a/src/site/xdoc/downloads.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - Spring Security Downloads - - -
-

- If you wish to try out this project, you are probably - looking for the - spring-security-xx.zip - file, which contains all of the officially released - JARs, a copy of all documentation, and two WAR - artifacts. The two WAR artifacts are from the Contacts - Sample and the Tutorial Sample application. The Tutorial - Sample consists of a "bare bones" configuration that - will get you up and running quickly, whereas the - Contacts Sample illustrates more advanced features. -

- -

- The spring-security-xx-src.zip is intended for use with - IDEs. It does not contain the files needed to compile - Spring Security. It also does not contain the sources to - the sample applications. If you need any of these files, - please download from SVN. -

- -

- The official release ZIP files are available from - the - - Sourceforge File Release System - - . -

-
- -

- The Spring Security JARs are also available via the - - Central Maven Repository - - . -

-
- -

- Detailed instructions on downloading from CVS and - building from source are provided on the - Building with Maven - page. -

-
- -

- If you don't wish to access SVN directly, we provide - - nightly snaphot builds - - for your convenience. These should contain both source and binary - jars. The archive files are labelled with both the build date and the - subversion revision number used for the build. -

-
-
- -
\ No newline at end of file diff --git a/src/site/xdoc/faq.xml b/src/site/xdoc/faq.xml deleted file mode 100644 index a97257aeff..0000000000 --- a/src/site/xdoc/faq.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - Frequently Asked Questions (FAQ) on Acegi Security - - - - -
- - - -

Acegi Security is an open source project that provides comprehensive authentication - and authorisation services for enterprise applications based on - The Spring Framework. - Acegi Security can authenticate using a variety of pluggable providers, and - can authorise both web requests and method invocations. - Acegi Security provides an integrated security approach across - these various targets, and also offers access control list (ACL) capabilities to - enable individual domain object instances to be secured. At an implementation - level, Acegi Security is managed through Spring's inversion of control and - lifecycle services, and actually enforces security using interception through - servlet Filters and Java AOP frameworks. In terms of AOP framework support, Acegi - Security currently supports AOP Alliance (which is what the - Spring IoC container uses internally) and AspectJ, although additional frameworks - can be easily supported.

- -
- - - -

Let's assume you're developing an enterprise application based on Spring. - There are four security concerns you typically need to address: authentication, - web request security, service layer security (ie your methods that implement - business logic), and domain object instance security (ie different domain objects - have different permissions). With these typical requirements in mind: -

    -
  1. Authentication: The servlet specification provides an approach - to authentication. However, you will need to configure the container - to perform authentication which typically requires editing of - container-specific "realm" settings. This makes a non-portable - configuration, and if you need to write an actual Java class to implement - the container's authentication interface, it becomes even more non-portable. - With Acegi Security you achieve complete portability - right down to the - WAR level. Also, Acegi Security offers a choice of production-proven - authentication providers and mechanisms, meaning you can switch your - authentication approaches at deployment time. This is particularly - valuable for software vendors writing products that need to work in - an unknown target environment.



  2. -
  3. Web request security: The servlet specification provides an - approach to secure your request URIs. However, these URIs can only be - expressed in the servlet specification's own limited URI path format. - Acegi Security provides a far more comprehensive approach. For instance, - you can use Ant paths or regular expressions, you can consider parts of the - URI other than simply the requested page (eg you can consider HTTP GET - parameters), and you can implement your own runtime source of configuration - data. This means your web request security can be dynamically changed during - the actual execution of your webapp.



  4. -
  5. Service layer and domain object security: The absence of support - in the servlet specification for services layer security or domain object - instance security represent serious limitations for multi-tiered - applications. Typically developers either ignore these requirements, or - implement security logic within their MVC controller code (or even worse, - inside the views). There are serious disadvantages with this approach:



    -
      -
    1. Separation of concerns: Authorization is a - crosscutting concern and should be implemented as such. - MVC controllers or views implementing authorization code - makes it more difficult to test both the controller and - authorization logic, more difficult to debug, and will - often lead to code duplication.
    2. -
    3. Support for rich clients and web services: If an - additional client type must ultimately be supported, any - authorization code embedded within the web layer is - non-reusable. It should be considered that Spring remoting - exporters only export service layer beans (not MVC - controllers). As such authorization logic needs to be - located in the services layer to support a multitude of - client types.
    4. -
    5. Layering issues: An MVC controller or view is simply - the incorrect architectural layer to implement authorization - decisions concerning services layer methods or domain object - instances. Whilst the Principal may be passed to the services - layer to enable it to make the authorization decision, doing - so would introduce an additional argument on every services - layer method. A more elegant approach is to use a ThreadLocal - to hold the Principal, although this would likely increase - development time to a point where it would become more - economical (on a cost-benefit basis) to simply use a dedicated - security framework.
    6. -
    7. Authorisation code quality: It is often said of web - frameworks that they "make it easier to do the right things, - and harder to do the wrong things". Security frameworks are - the same, because they are designed in an abstract manner for - a wide range of purposes. Writing your own authorization code - from scratch does not provide the "design check" a framework - would offer, and in-house authorization code will typically - lack the improvements that emerge from widespread deployment, - peer review and new versions. -
    -
  6. -
- For simple applications, servlet specification security may just be enough. - Although when considered within the context of web container portability, - configuration requirements, limited web request security flexibility, and - non-existent services layer and domain object instance security, it becomes - clear why developers often look to alternative solutions. -

- - - -

Ah-see-gee. Said quickly, without emphasis on any part. - Acegi isn't an acronym, name of a Greek God or anything similarly - impressive - it's just letters #1, #3, #5, #7 and #9 of the alphabet.

- -
- - - -

It's official name is Spring Security, - although we're happy for it to be abbreviated to - Acegi Security. Please don't just call it Acegi, though, - as that gets confused with the name of the company that maintains Acegi - Security.

- - - -

80% of support questions are because people have not defined - the necessary filters in web.xml, or the filters are being - mapped in the incorrect order. Check the - Reference Guide, which - has a specific section on filter ordering.

- - - -

The next most common source of problems stem from custom - AuthenticationDao implementations that simply don't properly - implement the interface contract. For example, they return null instead - of the user not found exception, or fail to add in the - GrantedAuthority[]s. Whilst DaoAuthenticationProvider - does its best to check the AuthenticationDao returns a valid - UserDetails, we suggest you write the - UserDetails object to the log and check it looks correct.

- - - -

A common user problem with infinite loop and redirecting to the login page - is caused by accidently configuring the login page as a "secured" resource. - Generally make sure you mark your login page as requiring ROLE_ANONYMOUS. -

- - - -

If you are securing web resources and they dont seem to be matched in the URL patterns, - check the objectDefinitionSource in the FilterSecurityInterceptor. - If you are using the CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON setting, - then the URL patterns configured MUST be in lowercase. -

- For example, making a request ending in /someAction.do will need - to be configured as: /someaction.do (Note the case). -

-<property name="objectDefinitionSource">
-  <value>
-    CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
-    PATTERN_TYPE_APACHE_ANT
-    /index.jsp=ROLE_ANONYMOUS,ROLE_USER
-    /someaction.do=ROLE_USER
-  <value>
-</property>
-
- -

- - - -

A common user requirement is to disable / lock an account after a number of failed login attempts. - Acegi itself does not provide anything "out of the box", however in your application you can implement - and register an org.springframework.context.ApplicationListener. Inside your application - event listener you can then check for an instanceof the particular AuthenticationFailureEvent - and then call your application user management interface to update the user details. -

- For example: -

-     public void onApplicationEvent(ApplicationEvent event) {
-
-       // check failed event
-       if(event instanceof AuthenticationFailurePasswordEvent){
-          // call user management interface to increment failed login attempts, etc.
-          . . .
-       }
-     }
-     
- -

- - -

There are three things you must do to make a user password change take affect: -

    -
  • Change the password using your authentication DAO
  • -
  • Remove the user from the User Cache (i.e. if you have a cache configured)
  • -
  • Update the SecurityContextHolder to include the new Authentication object and password
  • -
- -

- -
- - - -

The most important things to post with any support requests on the - Spring Forums are your - web.xml, applicationContext.xml (or whichever - XML loads the security-related beans) as well as any custom - AuthenticationDao you might be using. For really odd problems, - also switch on debug-level logging and include the resulting log.

- - - -

Acegi Security uses Commons Logging, just as Spring does. So you use the - same approach as you'd use for Spring. Most people output to Log4J, so - the following log4j.properties would work:

- log4j.rootCategory=WARN, stdout - - log4j.appender.stdout=org.apache.log4j.ConsoleAppender - log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n - - log4j.category.net.sf.acegisecurity=DEBUG - -
- - - -

In most cases write an AuthenticationDao which returns - a subclass of User. Alternatively, write your own - UserDetails implementation from scratch and return that.

- - - -

Acegi Security targets enterprise applications, which are typically - multi-user, data-oriented applications that are important to - the core business. Acegi Security was designed to provide a portable and effective - security framework for this target application type. It was not designed for securing - limited privilege runtime environments, such as web browser applets.

- -

We did consider JAAS when designing Acegi Security, but it simply - wasn't suitable for our purpose. We needed to avoid complex JRE configurations, - we needed container portability, and we wanted maximum leveraging of the Spring IoC - container. Particularly as limited privilege runtime environments were not - an actual requirement, this lead to the natural design of Acegi Security as - it exists today.

Acegi Security already provides some JAAS integration. It can today authenticate - via delegation to a JAAS login module. This means it offers the same level of JAAS - integration as many web containers. Indeed the container adapter model supported by - Acegi Security allows Acegi Security and container-managed security to happily - co-exist and benefit from each other. Any debate about Acegi Security and JAAS - should therefore centre on the authorisation issue. An evaluation of major - containers and security frameworks would reveal that Acegi Security is by no - means unusual in not using JAAS for authorisation.

-

There are many examples of open source applications being preferred to - official standards. A few that come to mind in the Java community include - using Spring managed POJOs (rather than EJBs), Hibernate (instead of entity beans), - Log4J (instead of JDK logging), Tapestry (instead of JSF), and Velocity/FreeMarker - (instead of JSP). It's important to recognise that many open source projects do - develop into de facto standards, and in doing so play a legitimate and beneficial - role in professional software development.

- - -

Yes. If you've written something and it works well, please feel free to share it. - Simply email the contribution to the - acegisecurity-developers list. If you haven't yet - written the contribution, we encourage you to send your thoughts to the same - list so that you can receive some initial design feedback.

-

For a contribution to be used, it must have appropriate unit test coverage and - detailed JavaDocs. It will ideally have some comments for the Reference Guide - as well (this can be sent in word processor or HTML format if desired). This - helps ensure the contribution maintains the same quality as the remainder of - the project.

We also welcome documentation improvements, unit tests, illustrations, - people supporting the user community (especially on the forums), design ideas, - articles, blog entries, presentations and alike. If you're looking for something - to do, you can always email the - acegisecurity-developers list and we'll be - pleased to suggest something. :-)

- -
- - - -
\ No newline at end of file diff --git a/src/site/xdoc/policies.xml b/src/site/xdoc/policies.xml deleted file mode 100644 index fbe8cee43a..0000000000 --- a/src/site/xdoc/policies.xml +++ /dev/null @@ -1,103 +0,0 @@ - -Project Policies and Procedures

The following policies and procedures are intended to ensure that Spring Security will - continue to achieve its project objectives and support the community in the context of an - expanding development team. - -

- The following was unanimously supported by the community supporting following - discussion - on acegisecurity-developer. The policies and procedures below represent version 1.0 - and are effective 1 August 2005. -

- -

Thanks for your help in connection with the above. If you have any suggestions for improving these - policies and procedures, please use the acegisecurity-developer list to raise them. - -

- Ben Alex

- Project Admin - -

- $Id$ - - - -

\ No newline at end of file diff --git a/src/site/xdoc/powering.xml b/src/site/xdoc/powering.xml deleted file mode 100644 index c796200d12..0000000000 --- a/src/site/xdoc/powering.xml +++ /dev/null @@ -1,41 +0,0 @@ - -Products Using Spring Security

Many open source and commercial products either use Acegi Security or at least - support it. Following is a partial list of such products. If you've integrated Spring - Security with some other product, please let us know (preferably with a URL - to some page explaining the integration/use)... - -

    -
  • Atlassian Crowd: Single Sign On system. Integration details.



  • -
  • A global financial institution uses Spring Security's SiteMinder integration in a physical security management application.



  • -
  • Elastic Path uses Spring Security for security.



  • -
  • A central bank that uses Spring Security for many of its internal applications with the CAS integration.



  • -
  • Several Australian Government departments use Spring Security for securing SOAP-based web services and web applications.



  • -
  • Enterprise Systems and Services at Rutgers University uses Spring Security in conjunction with JA-SIG Central Authentication Service to provide authentication and authorization capabilities to its applications including those used by staff and students as well as those utilized by web services.



  • -
  • Plus many more... ;-)



  • -
diff --git a/src/site/xdoc/standalone.xml b/src/site/xdoc/standalone.xml deleted file mode 100644 index 0a9ba42647..0000000000 --- a/src/site/xdoc/standalone.xml +++ /dev/null @@ -1,50 +0,0 @@ - -Acegi Security Use Without Spring

Sometimes we get asked can Acegi Security be used without Spring. - This page provides a detailed answer.

Acegi Security started out as a method interceptor for Spring IoC container - managed beans. Typically such beans provide services layer functions. - Over time Acegi Security grew to offer authentication services, ThreadLocal management, - web request filtering, extra AOP support, - ACL features, additional authentication mechanisms and so on (for those interested, - see our change log).

There's plenty written about why the - Spring Framework - is a good fit for modern applications. If you're not familiar with the benefits - Spring offers, please take a few minutes to learn more about it. In numerous - situations Spring will save you many months (or even years) of development time. - Not to mention your solutions will be better architected - (designed), better coded (implemented), and better supported (maintained) in the future. -

Acegi Security relies on the Spring IoC container to wire its classes, and execute lifecycle - methods such as afterPropertiesSet(). Some Acegi Security classes also - publish events to the ApplicationContext, although you could provide a mock - implementation of ApplicationContext easily enough which no-ops the method. - In other words, if you particularly didn't want Spring in your application, you could - avoid its use by writing equivalent getter, setter and lifecycle invocation processes - in standard Java code. This is a natural consequence of the Spring way of development, - which emphasises framework independence (it is not because we think there are good - reasons people would not use Spring).

If it sounds too hard (it's not) or counter-productive (it is) to replace Spring's IoC - services, don't forget you can always deploy Acegi Security and the Spring - IoC container solely for configuring Acegi Security. Spring does not mandate its - use in every part of your application. It will work quite successfully doing nothing more than - acting as a configuration mechanism for Acegi Security. Whilst some may regard this as excessive, - it's really no different than the traditional approach of every framework having its very - own XML or other proprietary configuration system. The main difference is that Spring is an - actual de facto standard, and you can gradually introduce it to other parts of your application - over time (if desired).

Acegi Security does not use any other Spring capabilities. Most notably, the - entire architecture is based around Filters, not Spring's MVC framework. - This allows it to be used with any MVC framework, or even with just straight JSPs. - Acegi Security uses the AOP Alliance and AspectJ interfaces for method interception - - it does not use any Spring-specific interfaces. As a consequence, Acegi Security is very - portable to applications that do not leverage any of Spring's capabilities. We should note - there are several very simple data access objects (DAOs) that use Spring's JDBC abstraction - layer, although each of these are defined by a simple interface and it is very common in - even native Spring-powered applications for these to be re-implemented using the application's - persistence framework of choice (eg Hibernate). - -

In summary, we recommend you take a look at Spring and consider using it in your - applications. Irrespective of whether you do so or not, we strongly recommend you use it - for configuration and lifecycle management of Acegi Security. If that is also not desired, - Acegi Security can easily be executed without Spring at all, providing you implement - similar IoC services. Acegi Security has very minimal dependencies directly on Spring, - with it being useful in many non-Spring applications and with non-Spring frameworks. - - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-03-04.xml b/src/site/xdoc/upgrade/upgrade-03-04.xml deleted file mode 100644 index 71007bc590..0000000000 --- a/src/site/xdoc/upgrade/upgrade-03-04.xml +++ /dev/null @@ -1,48 +0,0 @@ - -Acegi Security - Upgrading from version 0.3 to 0.4

Several changes were made between version 0.3 and 0.4 of the project. -These changes increased the modularity of the code, enhanced unit testing, -made package roles clearer, and added compelling alternatives to container -adapters and using web.xml security constraints to protect HTTP resources. - -

Unfortunately, changes to the API and package locations were required. The -following should help most casual users of the project update their -applications: - -

- -

-We hope you find the new features useful in your projects. - - - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-04-05.xml b/src/site/xdoc/upgrade/upgrade-04-05.xml deleted file mode 100644 index 255a9c5bb6..0000000000 --- a/src/site/xdoc/upgrade/upgrade-04-05.xml +++ /dev/null @@ -1,54 +0,0 @@ - -Acegi Security - Upgrading from version 0.4 to 0.5

The following should help most casual users of the project update their -applications: -

- -

-There are also lots of new features you might wish to consider for your -projects. These include CAS integration, pluggable password encoders -(such as MD5 and SHA), along with pluggable salt sources. We hope you find -the new features useful in your projects. - - - - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-05-06.xml b/src/site/xdoc/upgrade/upgrade-05-06.xml deleted file mode 100644 index bb7540c837..0000000000 --- a/src/site/xdoc/upgrade/upgrade-05-06.xml +++ /dev/null @@ -1,76 +0,0 @@ - -Acegi Security - Upgrading from version 0.3 to 0.4

-The following should help most casual users of the project update their -applications: -

- - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-06-070.xml b/src/site/xdoc/upgrade/upgrade-06-070.xml deleted file mode 100644 index 73bf74289b..0000000000 --- a/src/site/xdoc/upgrade/upgrade-06-070.xml +++ /dev/null @@ -1,55 +0,0 @@ - -Acegi Security - Upgrading from version 0.6 to 0.7

-The following should help most casual users of the project update their -applications: -

- - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-070-080.xml b/src/site/xdoc/upgrade/upgrade-070-080.xml deleted file mode 100644 index 2ce1289095..0000000000 --- a/src/site/xdoc/upgrade/upgrade-070-080.xml +++ /dev/null @@ -1,41 +0,0 @@ - -Acegi Security - Upgrading from version 0.7.0 to 0.8.0

-The following should help most casual users of the project update their -applications: - -

- - - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-080-090.xml b/src/site/xdoc/upgrade/upgrade-080-090.xml deleted file mode 100644 index fc3271ecd1..0000000000 --- a/src/site/xdoc/upgrade/upgrade-080-090.xml +++ /dev/null @@ -1,95 +0,0 @@ - -Acegi Security - Upgrading from version 0.8.0 to 0.9.0

-The following should help most casual users of the project update their -applications: - -

- - - -

\ No newline at end of file diff --git a/src/site/xdoc/upgrade/upgrade-090-100.xml b/src/site/xdoc/upgrade/upgrade-090-100.xml deleted file mode 100644 index 3fd7f5d9a7..0000000000 --- a/src/site/xdoc/upgrade/upgrade-090-100.xml +++ /dev/null @@ -1,95 +0,0 @@ - -Acegi Security - Upgrading from version 0.8.0 to 1.0.0

-The following should help most casual users of the project update their -applications: -

\ No newline at end of file