Jump to content

Spring Security

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mauls (talk | contribs) at 09:01, 8 July 2019 (Instance-based security features). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Spring Security
Developer(s)4
Stable release
5.1.5 / April 3, 2019 (2019-04-03) [1]
Written inJava
Operating systemCross-platform
Typeweb application framework security
LicenseApache License 2.0
Websiteprojects.spring.io/spring-security/

Spring Security is a Java/Java EE framework that provides authentication, authorization and other security features for enterprise applications. The project was started in late 2003 as 'Acegi Security' (pronounced Ah-see-gee /ɑːs/, whose letters are the first, third, fifth and seventh characters from the English alphabet, in order to prevent name conflicts[2]) by Ben Alex, with it being publicly released under the Apache License in March 2004. Subsequently, Acegi was incorporated into the Spring portfolio as Spring Security, an official Spring sub-project. The first public release under the new name was Spring Security 2.0.0 in April 2008, with commercial support and training available from SpringSource.

Authentication flow

Diagram 1 shows the basic flow of an authentication request using the Spring Security system. It shows the different filters and how they interact from the initial browser request, to either a successful authentication or an HTTP 403 error.

Key authentication features

Key authorization features

Instance-based security features

Other features

  • Software localization so user interface messages can be in any language.
  • Channel security, to automatically switch between HTTP and HTTPS upon meeting particular rules.
  • Caching in all database-touching areas of the framework.
  • Publishing of messages to facilitate event-driven programming.
  • Support for performing integration testing via JUnit.
  • Spring Security itself has comprehensive JUnit isolation tests.
  • Several sample applications, detailed JavaDocs and a reference guide.
  • Web framework independence.

Releases

  • 2.0.0 (April 2008)
  • 3.0.0 (December 2009)
  • 3.1.0 (December 07, 2011)
  • 3.1.2 (August 10, 2012)
  • 3.2.0 (December 16, 2013)
  • 4.0.0 (March 26, 2015)
  • 4.1.3 (August 24, 2016)
  • 4.2.0 (November 10, 2016)
  • 3.2.10, 4.1.4, 4.2.1 (December 22, 2016)
  • 4.2.2 (March 02, 2017)
  • 4.2.3 (June 08, 2017)
  • 5.0.0 (November 28, 2017)
  • 5.0.8, 4.2.8 (September 11, 2018)[3]
  • 5.1.0 GA (September 27, 2018)[4]
  • 5.1.1, 5.0.9, 4.2.9 (October 16, 2018)[5]
  • 5.1.2, 5.0.10, 4.2.10 (November 29, 2018)[6]
  • 5.1.3, 5.0.11, 4.2.11 (January 11, 2019)[7]
  • 5.1.4 (February 14, 2019)[8]
  • 5.1.5, 5.0.12, 4.2.12 (April 3, 2019)[9]

References

  1. ^ "Spring Security 5.1.5, 5.0.12, 4.2.12 Released". spring.io.
  2. ^ "Why the name Acegi?". spring.io.
  3. ^ "Spring Security 5.0.8 and 4.2.8 Released". spring.io. Retrieved 2019-06-09.
  4. ^ "Spring Security 5.1 goes GA". spring.io. Retrieved 2019-06-09.
  5. ^ "Spring Security 5.1.1, 5.0.9, and 4.2.9 Released". spring.io. Retrieved 2019-06-09.
  6. ^ "Spring Security 5.1.2, 5.0.10, 4.2.10 Released". spring.io. Retrieved 2019-06-09.
  7. ^ "Spring Security 5.1.3, 5.0.11, 4.2.11 Released". spring.io. Retrieved 2019-06-09.
  8. ^ "Spring Security 5.1.4 Released". spring.io. Retrieved 2019-06-09.
  9. ^ "Spring Security 5.1.5, 5.0.12, 4.2.12 Released". spring.io. Retrieved 2019-06-09.