Spring Security
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
github-actions[bot] e044c24952 Next development version 3 days ago
.github Merge branch '7.0.x' 3 days ago
.idea Fix checkstyle rules could not be parsed 5 years ago
.vscode Ensure Cursor imports Spring Security 2 months ago
access Update javadoc and apply `StringUtils#hasLength` 4 weeks ago
acl Mark targetDomainObject as `@Nullable` in PermissionEvaluator 3 weeks ago
aspects Apply javadoc warnings plugin to aspects 1 week ago
bom Add `compile-warnings-error` 2 months ago
buildSrc Remove compiler warnings for spring-security-config 3 weeks ago
cas Revert code 4 weeks ago
config Enable null-safety in spring-security-oauth2-jose 6 days ago
core Merge remote-tracking branch 'origin/7.0.x' 2 weeks ago
crypto Merge Fix Flaky Crypto Tests 2 weeks ago
data Rollback setDefaultRolePrefix() call 2 months ago
dependencies Add `compile-warnings-error` 2 months ago
docs Update Antora Spring UI to v0.4.26 3 days ago
etc Remove checkstyle suppressions for spring-security-oauth2-jose 6 days ago
git/hooks Update to 7.1.0-SNAPSHOT 2 months ago
gradle Merge branch '7.0.x' 3 days ago
itest Externalize java-toolchain configuration 2 months ago
javascript Bump minimatch from 3.1.2 to 3.1.5 in /javascript 3 weeks ago
kerberos Fix Build Errors for Improve AOT RuntimeHits 4 weeks ago
ldap Change ActiveDirectoryLdapAuthenticationProvider to use LdapClient 2 weeks ago
messaging Add MessageExpressionAuthorizationManager 2 weeks ago
oauth2 Enable null-safety in spring-security-oauth2-jose 6 days ago
rsocket Add `javadoc-warnings-error` 2 months ago
saml2/saml2-service-provider Read relayState from authenticationRequest 1 week ago
scripts Add Build Updates section to generated release notes 2 years ago
taglibs Add `javadoc-warnings-error` 2 months ago
test fix compile warning in spring-security-test 4 weeks ago
web Fix Jackson 2 deserializer for AuthenticationExtensionsClientOutputs 5 days ago
webauthn Merge Fix Jackson Deserializer for AuthenticationExtensionsClientOutputs 3 days ago
.editorconfig Fixed link in .editorconfig 4 years ago
.gitattributes Add .serialized suffix and consider them as binary in Git 2 years ago
.gitignore Add .kotlin/ to .gitignore 5 months ago
.sdkmanrc Update to JDK 25 (release = 17) 2 months ago
CONTRIBUTING.adoc Fix typos in contributing guide Tidy up wording in CONTRIBUTING.adoc to improve readability. 1 month ago
LICENSE.txt Add LICENSE.txt 6 years ago
README.adoc Add IDE Setup Documentation 2 weeks ago
RELEASE.adoc Polish RELEASE.adoc 2 years ago
build.gradle Externalize java-toolchain configuration 2 months ago
class_mapping_from_2.0.x.txt SEC-1148: Simple classname mapping from 2.0 to 3.0 17 years ago
gradle.properties Next development version 3 days ago
gradlew Bump gradle-wrapper from 9.3.1 to 9.4.0 2 weeks ago
gradlew.bat Bump gradle-wrapper from 9.2.1 to 9.3.1 1 month ago
notice.txt URL Cleanup 7 years ago
settings.gradle Bump io.spring.develocity.conventions from 0.0.24 to 0.0.25 2 months ago

README.adoc

image::https://badges.gitter.im/Join%20Chat.svg[Gitter,link=https://gitter.im/spring-projects/spring-security?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge]

image:https://github.com/spring-projects/spring-security/actions/workflows/continuous-integration-workflow.yml/badge.svg?branch=main["Build Status", link="https://github.com/spring-projects/spring-security/actions/workflows/continuous-integration-workflow.yml"]

image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=spring-security"]

= Spring Security

Spring Security provides security services for the https://docs.spring.io[Spring IO Platform]. Spring Security 6.0 requires Spring 6.0 as
a minimum and also requires Java 17.

For a detailed list of features and access to the latest release, please visit https://spring.io/projects[Spring projects].

== Code of Conduct
Please see our https://github.com/spring-projects/.github/blob/main/CODE_OF_CONDUCT.md[code of conduct]

== Downloading Artifacts
See https://docs.spring.io/spring-security/reference/getting-spring-security.html[Getting Spring Security] for how to obtain Spring Security.

== Documentation
Be sure to read the https://docs.spring.io/spring-security/reference/[Spring Security Reference].
Extensive JavaDoc for the Spring Security code is also available in the https://docs.spring.io/spring-security/site/docs/current/api/[Spring Security API Documentation].

You may also want to check out https://docs.spring.io/spring-security/reference/whats-new.html[what's new in the latest release].

== Quick Start
See https://docs.spring.io/spring-security/reference/servlet/getting-started.html[Hello Spring Security] to get started with a "Hello, World" application.

== Building from Source
Spring Security uses a https://gradle.org[Gradle]-based build system.
In the instructions below, https://vimeo.com/34436402[`./gradlew`] is invoked from the root of the source tree and serves as
a cross-platform, self-contained bootstrap mechanism for the build.

=== Prerequisites
https://docs.github.com/en/get-started/quickstart/set-up-git[Git] and the https://www.oracle.com/java/technologies/downloads/#java17[JDK17 build].

Be sure that your `JAVA_HOME` environment variable points to the `jdk-17` folder extracted from the JDK download.

=== Check out sources
[indent=0]
----
git clone git@github.com:spring-projects/spring-security.git
----

=== Install all `spring-*.jar` into your local Maven repository.

[indent=0]
----
./gradlew publishToMavenLocal
----

=== Compile and test; build all JARs, distribution zips, and docs

[indent=0]
----
./gradlew build
----

The reference docs are not currently included in the distribution zip.
You can build the reference docs for this branch by running the following command:

----
./gradlew :spring-security-docs:antora
----

That command publishes the docs site to the `_docs/build/site_` directory.
The https://github.com/spring-projects/spring-security/tree/docs-build[playbook branch] describes how to build the reference docs in detail.

Discover more commands with `./gradlew tasks`.

=== IDE setup (IntelliJ)

No special steps are needed to open Spring Security in IntelliJ.

=== IDE setup (Eclipse and VS Code)

To work in Eclipse or VS Code, first generate Eclipse metadata so you can import the project into Eclipse or VS Code:

[indent=0]
----
./gradlew cleanEclipse eclipse
----

If you have not built the project yet, run `./gradlew publishToMavenLocal` first so dependencies are resolved.

*VS Code:* Open the repository root as a folder. The repository includes `.vscode/settings.json` which disables automatic Gradle import so that the generated Eclipse metadata (`.classpath`, `.project`) is used. Do not use the Gradle for Java extension to import the project.

*Eclipse:* File → Import → General → Existing Projects into Workspace, then select the repository root.

The build uses a custom Eclipse plugin to work around Gradle dependency cycles that confuse IDE metadata generation. You may see Eclipse warnings about `xml-apis` from some test dependencies; those are excluded in the build and can be ignored.

== Getting Support
Check out the https://stackoverflow.com/questions/tagged/spring-security[Spring Security tags on Stack Overflow].
https://spring.io/support[Commercial support] is available too.

== Contributing
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request[Pull requests] are welcome; see the https://github.com/spring-projects/spring-security/blob/main/CONTRIBUTING.adoc[contributor guidelines] for details.

== License
Spring Security is Open Source software released under the
https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].