From f01a13aa52600843df49cfc5837564a1e484f6dd Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 26 Jul 2021 15:48:55 -0500 Subject: [PATCH] Antora mkdir -p docs/modules/ROOT/ mkdir -p docs/modules/ROOT/pages/ git checkout antora-2.x docs/antora.yml git checkout antora-2.x docs/modules/ROOT/nav.adoc mv docs/manual/src/docs/asciidoc/images docs/modules/ROOT/ mv docs/manual/src/docs/asciidoc/_includes/* docs/modules/ROOT/pages/ cp ~/code/rwinch/spring-reference/*antora* ~/code/spring-projects/spring-security/ mv docs/modules/ROOT/pages/about docs/modules/ROOT/pages/overview --- docs/antora.yml | 24 ++ .../guides/spring-security-docs-guides.gradle | 40 --- docs/guides/src/docs/asciidoc/Guardfile | 15 -- .../asciidoc/_form-includes/verify-app.asc | 6 - ...exploring-the-secured-application-boot.asc | 21 -- ...ing-the-secured-application-javaconfig.asc | 19 -- .../exploring-the-secured-application-xml.asc | 19 -- .../secure-the-application-boot.asc | 118 --------- .../secure-the-application-javaconfig.asc | 92 ------- .../secure-the-application-xml.asc | 89 ------- .../_includes/maven-repository-milestone.asc | 14 - .../_includes/maven-repository-release.asc | 1 - .../_includes/maven-repository-snapshot.asc | 14 - .../_includes/setting-up-the-sample-boot.asc | 46 ---- .../_includes/setting-up-the-sample.asc | 48 ---- .../src/docs/asciidoc/form-javaconfig.asc | 249 ------------------ .../src/docs/asciidoc/hellomvc-javaconfig.asc | 127 --------- .../src/docs/asciidoc/helloworld-boot.asc | 97 ------- .../docs/asciidoc/helloworld-javaconfig.asc | 113 -------- .../src/docs/asciidoc/helloworld-xml.asc | 136 ---------- docs/guides/src/docs/asciidoc/index.asc | 17 -- .../manual/spring-security-docs-manual.gradle | 62 ----- docs/manual/src/docs/asciidoc/Guardfile | 12 - .../docs/asciidoc/_includes/about/index.adoc | 17 -- .../src/docs/asciidoc/_includes/content.adoc | 9 - docs/manual/src/docs/asciidoc/css/style.css | 5 - .../src/docs/asciidoc/index-docinfo.xml | 11 - docs/manual/src/docs/asciidoc/index.adoc | 19 -- .../ROOT}/images/Authentication.gif | Bin .../images/access-decision-voting.graffle | Bin .../ROOT}/images/access-decision-voting.png | Bin .../ROOT}/images/after-invocation.graffle | Bin .../ROOT}/images/after-invocation.png | Bin .../ROOT}/images/icons/number_1.png | Bin .../ROOT}/images/icons/number_10.png | Bin .../ROOT}/images/icons/number_2.png | Bin .../ROOT}/images/icons/number_3.png | Bin .../ROOT}/images/icons/number_4.png | Bin .../ROOT}/images/icons/number_5.png | Bin .../ROOT}/images/icons/number_6.png | Bin .../ROOT}/images/icons/number_7.png | Bin .../ROOT}/images/icons/number_8.png | Bin .../ROOT}/images/icons/number_9.png | Bin .../ROOT}/images/icons/numbers.odg | Bin .../asciidoc => modules/ROOT}/images/note.png | Bin .../ROOT}/images/palette.otg | Bin .../ROOT}/images/s2-banner-rhs.png | Bin .../ROOT}/images/s2_box_logo.png | Bin .../images/security-interception.graffle | Bin .../ROOT}/images/security-interception.png | Bin .../architecture/delegatingfilterproxy.odg | Bin .../architecture/delegatingfilterproxy.png | Bin .../exceptiontranslationfilter.odg | Bin .../exceptiontranslationfilter.png | Bin .../servlet/architecture/filterchain.gif | Bin .../servlet/architecture/filterchain.odg | Bin .../servlet/architecture/filterchain.png | Bin .../servlet/architecture/filterchainproxy.odg | Bin .../servlet/architecture/filterchainproxy.png | Bin .../multi-securityfilterchain.odg | Bin .../multi-securityfilterchain.png | Bin .../architecture/securityfilterchain.odg | Bin .../architecture/securityfilterchain.png | Bin ...abstractauthenticationprocessingfilter.odg | Bin ...abstractauthenticationprocessingfilter.png | Bin .../architecture/providermanager-parent.odg | Bin .../architecture/providermanager-parent.png | Bin .../architecture/providermanager.odg | Bin .../architecture/providermanager.png | Bin .../architecture/providermanagers-parent.odg | Bin .../architecture/providermanagers-parent.png | Bin .../architecture/securitycontextholder.odg | Bin .../architecture/securitycontextholder.png | Bin .../unpwd/basicauthenticationentrypoint.odg | Bin .../unpwd/basicauthenticationentrypoint.png | Bin .../unpwd/basicauthenticationfilter.odg | Bin .../unpwd/basicauthenticationfilter.png | Bin .../unpwd/daoauthenticationprovider.odg | Bin .../unpwd/daoauthenticationprovider.png | Bin .../loginurlauthenticationentrypoint.odg | Bin .../loginurlauthenticationentrypoint.png | Bin .../usernamepasswordauthenticationfilter.odg | Bin .../usernamepasswordauthenticationfilter.png | Bin .../filtersecurityinterceptor.odg | Bin .../filtersecurityinterceptor.png | Bin .../oauth2/beareraccessdeniedhandler.odg | Bin .../oauth2/bearerauthenticationentrypoint.odg | Bin .../oauth2/bearerauthenticationentrypoint.png | Bin .../bearertokenauthenticationfilter.odg | Bin .../bearertokenauthenticationfilter.png | Bin .../oauth2/jwtauthenticationprovider.odg | Bin .../oauth2/jwtauthenticationprovider.png | Bin .../opaquetokenauthenticationprovider.odg | Bin .../opaquetokenauthenticationprovider.png | Bin .../saml2/opensamlauthenticationprovider.odg | Bin .../saml2/opensamlauthenticationprovider.png | Bin .../saml2/saml2webssoauthenticationfilter.odg | Bin .../saml2/saml2webssoauthenticationfilter.png | Bin ...saml2webssoauthenticationrequestfilter.odg | Bin ...saml2webssoauthenticationrequestfilter.png | Bin .../asciidoc => modules/ROOT}/images/tip.png | Bin docs/modules/ROOT/nav.adoc | 72 +++++ .../ROOT/pages/overview}/community.adoc | 0 .../features}/authentication/index.adoc | 0 .../authentication/password-storage.adoc | 0 .../features}/authentication/supported.adoc | 0 .../overview/features}/exploits/csrf.adoc | 0 .../overview/features}/exploits/headers.adoc | 0 .../overview/features}/exploits/http.adoc | 0 .../overview/features}/exploits/index.adoc | 0 .../ROOT/pages/overview/features/index.adoc} | 3 - .../overview}/getting-spring-security.adoc | 0 docs/modules/ROOT/pages/overview/index.adoc | 5 + .../ROOT/pages/overview}/modules.adoc | 0 .../ROOT/pages/overview}/prerequisites.adoc | 0 .../ROOT/pages/overview}/samples.adoc | 0 .../ROOT/pages/overview}/whats-new.adoc | 0 .../ROOT/pages}/reactive/cors.adoc | 0 .../ROOT/pages}/reactive/exploits/csrf.adoc | 0 .../pages}/reactive/exploits/headers.adoc | 0 .../ROOT/pages}/reactive/exploits/http.adoc | 0 .../ROOT/pages}/reactive/exploits/index.adoc | 0 .../ROOT/pages}/reactive/index.adoc | 0 .../ROOT/pages}/reactive/logout.adoc | 0 .../ROOT/pages}/reactive/method.adoc | 0 .../pages}/reactive/oauth2/access-token.adoc | 0 .../ROOT/pages}/reactive/oauth2/index.adoc | 0 .../ROOT/pages}/reactive/oauth2/login.adoc | 0 .../reactive/oauth2/resource-server.adoc | 0 .../registered-oauth2-authorized-client.adoc | 0 .../ROOT/pages}/reactive/rsocket.adoc | 0 .../ROOT/pages}/reactive/test.adoc | 0 .../ROOT/pages}/reactive/webclient.adoc | 0 .../ROOT/pages}/reactive/webflux.adoc | 0 .../ROOT/pages}/reactive/x509.adoc | 0 .../servlet/appendix/database-schema.adoc | 0 .../ROOT/pages}/servlet/appendix/faq.adoc | 0 .../ROOT/pages}/servlet/appendix/index.adoc | 0 .../pages}/servlet/appendix/namespace.adoc | 0 .../pages}/servlet/appendix/proxy-server.adoc | 0 .../architecture/delegating-filter-proxy.adoc | 0 .../exception-translation-filter.adoc | 0 .../architecture/filter-chain-proxy.adoc | 0 .../pages}/servlet/architecture/filters.adoc | 0 .../pages}/servlet/architecture/index.adoc | 0 .../architecture/security-filter-chain.adoc | 0 .../architecture/security-filters.adoc | 0 .../servlet/authentication/anonymous.adoc | 0 ...ract-authentication-processing-filter.adoc | 0 .../authentication-entry-point.adoc | 0 .../architecture/authentication-manager.adoc | 0 .../architecture/authentication-provider.adoc | 0 .../architecture/authentication.adoc | 0 .../architecture/granted-authority.adoc | 0 .../authentication/architecture/index.adoc | 0 .../architecture/provider-manager.adoc | 0 .../architecture/security-context-holder.adoc | 0 .../architecture/security-context.adoc | 0 .../pages}/servlet/authentication/cas.adoc | 0 .../pages}/servlet/authentication/events.adoc | 0 .../pages}/servlet/authentication/index.adoc | 0 .../pages}/servlet/authentication/jaas.adoc | 0 .../pages}/servlet/authentication/logout.adoc | 0 .../pages}/servlet/authentication/openid.adoc | 0 .../servlet/authentication/preauth.adoc | 0 .../servlet/authentication/rememberme.adoc | 0 .../pages}/servlet/authentication/runas.adoc | 0 .../authentication/session-management.adoc | 0 .../servlet/authentication/unpwd/basic.adoc | 0 .../unpwd/dao-authentication-provider.adoc | 0 .../servlet/authentication/unpwd/digest.adoc | 0 .../servlet/authentication/unpwd/form.adoc | 0 .../authentication/unpwd/in-memory.adoc | 0 .../servlet/authentication/unpwd/index.adoc | 23 +- .../servlet/authentication/unpwd/jdbc.adoc | 0 .../servlet/authentication/unpwd/ldap.adoc | 0 .../unpwd/password-encoder.adoc | 0 .../unpwd/user-details-service.adoc | 0 .../authentication/unpwd/user-details.adoc | 0 .../pages}/servlet/authentication/x509.adoc | 0 .../pages}/servlet/authorization/acls.adoc | 0 .../servlet/authorization/architecture.adoc | 0 .../authorization/authorize-requests.adoc | 0 .../authorization/expression-based.adoc | 0 .../pages}/servlet/authorization/index.adoc | 0 .../authorization/method-security.adoc | 0 .../servlet/authorization/secure-objects.adoc | 0 .../ROOT/pages}/servlet/crypto/index.adoc | 0 .../ROOT/pages}/servlet/exploits/csrf.adoc | 0 .../pages}/servlet/exploits/firewall.adoc | 0 .../ROOT/pages}/servlet/exploits/headers.adoc | 0 .../ROOT/pages}/servlet/exploits/http.adoc | 0 .../ROOT/pages}/servlet/exploits/index.adoc | 0 .../ROOT/pages}/servlet/hello/index.adoc | 0 .../ROOT/pages}/servlet/index.adoc | 0 .../servlet/integrations/concurrency.adoc | 0 .../pages}/servlet/integrations/cors.adoc | 0 .../pages}/servlet/integrations/data.adoc | 0 .../pages}/servlet/integrations/index.adoc | 0 .../pages}/servlet/integrations/jackson.adoc | 0 .../servlet/integrations/jsp-taglibs.adoc | 0 .../servlet/integrations/localization.adoc | 0 .../ROOT/pages}/servlet/integrations/mvc.adoc | 0 .../servlet/integrations/servlet-api.adoc | 0 .../servlet/integrations/websocket.adoc | 0 .../servlet/java-configuration/index.adoc | 2 +- .../servlet/kotlin-configuration/index.adoc | 0 .../ROOT/pages}/servlet/namespace/index.adoc | 0 .../ROOT/pages}/servlet/oauth2/index.adoc | 0 .../pages}/servlet/oauth2/oauth2-client.adoc | 0 .../pages}/servlet/oauth2/oauth2-login.adoc | 0 .../servlet/oauth2/oauth2-resourceserver.adoc | 0 .../ROOT/pages}/servlet/saml2/index.adoc | 0 .../pages}/servlet/saml2/saml2-login.adoc | 0 .../ROOT/pages}/servlet/test/index.adoc | 0 .../ROOT/pages}/servlet/test/method.adoc | 0 .../ROOT/pages}/servlet/test/mockmvc.adoc | 0 local-antora-playbook.yml | 15 ++ 218 files changed, 119 insertions(+), 1441 deletions(-) create mode 100644 docs/antora.yml delete mode 100644 docs/guides/spring-security-docs-guides.gradle delete mode 100644 docs/guides/src/docs/asciidoc/Guardfile delete mode 100644 docs/guides/src/docs/asciidoc/_form-includes/verify-app.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-boot.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-javaconfig.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-xml.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-boot.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-javaconfig.asc delete mode 100644 docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-xml.asc delete mode 100644 docs/guides/src/docs/asciidoc/_includes/maven-repository-milestone.asc delete mode 100644 docs/guides/src/docs/asciidoc/_includes/maven-repository-release.asc delete mode 100644 docs/guides/src/docs/asciidoc/_includes/maven-repository-snapshot.asc delete mode 100644 docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample-boot.asc delete mode 100644 docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample.asc delete mode 100644 docs/guides/src/docs/asciidoc/form-javaconfig.asc delete mode 100644 docs/guides/src/docs/asciidoc/hellomvc-javaconfig.asc delete mode 100644 docs/guides/src/docs/asciidoc/helloworld-boot.asc delete mode 100644 docs/guides/src/docs/asciidoc/helloworld-javaconfig.asc delete mode 100644 docs/guides/src/docs/asciidoc/helloworld-xml.asc delete mode 100644 docs/guides/src/docs/asciidoc/index.asc delete mode 100644 docs/manual/spring-security-docs-manual.gradle delete mode 100644 docs/manual/src/docs/asciidoc/Guardfile delete mode 100644 docs/manual/src/docs/asciidoc/_includes/about/index.adoc delete mode 100644 docs/manual/src/docs/asciidoc/_includes/content.adoc delete mode 100644 docs/manual/src/docs/asciidoc/css/style.css delete mode 100644 docs/manual/src/docs/asciidoc/index-docinfo.xml delete mode 100644 docs/manual/src/docs/asciidoc/index.adoc rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/Authentication.gif (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/access-decision-voting.graffle (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/access-decision-voting.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/after-invocation.graffle (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/after-invocation.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_1.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_10.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_2.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_3.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_4.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_5.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_6.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_7.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_8.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/number_9.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/icons/numbers.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/note.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/palette.otg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/s2-banner-rhs.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/s2_box_logo.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/security-interception.graffle (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/security-interception.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/delegatingfilterproxy.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/delegatingfilterproxy.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/exceptiontranslationfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/exceptiontranslationfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/filterchain.gif (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/filterchain.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/filterchain.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/filterchainproxy.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/filterchainproxy.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/multi-securityfilterchain.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/multi-securityfilterchain.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/securityfilterchain.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/architecture/securityfilterchain.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanager-parent.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanager-parent.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanager.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanager.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanagers-parent.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/providermanagers-parent.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/securitycontextholder.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/architecture/securitycontextholder.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/basicauthenticationentrypoint.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/basicauthenticationentrypoint.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/basicauthenticationfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/basicauthenticationfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/daoauthenticationprovider.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/daoauthenticationprovider.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authorization/filtersecurityinterceptor.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/authorization/filtersecurityinterceptor.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/beareraccessdeniedhandler.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/bearerauthenticationentrypoint.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/bearerauthenticationentrypoint.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/bearertokenauthenticationfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/bearertokenauthenticationfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/jwtauthenticationprovider.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/jwtauthenticationprovider.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/opaquetokenauthenticationprovider.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/oauth2/opaquetokenauthenticationprovider.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/opensamlauthenticationprovider.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/opensamlauthenticationprovider.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/saml2webssoauthenticationfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/saml2webssoauthenticationfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/saml2webssoauthenticationrequestfilter.odg (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/servlet/saml2/saml2webssoauthenticationrequestfilter.png (100%) rename docs/{manual/src/docs/asciidoc => modules/ROOT}/images/tip.png (100%) create mode 100644 docs/modules/ROOT/nav.adoc rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/community.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/authentication/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/authentication/password-storage.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/authentication/supported.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/exploits/csrf.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/exploits/headers.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/exploits/http.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview/features}/exploits/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about/features.adoc => modules/ROOT/pages/overview/features/index.adoc} (72%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/getting-spring-security.adoc (100%) create mode 100644 docs/modules/ROOT/pages/overview/index.adoc rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/modules.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/prerequisites.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/samples.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes/about => modules/ROOT/pages/overview}/whats-new.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/cors.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/exploits/csrf.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/exploits/headers.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/exploits/http.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/exploits/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/logout.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/method.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/oauth2/access-token.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/oauth2/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/oauth2/login.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/oauth2/resource-server.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/registered-oauth2-authorized-client.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/rsocket.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/test.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/webclient.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/webflux.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/reactive/x509.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/appendix/database-schema.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/appendix/faq.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/appendix/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/appendix/namespace.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/appendix/proxy-server.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/delegating-filter-proxy.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/exception-translation-filter.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/filter-chain-proxy.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/filters.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/security-filter-chain.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/architecture/security-filters.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/anonymous.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/abstract-authentication-processing-filter.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/authentication-entry-point.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/authentication-manager.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/authentication-provider.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/authentication.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/granted-authority.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/provider-manager.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/security-context-holder.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/architecture/security-context.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/cas.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/events.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/jaas.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/logout.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/openid.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/preauth.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/rememberme.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/runas.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/session-management.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/basic.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/dao-authentication-provider.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/digest.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/form.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/in-memory.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/index.adoc (69%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/jdbc.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/ldap.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/password-encoder.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/user-details-service.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/unpwd/user-details.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authentication/x509.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/acls.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/architecture.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/authorize-requests.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/expression-based.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/method-security.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/authorization/secure-objects.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/crypto/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/exploits/csrf.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/exploits/firewall.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/exploits/headers.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/exploits/http.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/exploits/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/hello/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/concurrency.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/cors.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/data.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/jackson.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/jsp-taglibs.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/localization.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/mvc.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/servlet-api.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/integrations/websocket.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/java-configuration/index.adoc (98%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/kotlin-configuration/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/namespace/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/oauth2/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/oauth2/oauth2-client.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/oauth2/oauth2-login.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/oauth2/oauth2-resourceserver.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/saml2/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/saml2/saml2-login.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/test/index.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/test/method.adoc (100%) rename docs/{manual/src/docs/asciidoc/_includes => modules/ROOT/pages}/servlet/test/mockmvc.adoc (100%) create mode 100644 local-antora-playbook.yml diff --git a/docs/antora.yml b/docs/antora.yml new file mode 100644 index 0000000000..4bb53235cd --- /dev/null +++ b/docs/antora.yml @@ -0,0 +1,24 @@ +name: security +title: Spring Security +version: 5.6 +start_page: ROOT:overview/index.adoc +asciidoc: + attributes: + page-pagination: true + idprefix: '' + idseparator: '-' + apacheds-core-version: 1.5.5 + figures: servlet/architecture + gh-old-samples-url: https://github.com/spring-projects/spring-security/tree/5.4.x/samples + gh-samples-url: https://github.com/spring-projects/spring-security-samples/tree/main + gh-url: https://github.com/spring-projects/spring-security/tree/main + icondir: icons + security-api-url: https://docs.spring.io/spring-security/site/docs/current/api/ + security-reference-url: https://docs.spring.io/spring-security/site/docs/reference/html5/ + spring-core-version: 5.3.8 + spring-framework-api-url: https://docs.spring.io/spring-framework/docs/current/javadoc-api/ + spring-framework-reference-url: https://docs.spring.io/spring-framework/docs/current/reference/html/ + spring-security-version: 5.6.0 + unboundid-ldapsdk-version: 4.1 +nav: +- modules/ROOT/nav.adoc diff --git a/docs/guides/spring-security-docs-guides.gradle b/docs/guides/spring-security-docs-guides.gradle deleted file mode 100644 index bce20f0081..0000000000 --- a/docs/guides/spring-security-docs-guides.gradle +++ /dev/null @@ -1,40 +0,0 @@ -apply plugin: 'org.asciidoctor.jvm.convert' -apply plugin: 'io.spring.convention.repository' - -asciidoctor { - baseDir = file('src/docs/asciidoc') - options eruby: 'erubis' - - def ghSamplesUrl = "https://github.com/spring-projects/spring-security-samples/tree/$samplesBranch" - attributes copycss : '', - icons : 'font', - 'source-highlighter': 'prettify', - sectanchors : '', - toc: '', - 'toc-placement' : 'preamble', - idprefix: '', - idseparator: '-', - doctype: 'book', - 'spring-security-version' : project.version, - 'include-maven-repository' : getMavenRepositoryInclude(), - revnumber : project.version, - 'gh-samples-url': ghSamplesUrl, - 'gh-old-samples-url': "https://github.com/spring-projects/spring-security/tree/5.4.x/samples" -} - -ext.spec = copySpec { - into ('guides') { - from(asciidoctor.outputDir) - exclude 'build', 'Guardfile' - } -} - -def getMavenRepositoryInclude() { - if(snapshotBuild) { - return "_includes/maven-repository-snapshot.asc" - } else if(releaseBuild) { - return "_includes/maven-repository-release.asc" - } else { - return "_includes/maven-repository-milestone.asc" - } -} diff --git a/docs/guides/src/docs/asciidoc/Guardfile b/docs/guides/src/docs/asciidoc/Guardfile deleted file mode 100644 index 1075c0114c..0000000000 --- a/docs/guides/src/docs/asciidoc/Guardfile +++ /dev/null @@ -1,15 +0,0 @@ -require 'asciidoctor' -require 'erb' - -guard 'shell' do - watch(/^.*\.asc$/) {|m| - Asciidoctor.render_file(m[0], :to_dir => "build/", :safe => Asciidoctor::SafeMode::UNSAFE, :attributes=> {'toc' => '', 'idprefix' => '', 'idseparator' => '-', 'copycss' => '', 'icons' => 'font', 'source-highlighter' => 'prettify', 'sectanchors' => '', 'toc-placement' => 'preamble', 'revnumber' => '3.2.0.CI-SNAPSHOT', - 'spring-security-version' => '3.2.0.CI-SNAPSHOT', - 'download-url' => 'https://github.com/spring-projects/spring-security/archive/main.zip', - 'include-maven-repository' => '_includes/maven-repository-snapshot.asc' }) - } -end - -guard 'livereload' do - watch(%r{build/.+\.(css|js|html)$}) -end diff --git a/docs/guides/src/docs/asciidoc/_form-includes/verify-app.asc b/docs/guides/src/docs/asciidoc/_form-includes/verify-app.asc deleted file mode 100644 index c8127c2c7a..0000000000 --- a/docs/guides/src/docs/asciidoc/_form-includes/verify-app.asc +++ /dev/null @@ -1,6 +0,0 @@ -Verify the application is working: - -* Navigate to http://localhost:8080/sample/ You should see a login form -* Enter the *username* _user_, the *password* _password_, and click the *Login* button. You should now see the main application. -* Try clicking on the Compose link and creating a message. The message details should be displayed. -* Now click on the Inbox link and see the message listed. You can click on the summary link to see the details displayed again. diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-boot.asc b/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-boot.asc deleted file mode 100644 index b786261c20..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-boot.asc +++ /dev/null @@ -1,21 +0,0 @@ -=== Exploring the secured application - -Start the application as we did in <> - -Navigate to http://localhost:8080/ and click on the *_secured pages_* link and you will be prompted to login. - -==== Authenticating to the secured application - -Try entering an invalid username and password: - -* *Username* _invalid_ -* *Password* _invalid_ - -You should see an error message stating that authentication failed. Now try entering a valid username and password: - -* *Username* _user_ -* *Password* _password_ - -You should now see the page that we wanted to secure. - -NOTE: The reason we can successfully authenticate with *Username* _user_ and *Password* _password_ is because that is what we configured in our <>. diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-javaconfig.asc b/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-javaconfig.asc deleted file mode 100644 index fbdaf4b272..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-javaconfig.asc +++ /dev/null @@ -1,19 +0,0 @@ -=== Exploring the secured application - -Start the server as we did in <> Now when you visit http://localhost:8080/sample/ you will be prompted with a login page that is automatically generated by Spring Security. - -==== Authenticating to the secured application - -Try entering an invalid username and password: - -* *Username* _invalid_ -* *Password* _invalid_ - -You should see an error message stating that authentication failed. Now try entering a valid username and password: - -* *Username* _user_ -* *Password* _password_ - -You should now see the page that we wanted to secure. - -NOTE: The reason we can successfully authenticate with *Username* _user_ and *Password* _password_ is because that is what we configured in our <>. diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-xml.asc b/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-xml.asc deleted file mode 100644 index b8c6d971fe..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/exploring-the-secured-application-xml.asc +++ /dev/null @@ -1,19 +0,0 @@ -=== Exploring the secured application - -Start the server as we did in <> Now when you visit http://localhost:8080/sample/ you will be prompted with a login page that is automatically generated by Spring Security. - -==== Authenticating to the secured application - -Try entering an invalid username and password: - -* *Username* _invalid_ -* *Password* _invalid_ - -You should see an error message stating that authentication failed. Now try entering a valid username and password: - -* *Username* _user_ -* *Password* _password_ - -You should now see the page that we wanted to secure. - -NOTE: The reason we can successfully authenticate with *Username* _user_ and *Password* _password_ is because that is what we configured in our <>. diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-boot.asc b/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-boot.asc deleted file mode 100644 index 5d2c63dcbe..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-boot.asc +++ /dev/null @@ -1,118 +0,0 @@ -== Securing the application - -Before securing the application, it is important to ensure that the existing application works as we did in <>. Now that the application runs without security, we are ready to add security to our application. This section demonstrates the minimal steps to add Spring Security to our application. - -=== Updating your dependencies - -include::../{include-maven-repository}[] - -In order to use Spring Security you must add the necessary dependencies. For the sample we will add the following Spring Security dependencies: - -.pom.xml -[source,xml] -[subs="verbatim,attributes"] ----- - - - - org.springframework.security - spring-security-web - {spring-security-version} - - - org.springframework.security - spring-security-config - {spring-security-version} - - - org.thymeleaf.extras - thymeleaf-extras-springsecurity5 <1> - 2.1.2.RELEASE - - ----- - -<1> We are using https://www.thymeleaf.org/[Thymeleaf] for our view template engine -and need to add an additional dependency for the https://github.com/thymeleaf/thymeleaf-extras-springsecurity[Thymeleaf - Spring Security integration module]. - -After you have completed this, you need to ensure that STS knows about the updated dependencies by: - -* Right click on the _spring-security-samples-{starter-config-type}-{starter-appname}_ application -* Select *Maven->Update project...* -* Ensure the project is selected, and click *OK* - -=== Creating your Spring Security configuration - -The next step is to create a Spring Security configuration. - -* Right click the _spring-security-samples-{starter-config-type}-{starter-appname}_ project in the Package Explorer view -* Select *New->Class* -* Enter _org.springframework.security.samples.config_ for the *Package* -* Enter _SecurityConfig_ for the *Name* -* Click *Finish* -* Replace the file with the following contents: - -[[security-config-java]] -.src/main/java/org/springframework/security/samples/config/SecurityConfig.java -[source,java] ----- -package org.springframework.security.samples.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .antMatchers("/css/**", "/index").permitAll() <1> - .antMatchers("/user/**").hasRole("USER") <2> - .and() - .formLogin() - .loginPage("/login").failureUrl("/login-error"); <3> - } - - @Autowired - public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth - .inMemoryAuthentication() - .withUser("user").password("password").roles("USER"); - } -} ----- - -<1> requests matched against _/css/**_ and _/index_ are fully accessible -<2> requests matched against _/user/**_ require a user to be authenticated and must be associated to the _USER_ role -<3> form-based authentication is enabled with a custom login page and failure url - - -NOTE: The name of the configureGlobal method is not important. However, it is important to only configure AuthenticationManagerBuilder in a class annotated with either `@EnableWebSecurity`, `@EnableGlobalMethodSecurity`, or `@EnableGlobalAuthentication`. Doing otherwise has unpredictable results. - -[[servlet-api-integration]] -The <> will: - -* Require authentication to requests matched against _/user/**_ -* Specifies the URL to send users to for form-based login -* Allow the user with the *Username* _user_ and the *Password* _password_ to authenticate with form based authentication -* Allow the user to logout -* https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attack] prevention -* https://en.wikipedia.org/wiki/Session_fixation[Session Fixation] protection -* Security Header integration -** https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security[HTTP Strict Transport Security] for secure requests -** https://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx[X-Content-Type-Options] integration -** Cache Control (can be overridden later by your application to allow caching of your static resources) -** https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx[X-XSS-Protection] integration -** X-Frame-Options integration to help prevent https://en.wikipedia.org/wiki/Clickjacking[Clickjacking] -* Integrate with the following Servlet API methods -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRemoteUser()[HttpServletRequest#getRemoteUser()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()[HttpServletRequest.html#getUserPrincipal()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#isUserInRole(java.lang.String)[HttpServletRequest.html#isUserInRole(java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#login(java.lang.String,%20java.lang.String)[HttpServletRequest.html#login(java.lang.String, java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#logout()[HttpServletRequest.html#logout()] - diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-javaconfig.asc b/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-javaconfig.asc deleted file mode 100644 index 7dc183a393..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-javaconfig.asc +++ /dev/null @@ -1,92 +0,0 @@ -== Securing the application - -Before securing your application, it is important to ensure that the existing application works as we did in <>. Now that the application runs without security, we are ready to add security to our application. This section demonstrates the minimal steps to add Spring Security to our application. - -=== Updating your dependencies - -include::../{include-maven-repository}[] - -In order to use Spring Security you must add the necessary dependencies. For the sample we will add the following Spring Security dependencies: - -.pom.xml -[source,xml] -[subs="verbatim,attributes"] ----- - - - - org.springframework.security - spring-security-web - {spring-security-version} - - - org.springframework.security - spring-security-config - {spring-security-version} - - ----- - -After you have completed this, you need to ensure that STS knows about the updated dependencies by: - -* Right click on the _spring-security-samples-{starter-config-type}-{starter-appname}_ application -* Select *Maven->Update project...* -* Ensure the project is selected, and click *OK* - -=== Creating your Spring Security configuration - -The next step is to create a Spring Security configuration. - -* Right click the _spring-security-samples-{starter-config-type}-{starter-appname}_ project in the Package Explorer view -* Select *New->Class* -* Enter _org.springframework.security.samples.config_ for the *Package* -* Enter _SecurityConfig_ for the *Name* -* Click *Finish* -* Replace the file with the following contents: - -[[security-config-java]] -.src/main/java/org/springframework/security/samples/config/SecurityConfig.java -[source,java] ----- -package org.springframework.security.samples.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.web.configuration.*; - -@EnableWebSecurity -public class SecurityConfig { - - @Autowired - public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth - .inMemoryAuthentication() - .withUser("user").password("password").roles("USER"); - } -} ----- - -NOTE: The name of the configureGlobal method is not important. However, it is important to only configure AuthenticationManagerBuilder in a class annotated with either `@EnableWebSecurity`, `@EnableGlobalMethodSecurity`, or `@EnableGlobalAuthentication`. Doing otherwise has unpredictable results. - -[[servlet-api-integration]] -The <> will: - -* Require authentication to every URL in your application -* Generate a login form for you -* Allow the user with the *Username* _user_ and the *Password* _password_ to authenticate with form based authentication -* Allow the user to logout -* https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attack] prevention -* https://en.wikipedia.org/wiki/Session_fixation[Session Fixation] protection -* Security Header integration -** https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security[HTTP Strict Transport Security] for secure requests -** https://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx[X-Content-Type-Options] integration -** Cache Control (can be overridden later by your application to allow caching of your static resources) -** https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx[X-XSS-Protection] integration -** X-Frame-Options integration to help prevent https://en.wikipedia.org/wiki/Clickjacking[Clickjacking] -* Integrate with the following Servlet API methods -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRemoteUser()[HttpServletRequest#getRemoteUser()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()[HttpServletRequest.html#getUserPrincipal()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#isUserInRole(java.lang.String)[HttpServletRequest.html#isUserInRole(java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#login(java.lang.String,%20java.lang.String)[HttpServletRequest.html#login(java.lang.String, java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#logout()[HttpServletRequest.html#logout()] - diff --git a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-xml.asc b/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-xml.asc deleted file mode 100644 index 0d47daf040..0000000000 --- a/docs/guides/src/docs/asciidoc/_hello-includes/secure-the-application-xml.asc +++ /dev/null @@ -1,89 +0,0 @@ -== Securing the application - -Before securing your application, it is important to ensure that the existing application works as we did in <>. Now that the application runs without security, we are ready to add security to our application. This section demonstrates the minimal steps to add Spring Security to our application. - -=== Updating your dependencies - -include::../{include-maven-repository}[] - -In order to use Spring Security you must add the necessary dependencies. For the sample we will add the following Spring Security dependencies: - -.pom.xml -[source,xml] -[subs="verbatim,attributes"] ----- - - - - org.springframework.security - spring-security-web - {spring-security-version} - - - org.springframework.security - spring-security-config - {spring-security-version} - - ----- - -After you have completed this, you need to ensure that STS knows about the updated dependencies by: - -* Right click on the _spring-security-samples-{starter-config-type}-{starter-appname}_ application -* Select *Maven->Update project...* -* Ensure the project is selected, and click *OK* - -=== Creating your Spring Security configuration - -The next step is to create a Spring Security configuration. - -* In the Package Explorer view, right click on the folder _src/main/webapp_ -* Select *New->Folder* -* Enter _WEB-INF/spring_ for the *Folder name* -* Then right click on the new folder _WEB-INF/spring_ -* Select *New->File* -* Enter _security.xml_ for the *File name* -* Click *Finish* -* Replace the contents of the file with the following: - -[[security-config-xml]] -.src/main/webapp/WEB-INF/spring/security.xml -[source,xml] ----- - - - - - - - - - ----- - -[[servlet-api-integration]] -The <> will: - -* Require authentication to every URL in your application -* Generate a login form for you -* Allow the user with the *Username* _user_ and the *Password* _password_ to authenticate with form based authentication -* Allow the user to logout -* https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attack] prevention -* https://en.wikipedia.org/wiki/Session_fixation[Session Fixation] protection -* Security Header integration -** https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security[HTTP Strict Transport Security] for secure requests -** https://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx[X-Content-Type-Options] integration -** Cache Control (can be overridden later by your application to allow caching of your static resources) -** https://msdn.microsoft.com/en-us/library/dd565647(v=vs.85).aspx[X-XSS-Protection] integration -** X-Frame-Options integration to help prevent https://en.wikipedia.org/wiki/Clickjacking[Clickjacking] -* Integrate with the following Servlet API methods -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRemoteUser()[HttpServletRequest#getRemoteUser()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()[HttpServletRequest.html#getUserPrincipal()] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#isUserInRole(java.lang.String)[HttpServletRequest.html#isUserInRole(java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#login(java.lang.String,%20java.lang.String)[HttpServletRequest.html#login(java.lang.String, java.lang.String)] -** https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#logout()[HttpServletRequest.html#logout()] - diff --git a/docs/guides/src/docs/asciidoc/_includes/maven-repository-milestone.asc b/docs/guides/src/docs/asciidoc/_includes/maven-repository-milestone.asc deleted file mode 100644 index 9414018722..0000000000 --- a/docs/guides/src/docs/asciidoc/_includes/maven-repository-milestone.asc +++ /dev/null @@ -1,14 +0,0 @@ -In order to resolve Spring Security milestones and release candidates add the Spring Milestone repository. For our example, the repository has already been added for you. In the event you were working on another application, you would need to ensure you add the following to your pom: - -.pom.xml -[source,xml] ----- - - - - spring-milestone - Spring Milestone Repository - https://repo.spring.io/milestone - - ----- \ No newline at end of file diff --git a/docs/guides/src/docs/asciidoc/_includes/maven-repository-release.asc b/docs/guides/src/docs/asciidoc/_includes/maven-repository-release.asc deleted file mode 100644 index a61938c847..0000000000 --- a/docs/guides/src/docs/asciidoc/_includes/maven-repository-release.asc +++ /dev/null @@ -1 +0,0 @@ -Spring Security GA releases are included within Maven Central, so no additional Maven repositories are necessary. \ No newline at end of file diff --git a/docs/guides/src/docs/asciidoc/_includes/maven-repository-snapshot.asc b/docs/guides/src/docs/asciidoc/_includes/maven-repository-snapshot.asc deleted file mode 100644 index 8a1c04f964..0000000000 --- a/docs/guides/src/docs/asciidoc/_includes/maven-repository-snapshot.asc +++ /dev/null @@ -1,14 +0,0 @@ -In order to resolve Spring Security SNAPSHOT dependencies add the Spring Snapshot repository. For our example, the repository has already been added for you. In the event you were working on another application, you would need to ensure you add the following to your pom: - -.pom.xml -[source,xml] ----- - - - - spring-snapshot - Spring Snapshot Repository - https://repo.spring.io/snapshot - - ----- \ No newline at end of file diff --git a/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample-boot.asc b/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample-boot.asc deleted file mode 100644 index d73db251f2..0000000000 --- a/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample-boot.asc +++ /dev/null @@ -1,46 +0,0 @@ -//// - -Variables: - -starter-appname: the name of the module users should start with to complete the exercise -starter-config-type: the type of configuration the starter sample uses: javaconfig, xml, boot -completed-appname: the name of the module that contains the completed application -completed-config-type: the type of configuration the completed sample uses: javaconfig, xml, boot -download-url: the URL to download the Spring Security distribution - -//// - -== Setting up the sample - -This section outlines how to setup a workspace within https://spring.io/tools[Eclipse IDE with Spring Tools] so that you can follow along with this guide. The next section outlines generic steps for how to apply Spring Security to your existing application. While you could simply apply the steps to your existing application, we encourage you to follow along with this guide in order to reduce the complexity. - -=== Obtaining the sample project - -Clone the {gh-samples-url}[Spring Security Samples project] to a known location and remember it as _SPRING_SECURITY_HOME_. -[NOTE] -==== -These samples are being migrated to a separate project, however, you can still find -the not migrated samples in an older branch of the {gh-old-samples-url}[Spring Security repository]. -==== - -=== Import the {starter-appname} sample application - -In order to follow along, we encourage you to import the {starter-appname} sample application into your IDE. You may use any IDE you prefer, but the instructions in this guide will assume you are using Spring Tool Suite (STS). - -TIP: The completed sample application can be found at _SPRING_SECURITY_HOME_/samples/{completed-config-type}/{completed-appname} - -* If you do not have STS installed, download STS from https://spring.io/tools -* Start STS and import the sample application into STS using the following steps: -** *File->Import* -** *Existing Maven Projects* -** Click *Next >* -** Click *Browse...* -** Navigate to the samples (i.e. _SPRING_SECURITY_HOME_/samples/{starter-config-type}/{starter-appname}) and click *OK* -** Click *Finish* - -=== Running the {starter-appname} application - -In the following exercise we will be modifying the _spring-security-samples-{starter-config-type}-{starter-appname}_ application. Before we make any changes, it is best to verify that the sample works properly. Perform the following steps to ensure that _spring-security-samples-{starter-config-type}-{starter-appname}_ works. - -* Right click on the _spring-security-samples-{starter-config-type}-{starter-appname}_ application -* Select *Run As->Spring Boot App* diff --git a/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample.asc b/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample.asc deleted file mode 100644 index c0586953f2..0000000000 --- a/docs/guides/src/docs/asciidoc/_includes/setting-up-the-sample.asc +++ /dev/null @@ -1,48 +0,0 @@ -//// - -Variables: - -starter-appname: the name of the module users should start with to complete the exercise -starter-config-type: the type of configuration the starter sample uses: javaconfig, xml, boot -completed-appname: the name of the module that contains the completed application -completed-config-type: the type of configuration the completed sample uses: javaconfig, xml, boot -download-url: the URL to download the Spring Security distribution - -//// - -== Setting up the sample - -This section outlines how to setup a workspace within https://spring.io/tools[Eclipse IDE with Spring Tools] so that you can follow along with this guide. The next section outlines generic steps for how to apply Spring Security to your existing application. While you could simply apply the steps to your existing application, we encourage you to follow along with this guide in order to reduce the complexity. - -=== Obtaining the sample project - -Clone the {gh-samples-url}[Spring Security Samples project] to a known location and remember it as _SPRING_SECURITY_HOME_. -[NOTE] -==== -These samples are being migrated to a separate project, however, you can still find -the not migrated samples in an older branch of the {gh-old-samples-url}[Spring Security repository]. -==== - -=== Import the {starter-appname} sample application - -In order to follow along, we encourage you to import the {starter-appname} sample application into your IDE. You may use any IDE you prefer, but the instructions in this guide will assume you are using Spring Tool Suite (STS). - -TIP: The completed sample application can be found at _SPRING_SECURITY_HOME_/samples/{completed-config-type}/{completed-appname} - -* If you do not have STS installed, download STS from https://spring.io/tools -* Start STS and import the sample application into STS using the following steps: -** *File->Import* -** *Existing Maven Projects* -** Click *Next >* -** Click *Browse...* -** Navigate to the samples (i.e. _SPRING_SECURITY_HOME_/samples/{starter-config-type}/{starter-appname}) and click *OK* -** Click *Finish* - -=== Running the {starter-appname} application - -In the following exercise we will be modifying the _spring-security-samples-{starter-config-type}-{starter-appname}_ application. Before we make any changes, it is best to verify that the sample works properly. Perform the following steps to ensure that _spring-security-samples-{starter-config-type}-{starter-appname}_ works. - -* Right click on the _spring-security-samples-{starter-config-type}-{starter-appname}_ application -* Select *Run As->Run on Server* -* Select the latest tc Server -* Click *Finish* diff --git a/docs/guides/src/docs/asciidoc/form-javaconfig.asc b/docs/guides/src/docs/asciidoc/form-javaconfig.asc deleted file mode 100644 index c8281e9b86..0000000000 --- a/docs/guides/src/docs/asciidoc/form-javaconfig.asc +++ /dev/null @@ -1,249 +0,0 @@ -= Creating a Custom Login Form -:author: Rob Winch -:starter-appname: hellomvc -:starter-config-type: javaconfig -:completed-appname: form -:completed-config-type: javaconfig -:include-dir: _includes - -This guide builds off of link:hellomvc-javaconfig.html[Hello Spring MVC Security Java Config] to explain how to configure and use a custom login form with Spring Security Java Configuration. - -include::{include-dir}/setting-up-the-sample.asc[] - -Verify the application is working: - -* A page displaying a user's inbox can be seen at http://localhost:8080/sample/ after authenticating with the *username* _user_ and the *password* _password_. -* Try clicking on the Compose link and creating a message. The message details should be displayed. -* Now click on the Inbox link and see the message listed. You can click on the summary link to see the details displayed again. - - -= Overriding the default configure(HttpSecurity) method - -As we saw in link:hellomvc-javaconfig.html[Hello Spring MVC Security Java Config], Spring Security's `WebSecurityConfigurerAdapter` provides some convenient defaults to get our application -up and running quickly. However, our login form does not look like the rest of our application. Let's see how we can update our configuration to use a custom form. - -== Default configure(HttpSecurity) - -The default configuration for the configure(HttpSecurity) method can be seen below: - -[source,java] ----- -protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .anyRequest().authenticated() <1> - .and() - .formLogin() <2> - .and() - .httpBasic(); <3> -} ----- - -The configuration ensures that: - -<1> every request requires the user to be authenticated -<2> form based authentication is supported -<3> HTTP Basic Authentication is supported - -== Configuring a custom login page - -We will want to ensure we compensate for overriding these defaults in our updates. Open up the `SecurityConfig` and insert the configure method as shown below: - -.src/main/java/org/springframework/security/samples/config/SecurityConfig.java -[source,java] ----- -// ... - -import org.springframework.security.config.annotation.web.builders.HttpSecurity; - -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .anyRequest().authenticated() - .and() - .formLogin() - .loginPage("/login"); - } - - // ... -} ----- - -The line `loginPage("/login")` instructs Spring Security - -* when authentication is required, redirect the browser to */login* -* we are in charge of rendering the login page when */login* is requested -* when authentication attempt fails, redirect the browser to */login?error* (since we have not specified otherwise) -* we are in charge of rendering a failure page when */login?error* is requested -* when we successfully logout, redirect the browser to */login?logout* (since we have not specified otherwise) -* we are in charge of rendering a logout confirmation page when */login?logout* is requested - -Go ahead and start up the server and try visiting http://localhost:8080/sample/ to see the updates to our configuration. In many browsers you will see an error similar to *This webpage has a redirect loop*. What is happening? - -== Granting access to unauthenticated users - -The issue is that Spring Security is protecting access to our custom login page. In particular the following is happening: - -* We make a request to our web application -* Spring Security sees that we are not authenticated -* We are redirected to */login* -* The browser requests */login* -* Spring Security sees that we are not authenticated -* We are redirected to */login* ... - -To fix this we need to instruct Spring Security to allow anyone to access the */login* URL. We can easily do this with the following updates: - -.src/main/java/org/springframework/security/samples/config/SecurityConfig.java -[source,java] ----- -// ... - -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .anyRequest().authenticated() - .and() - .formLogin() - .loginPage("/login") - .permitAll(); - } - - // ... -} ----- - -The method `formLogin().permitAll()` statement instructs Spring Security to allow any access to any URL (i.e. */login* and */login?error*) associated to `formLogin()`. - -NOTE: Granting access to the `formLogin()` URLs is not done by default since Spring Security needs to make certain assumptions about what is allowed and what is not. To be secure, it is best to ensure granting access to resources is explicit. - -Start up the server and try visiting http://localhost:8080/sample/ to see the updates to our configuration. You should now get a 500 error stating **Error resolving template "login"**. - -= Creating a login page - -Within Spring Web MVC there are two steps to creating our login page: - -* Creating a controller -* Creating a view - -== Configuring a login view controller - -Within Spring Web MVC, the first step is to ensure that we have a controller that can point to our view. Since our project adds the *javaconfig/messages* project as a dependency and it contains a view controller for */login* we do not need to create a controller within our application. For reference, you can see the configuration below: - -[source,java] ----- -// ... - -@EnableWebMvc -@ComponentScan("org.springframework.security.samples.mvc") -public class WebMvcConfiguration implements WebMvcConfigurer { - - // ... - - @Override - public void addViewControllers(ViewControllerRegistry registry) { - registry.addViewController("/login").setViewName("login"); - registry.setOrder(Ordered.HIGHEST_PRECEDENCE); - } -} ----- - -== Creating a login view - -Our existing configuration means that all we need to do is create a *login.html* file with the following contents: - -.src/main/resources/views/login.html -[source,xml] ----- - - - Please Login - - -
-
<1> -
- Please Login -
<2> - Invalid username and password. -
-
<3> - You have been logged out. -
- - <4> - - <5> -
- -
-
-
-
- - ----- - -<1> The URL we submit our username and password to is the same URL as our login form (i.e. */login*), but a *POST* instead of a *GET*. -<2> When authentication fails, the browser is redirected to */login?error* so we can display an error message by detecting if the parameter *error* is non-null. -<3> When we are successfully logged out, the browser is redirected to */login?logout* so we can display an logout success message by detecting if the parameter *logout* is non-null. -<4> The username should be present on the HTTP parameter username -<5> The password should be present on the HTTP parameter password - -IMPORTANT: Do not display details about why authentication failed. For example, we do not want to display that the user does not exist as this will tell an attacker that they should try a different username. - -TIP: We use Thymeleaf to automatically add the CSRF token to our form. If we were not using Thymeleaf or Spring MVCs taglib we could also manually add the CSRF token using ``. - -Start up the server and try visiting http://localhost:8080/sample/ to see the updates to our configuration. We now see our login page, but it does not look very pretty. The issue is that we have not granted access to the css files. - -== Grant access to remaining resources - -We need to update our configuration to allow anyone to access our resources and our logout pages. Update the configuration as shown below: - -.src/main/java/org/springframework/security/samples/config/SecurityConfig.java -[source,java] ----- -// ... - -@EnableWebSecurity -public class SecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .antMatchers("/resources/**").permitAll() <1> - .anyRequest().authenticated() - .and() - .formLogin() - .loginPage("/login") - .permitAll() - .and() - .logout() <2> - .permitAll(); - } - - // ... -} ----- - -<1> This allows anyone to access a URL that begins with */resources/*. Since this is where our css, javascript, and images are stored all our static resources are viewable by anyone. -<2> As you might expect, `logout().permitAll()` allows any user to request logout and view logout success URL. - - -Restart the server and try visiting http://localhost:8080/sample/ to see the updates to our configuration. We now see a custom login page that looks like the rest of our application. - -* Try entering an invalid username and password. You will see our error message is displayed. -* Try entering a valid username (user) and password (password). You will be authenticated successfully. -* Try clicking the Log Out button. You will see our logout success message - -== Conclusion - -You should now know how to add a custom login form using Spring Security's Java Configuration. To learn more refer to the link:index.html[Spring Security Guides index page]. diff --git a/docs/guides/src/docs/asciidoc/hellomvc-javaconfig.asc b/docs/guides/src/docs/asciidoc/hellomvc-javaconfig.asc deleted file mode 100644 index c913e2c4ad..0000000000 --- a/docs/guides/src/docs/asciidoc/hellomvc-javaconfig.asc +++ /dev/null @@ -1,127 +0,0 @@ -= Hello Spring MVC Security Java Config -:author: Rob Winch -:starter-appname: insecuremvc -:starter-config-type: xml -:completed-appname: hellomvc -:completed-config-type: javaconfig -:include-dir: _includes -:hello-include-dir: _hello-includes - -This guide provides instructions on how to add Spring Security to an existing Spring MVC application without the use of XML. - -include::{include-dir}/setting-up-the-sample.asc[] - -Verify the application is working: - -* A page displaying a user's inbox can be seen at http://localhost:8080/sample/ -* Try clicking on the Compose link and creating a message. The message details should be displayed. -* Now click on the Inbox link and see the message listed. You can click on the summary link to see the details displayed again. - - -include::{hello-include-dir}/secure-the-application-javaconfig.asc[] - -=== Registering Spring Security with the war - -We have created the Spring Security configuration, but we still need to register it with the war. This can be done using the following steps: - -* Right click the _spring-security-samples-{starter-config-type}-{starter-appname}_ project the Package Explorer view -* Select *New->Class* -* Enter _org.springframework.security.samples.config_ for the *Package* -* Enter MessageSecurityWebApplicationInitializer for the *Name* -* Click *Finish* -* Replace the file with the following contents: - -.src/main/java/org/springframework/security/samples/config/MessageSecurityWebApplicationInitializer.java -[source,java] ----- -package org.springframework.security.samples.config; - -import org.springframework.security.web.context.*; - -public class MessageSecurityWebApplicationInitializer - extends AbstractSecurityWebApplicationInitializer { -} ----- - -The `MessageSecurityWebApplicationInitializer` will automatically register the springSecurityFilterChain Filter for every URL in your application. If Filters are added within other `WebApplicationInitializer` instances we can use `@Order` to control the ordering of the Filter instances. - -=== Verify SecurityConfig is loaded - -Just because <> exists, does not mean that our Spring application knows about it. In this instance, our Spring root application context is initialized using MessageWebApplicationInitializer which is included with our spring-security-samples-javaconfig-messages project. You can find a snippet of it below: - -[[message-web-application-inititializer-java]] -.MessageWebApplicationInitializer.java -[source,java] ----- -public class MessageWebApplicationInitializer extends - AbstractAnnotationConfigDispatcherServletInitializer { - - @Override - protected Class[] getRootConfigClasses() { - return new Class[] { RootConfiguration.class }; - } - - // ... other overrides ... -} ----- - -You will notice it is loading the `RootConfiguration` class which is also included in our spring-security-samples-javaconfig-messages project. - -[[root-configuration-java]] -.RootConfiguration.java -[source,java] ----- -@Configuration -@ComponentScan -public class RootConfiguration { -} ----- - -The `@ComponentScan` is loading all configuration within the same package (and child packages) as `RootConfiguration`. Since <> is in this package, it will be loaded with our existing setup and there is nothing more to do. - -NOTE: Had <> not been loaded, we could have used an `@Import(SecurityConfig.class)` above the class definition of <> or added <> as one of the results for `getRootConfigClasses()`. - -include::{hello-include-dir}/exploring-the-secured-application-javaconfig.asc[] - -==== Displaying the user name - -Now that we have authenticated, let's see how our application is displaying the username if the user is authenticated. - -.messages/src/main/resources/views/layout.html -[source,html] ----- -
-

- sample_user -

-
----- - -In our samples we use https://www.thymeleaf.org/[Thymeleaf], but any view technology will work. Any technology can inspect the `HttpServletRequest#getRemoteUser()` to view the current user since Spring Security integrates with the <>. - -WARNING: The Thymeleaf ensures the username is escaped to avoid https://en.wikipedia.org/wiki/Cross-site_scripting[XSS vulnerabilities] Regardless of how an application renders user inputed values, it should ensure that the values are properly escaped. - -==== Logging out - -We can view the user name, but how are we able to log out? Below you can see how we are able to log out. - -.messages/src/main/resources/views/layout.html -[source,html] ----- -
- -
----- - -In order to help protect against https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attacks], by default, Spring Security Java Configuration log out requires: - -* the HTTP method must be a POST -* the CSRF token must be added to the request. Since we have used `@EnableWebSecurity` and are using Thymeleaf, the CSRF token is automatically added as a hidden input for you (view the source to see it). - -NOTE: If you were not using Spring MVC taglibs or Thymeleaf, you can access the CsrfToken on the ServletRequest using the attribute _csrf. You can find an example of including the CSRF token in a JSP within the link:helloworld-javaconfig.html[Hello Spring Security Java Config]. - -Restart the application server and click the Log out button and see that the application logs you out successfully. - -== Conclusion - -You should now know how to secure your application using Spring Security without using any XML. Next, we will see how to link:form-javaconfig.html[customize our login form]. diff --git a/docs/guides/src/docs/asciidoc/helloworld-boot.asc b/docs/guides/src/docs/asciidoc/helloworld-boot.asc deleted file mode 100644 index cc75981d58..0000000000 --- a/docs/guides/src/docs/asciidoc/helloworld-boot.asc +++ /dev/null @@ -1,97 +0,0 @@ -= Hello Spring Security with Boot -:author: Joe Grandja -:starter-appname: insecure -:starter-config-type: boot -:completed-appname: helloworld -:completed-config-type: boot -:include-dir: _includes -:hello-include-dir: _hello-includes - -This guide provides instructions on how to add Spring Security to an existing Spring Boot application. - -include::{include-dir}/setting-up-the-sample-boot.asc[] - -Verify the application is working by navigating to http://localhost:8080/ - -Click on the *_secured pages_* link and verify the page states *TODO Secure this* - -Once you have verified the application runs, stop the application server using the following steps: - -* In the _Boot Dashboard_ view select the running application -* Click the stop button (a red square) to stop the application - -include::{hello-include-dir}/secure-the-application-boot.asc[] - -include::{hello-include-dir}/exploring-the-secured-application-boot.asc[] - -==== Displaying the user name - -Now that we have authenticated, let's update the application to display the username. Update the complete content of */index.html* with the following: - -.src/main/resources/templates/index.html -[source,html] ----- - - - - Hello Spring Security - - - - -
<1> - Logged in user: | <2> - Roles: <3> -
-
<4> - -
-
-
-

Hello Spring Security

-

This is an unsecured page, but you can access the secured pages after authenticating.

- - - ----- - -NOTE: We are using https://www.thymeleaf.org/[Thymeleaf] for our view template engine and -https://github.com/thymeleaf/thymeleaf-extras-springsecurity[Thymeleaf - Spring Security integration modules] -in order to utilize the _sec:authentication_ and _sec:authorize_ attributes. - -<1> Displays the Thymeleaf fragment (DOM Node) if the current user has been authenticated. -<2> Displays the name of the currently authenticated principal. -<3> Displays the authorities of the currently authenticated principal. -<4> The logout form. - -TIP: Thymeleaf will automatically add the CSRF token to our logout form. If we were not using Thymeleaf or Spring MVCs taglib we could also manually add the CSRF token using ``. - -==== Update the _secured_ page - -The last step is to update the _secured_ page to also display the currently authenticated principal. Update the complete content of */user/index.html* with the following: - -.src/main/resources/templates/user/index.html -[source,html] ----- - - - - Hello Spring Security - - - - -
-

This is a secured page!

-

Back to home page

- - ----- - -Start up the server and try visiting http://localhost:8080/ to see the updates to our application. - -== Conclusion - -You should now know how to secure your application using Spring Security with an existing Spring Boot application . To learn more refer to the link:index.html[Spring Security Guides index page]. diff --git a/docs/guides/src/docs/asciidoc/helloworld-javaconfig.asc b/docs/guides/src/docs/asciidoc/helloworld-javaconfig.asc deleted file mode 100644 index d418e918a2..0000000000 --- a/docs/guides/src/docs/asciidoc/helloworld-javaconfig.asc +++ /dev/null @@ -1,113 +0,0 @@ -= Hello Spring Security Java Config -:author: Rob Winch -:starter-appname: insecure -:starter-config-type: xml -:completed-appname: helloworld -:completed-config-type: javaconfig -:include-dir: _includes -:hello-include-dir: _hello-includes - -This guide provides instructions on how to add Spring Security to an existing application without the use of XML. - -include::{include-dir}/setting-up-the-sample.asc[] - -Verify the application is working by ensuring a page stating *TODO Secure this* is displayed at http://localhost:8080/sample/ - -Once you have verified the application runs, stop the application server using the following steps: - -* In the Servers view select the latest tc Server -* Click the stop button (a red square) to stop the application server - -include::{hello-include-dir}/secure-the-application-javaconfig.asc[] - -=== Registering Spring Security with the war - -We have created the Spring Security configuration, but we still need to register it with the war. This can be done using the following steps: - -* Navigate to the *Package Explorer* view -* Right click the *org.springframework.security.samples.config* package within the *spring-security-samples-{starter-config-type}-{starter-appname}* project -* Select *New->Class* -* Enter _SecurityWebApplicationInitializer_ for the *Name* -* Click *Finish* -* Replace the file with the following contents: - -.src/main/java/org/springframework/security/samples/config/SecurityWebApplicationInitializer.java -[source,java] ----- -package org.springframework.security.samples.config; - -import org.springframework.security.web.context.*; - -public class SecurityWebApplicationInitializer - extends AbstractSecurityWebApplicationInitializer { - - public SecurityWebApplicationInitializer() { - super(SecurityConfig.class); - } -} ----- - -The `SecurityWebApplicationInitializer` will do the following things: - -* Automatically register the springSecurityFilterChain Filter for every URL in your application -* Add a ContextLoaderListener that loads the <>. - -NOTE: Since we were not already using Spring, this is a simple way to add our <>. If we were already using Spring, then we should add our <> with the reset of our Spring configuration (i.e. a subclass of AbstractContextLoaderInitializer or AbstractDispatcherServletInitializer) and use the default constructor instead. - -include::{hello-include-dir}/exploring-the-secured-application-javaconfig.asc[] - -==== Displaying the user name - -Now that we have authenticated, let's update the application to display the username. Update the body of index.jsp to be the following: - -.src/main/webapp/index.jsp -[source,html] ----- - -
-

This is secured!

-

- Hello -

-
- ----- - -WARNING: The `` tag ensures the username is escaped to avoid https://en.wikipedia.org/wiki/Cross-site_scripting[XSS vulnerabilities] Regardless of how an application renders user inputed values, it should ensure that the values are properly escaped. - -Refresh the page at http://localhost:8080/sample/ and you will see the user name displayed. This works because Spring Security integrates with the <> - -==== Logging out - -Now that we can view the user name, let's update the application to allow logging out. Update the body of index.jsp to contain a log out form as shown below: - -.src/main/webapp/index.jsp -[source,html] ----- - -
-

This is secured!

-

- Hello -

- -
- - -
-
- ----- - -In order to help protect against https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attacks], by default, Spring Security Java Configuration log out requires: - -* the HTTP method must be a POST -* the CSRF token must be added to the request. You can access it on the ServletRequest using the attribute _csrf as illustrated above. - -NOTE: If you were using Spring MVC's tag library or Thymeleaf, the CSRF token is automatically added as a hidden input for you. - -Refresh the page at http://localhost:8080/sample/ and you will see the log out button. Click the logout button and see that the application logs you out successfully. - -== Conclusion - -You should now know how to secure your application using Spring Security without using any XML. To learn more refer to the link:index.html[Spring Security Guides index page]. diff --git a/docs/guides/src/docs/asciidoc/helloworld-xml.asc b/docs/guides/src/docs/asciidoc/helloworld-xml.asc deleted file mode 100644 index c04f05a5fe..0000000000 --- a/docs/guides/src/docs/asciidoc/helloworld-xml.asc +++ /dev/null @@ -1,136 +0,0 @@ -= Hello Spring Security Xml Config -:author: Joe Grandja -:starter-appname: insecure -:starter-config-type: xml -:completed-appname: helloworld -:completed-config-type: xml -:include-dir: _includes -:hello-include-dir: _hello-includes - -This guide provides instructions on how to add Spring Security to an existing application using XML configuration. - -include::{include-dir}/setting-up-the-sample.asc[] - -Verify the application is working by ensuring a page stating *TODO Secure this* is displayed at http://localhost:8080/sample/ - -Once you have verified the application runs, stop the application server using the following steps: - -* In the Servers view select the latest tc Server -* Click the stop button (a red square) to stop the application server - -include::{hello-include-dir}/secure-the-application-xml.asc[] - -=== Registering Spring Security with the war - -We have created the Spring Security configuration, but we still need to register it with the war. This can be done using the following steps: - -* In the Package Explorer view, right click on the folder _src/main/webapp/WEB-INF_ -* Select *New->File* -* Enter _web.xml_ for the *File name* -* Click *Finish* -* Replace the contents of the file with the following: - -.src/main/webapp/WEB-INF/web.xml -[source,xml] ----- - - - - - - contextConfigLocation - - /WEB-INF/spring/*.xml - - - - - - springSecurityFilterChain - org.springframework.web.filter.DelegatingFilterProxy - - - springSecurityFilterChain - /* - - - - - org.springframework.web.context.ContextLoaderListener - - - ----- - -The _web.xml_ will do the following things: - -* Registers the `springSecurityFilterChain` Filter for every URL in your application -* Adds a `ContextLoaderListener` that loads the <>. - -include::{hello-include-dir}/exploring-the-secured-application-xml.asc[] - -==== Displaying the user name - -Now that we have authenticated, let's update the application to display the username. Update the body of index.jsp to be the following: - -.src/main/webapp/index.jsp -[source,html] ----- - -
-

This is secured!

-

- Hello -

-
- ----- - -WARNING: The `` tag ensures the username is escaped to avoid https://en.wikipedia.org/wiki/Cross-site_scripting[XSS vulnerabilities] Regardless of how an application renders user inputed values, it should ensure that the values are properly escaped. - -Refresh the page at http://localhost:8080/sample/ and you will see the user name displayed. This works because Spring Security integrates with the <> - -==== Logging out - -Now that we can view the user name, let's update the application to allow logging out. Update the body of index.jsp to contain a log out form as shown below: - -.src/main/webapp/index.jsp -[source,html] ----- - -
-

This is secured!

-

- Hello -

- -
- - -
-
- ----- - -In order to help protect against https://en.wikipedia.org/wiki/Cross-site_request_forgery[CSRF attacks], by default, Spring Security Xml Configuration log out requires: - -* the HTTP method must be a POST -* the CSRF token must be added to the request. You can access it on the ServletRequest using the attribute _csrf as illustrated above. - -NOTE: If you were using Spring MVC's tag library or Thymeleaf, the CSRF token is automatically added as a hidden input for you. - -Refresh the page at http://localhost:8080/sample/ and you will see the log out button. Click the logout button and see that the application logs you out successfully. - -== Conclusion - -You should now know how to secure your application using Spring Security with XML. To learn more refer to the link:index.html[Spring Security Guides index page]. diff --git a/docs/guides/src/docs/asciidoc/index.asc b/docs/guides/src/docs/asciidoc/index.asc deleted file mode 100644 index bf721d86a3..0000000000 --- a/docs/guides/src/docs/asciidoc/index.asc +++ /dev/null @@ -1,17 +0,0 @@ -= Spring Security Guides -Rob Winch, Joe Grandja - -These are step by step guides on how to use Spring Security. - -== Hello World - -These are the most basic starting points for using a web based application. - -* link:helloworld-javaconfig.html[Hello Spring Security Java Config] - demonstrates how to integrate Spring Security with an existing application using Java-based configuration -* link:helloworld-boot.html[Hello Spring Security with Boot] - demonstrates how to integrate Spring Security with an existing Spring Boot application -* link:helloworld-xml.html[Hello Spring Security Xml Config] - demonstrates how to integrate Spring Security with an existing application using Xml-based configuration -* link:hellomvc-javaconfig.html[Hello Spring MVC Security Java Config] - demonstrates how to integrate Spring Security with an existing Spring MVC application - -== Simple Customization - -* link:form-javaconfig.html[Creating a custom login form] - demonstrates how to create a custom login form diff --git a/docs/manual/spring-security-docs-manual.gradle b/docs/manual/spring-security-docs-manual.gradle deleted file mode 100644 index 6b0647cb9c..0000000000 --- a/docs/manual/spring-security-docs-manual.gradle +++ /dev/null @@ -1,62 +0,0 @@ -apply plugin: 'io.spring.convention.docs' -apply plugin: 'io.spring.convention.management-configuration' -apply plugin: 'io.spring.convention.repository' -apply plugin: 'java' - -asciidoctor { - attributes([stylesheet: 'css/style.css']) - resources { - from(sourceDir) { - include "css/**" - } - } -} - -asciidoctorj { - def docsTag = snapshotBuild ? 'current' : project.version - def ghTag = snapshotBuild ? 'main' : project.version - def ghUrl = "https://github.com/spring-projects/spring-security/tree/$ghTag" - def ghOldSamplesUrl = "https://github.com/spring-projects/spring-security/tree/5.4.x/samples" - def ghSamplesUrl = "https://github.com/spring-projects/spring-security-samples/tree/$samplesBranch" - def securityDocsUrl = "https://docs.spring.io/spring-security/site/docs/$docsTag" - def securityApiUrl = "$securityDocsUrl/api/" - def securityReferenceUrl = "$securityDocsUrl/reference/html5/" - def springFrameworkApiUrl = "https://docs.spring.io/spring-framework/docs/$springFrameworkVersion/javadoc-api/" - def springFrameworkReferenceUrl = "https://docs.spring.io/spring-framework/docs/$springFrameworkVersion/reference/html/" - attributes 'spring-security-version' : project.version, - 'spring-boot-version' : springBootVersion, - revnumber : project.version, - 'gh-url': ghUrl, - 'gh-samples-url': ghSamplesUrl, - 'gh-old-samples-url': ghOldSamplesUrl, - 'security-api-url': securityApiUrl, - 'security-reference-url': securityReferenceUrl, - 'spring-framework-api-url': springFrameworkApiUrl, - 'spring-framework-reference-url': springFrameworkReferenceUrl - attributeProvider resolvedVersions(project.configurations.testRuntimeClasspath) -} - -docsZip { - from(project(':spring-security-docs-guides').asciidoctor) { - into 'guides' - } -} - -dependencies { - management platform(project(":spring-security-dependencies")) - testImplementation "com.unboundid:unboundid-ldapsdk" - testImplementation "org.apache.directory.server:apacheds-core" - testImplementation "org.springframework:spring-core" -} - -def resolvedVersions(Configuration configuration) { - return { - configuration.resolvedConfiguration - .resolvedArtifacts - .collectEntries { [(it.name + "-version"): it.moduleVersion.id.version] } - } -} - -repositories { - maven { url "https://repo.spring.io/release" } -} diff --git a/docs/manual/src/docs/asciidoc/Guardfile b/docs/manual/src/docs/asciidoc/Guardfile deleted file mode 100644 index 076f37d0f4..0000000000 --- a/docs/manual/src/docs/asciidoc/Guardfile +++ /dev/null @@ -1,12 +0,0 @@ -require 'asciidoctor' -require 'erb' - -guard 'shell' do - watch(/^.*\.adoc$/) {|m| - Asciidoctor.render_file(m[0], :to_dir => "build/", :safe => Asciidoctor::SafeMode::UNSAFE, :attributes=> {'idprefix' => '', 'idseparator' => '-', 'copycss' => '', 'icons' => 'font', 'source-highlighter' => 'prettify', 'sectanchors' => '', 'doctype' => 'book','toc2' => '', 'spring-security-version' => '3.2.0.CI-SNAPSHOT','spring-version' => '3.2.0.RELEASE','spring4-version' => '4.0.0.RELEASE', 'revnumber' => '3.2.0.CI-SNAPSHOT', 'numbered'=>'' }) - } -end - -guard 'livereload' do - watch(%r{build/.+\.(css|js|html)$}) -end diff --git a/docs/manual/src/docs/asciidoc/_includes/about/index.adoc b/docs/manual/src/docs/asciidoc/_includes/about/index.adoc deleted file mode 100644 index 9345d31731..0000000000 --- a/docs/manual/src/docs/asciidoc/_includes/about/index.adoc +++ /dev/null @@ -1,17 +0,0 @@ -= Introduction - -This section discusses the logistics of Spring Security. - -include::prerequisites.adoc[leveloffset=+1] - -include::community.adoc[leveloffset=+1] - -include::whats-new.adoc[] - -include::getting-spring-security.adoc[leveloffset=+1] - -include::features.adoc[leveloffset=+1] - -include::modules.adoc[leveloffset=+1] - -include::samples.adoc[leveloffset=+1] diff --git a/docs/manual/src/docs/asciidoc/_includes/content.adoc b/docs/manual/src/docs/asciidoc/_includes/content.adoc deleted file mode 100644 index 2cabae6ea5..0000000000 --- a/docs/manual/src/docs/asciidoc/_includes/content.adoc +++ /dev/null @@ -1,9 +0,0 @@ -= Book Title -Rob Winch - -[abstract] -This is the actual content. - -== First Section - -And off we go. \ No newline at end of file diff --git a/docs/manual/src/docs/asciidoc/css/style.css b/docs/manual/src/docs/asciidoc/css/style.css deleted file mode 100644 index 45650c46df..0000000000 --- a/docs/manual/src/docs/asciidoc/css/style.css +++ /dev/null @@ -1,5 +0,0 @@ -@import 'spring.css'; - -a code { - color: #097dff; -} diff --git a/docs/manual/src/docs/asciidoc/index-docinfo.xml b/docs/manual/src/docs/asciidoc/index-docinfo.xml deleted file mode 100644 index 9a041505ba..0000000000 --- a/docs/manual/src/docs/asciidoc/index-docinfo.xml +++ /dev/null @@ -1,11 +0,0 @@ -Spring Security -{spring-security-version} - - 2004-2019 - - - Copies of this document may be made for your own use and for distribution to - others, provided that you do not charge any fee for such copies and further provided - that each copy contains this Copyright Notice, whether distributed in print or - electronically. - diff --git a/docs/manual/src/docs/asciidoc/index.adoc b/docs/manual/src/docs/asciidoc/index.adoc deleted file mode 100644 index 5536b762e4..0000000000 --- a/docs/manual/src/docs/asciidoc/index.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Spring Security Reference -Ben Alex; Luke Taylor; Rob Winch; Gunnar Hillert; Joe Grandja; Jay Bryant; Eddú Meléndez; Josh Cummings; Dave Syer; Eleftheria Stein -:include-dir: _includes -:source-indent: 0 -:tabsize: 4 -:toc: left - -// FIXME: Add links for authentication, authorization, common attacks -Spring Security is a framework that provides authentication, authorization, and protection against common attacks. -// FIXME: Add links for imperative and reactive applications -With first class support for both imperative and reactive applications, it is the de-facto standard for securing Spring-based applications. - -include::{include-dir}/about/index.adoc[] - -include::{include-dir}/servlet/index.adoc[] - -include::{include-dir}/reactive/index.adoc[] - - diff --git a/docs/manual/src/docs/asciidoc/images/Authentication.gif b/docs/modules/ROOT/images/Authentication.gif similarity index 100% rename from docs/manual/src/docs/asciidoc/images/Authentication.gif rename to docs/modules/ROOT/images/Authentication.gif diff --git a/docs/manual/src/docs/asciidoc/images/access-decision-voting.graffle b/docs/modules/ROOT/images/access-decision-voting.graffle similarity index 100% rename from docs/manual/src/docs/asciidoc/images/access-decision-voting.graffle rename to docs/modules/ROOT/images/access-decision-voting.graffle diff --git a/docs/manual/src/docs/asciidoc/images/access-decision-voting.png b/docs/modules/ROOT/images/access-decision-voting.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/access-decision-voting.png rename to docs/modules/ROOT/images/access-decision-voting.png diff --git a/docs/manual/src/docs/asciidoc/images/after-invocation.graffle b/docs/modules/ROOT/images/after-invocation.graffle similarity index 100% rename from docs/manual/src/docs/asciidoc/images/after-invocation.graffle rename to docs/modules/ROOT/images/after-invocation.graffle diff --git a/docs/manual/src/docs/asciidoc/images/after-invocation.png b/docs/modules/ROOT/images/after-invocation.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/after-invocation.png rename to docs/modules/ROOT/images/after-invocation.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_1.png b/docs/modules/ROOT/images/icons/number_1.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_1.png rename to docs/modules/ROOT/images/icons/number_1.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_10.png b/docs/modules/ROOT/images/icons/number_10.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_10.png rename to docs/modules/ROOT/images/icons/number_10.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_2.png b/docs/modules/ROOT/images/icons/number_2.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_2.png rename to docs/modules/ROOT/images/icons/number_2.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_3.png b/docs/modules/ROOT/images/icons/number_3.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_3.png rename to docs/modules/ROOT/images/icons/number_3.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_4.png b/docs/modules/ROOT/images/icons/number_4.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_4.png rename to docs/modules/ROOT/images/icons/number_4.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_5.png b/docs/modules/ROOT/images/icons/number_5.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_5.png rename to docs/modules/ROOT/images/icons/number_5.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_6.png b/docs/modules/ROOT/images/icons/number_6.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_6.png rename to docs/modules/ROOT/images/icons/number_6.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_7.png b/docs/modules/ROOT/images/icons/number_7.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_7.png rename to docs/modules/ROOT/images/icons/number_7.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_8.png b/docs/modules/ROOT/images/icons/number_8.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_8.png rename to docs/modules/ROOT/images/icons/number_8.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/number_9.png b/docs/modules/ROOT/images/icons/number_9.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/number_9.png rename to docs/modules/ROOT/images/icons/number_9.png diff --git a/docs/manual/src/docs/asciidoc/images/icons/numbers.odg b/docs/modules/ROOT/images/icons/numbers.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/icons/numbers.odg rename to docs/modules/ROOT/images/icons/numbers.odg diff --git a/docs/manual/src/docs/asciidoc/images/note.png b/docs/modules/ROOT/images/note.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/note.png rename to docs/modules/ROOT/images/note.png diff --git a/docs/manual/src/docs/asciidoc/images/palette.otg b/docs/modules/ROOT/images/palette.otg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/palette.otg rename to docs/modules/ROOT/images/palette.otg diff --git a/docs/manual/src/docs/asciidoc/images/s2-banner-rhs.png b/docs/modules/ROOT/images/s2-banner-rhs.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/s2-banner-rhs.png rename to docs/modules/ROOT/images/s2-banner-rhs.png diff --git a/docs/manual/src/docs/asciidoc/images/s2_box_logo.png b/docs/modules/ROOT/images/s2_box_logo.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/s2_box_logo.png rename to docs/modules/ROOT/images/s2_box_logo.png diff --git a/docs/manual/src/docs/asciidoc/images/security-interception.graffle b/docs/modules/ROOT/images/security-interception.graffle similarity index 100% rename from docs/manual/src/docs/asciidoc/images/security-interception.graffle rename to docs/modules/ROOT/images/security-interception.graffle diff --git a/docs/manual/src/docs/asciidoc/images/security-interception.png b/docs/modules/ROOT/images/security-interception.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/security-interception.png rename to docs/modules/ROOT/images/security-interception.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/delegatingfilterproxy.odg b/docs/modules/ROOT/images/servlet/architecture/delegatingfilterproxy.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/delegatingfilterproxy.odg rename to docs/modules/ROOT/images/servlet/architecture/delegatingfilterproxy.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/delegatingfilterproxy.png b/docs/modules/ROOT/images/servlet/architecture/delegatingfilterproxy.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/delegatingfilterproxy.png rename to docs/modules/ROOT/images/servlet/architecture/delegatingfilterproxy.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/exceptiontranslationfilter.odg b/docs/modules/ROOT/images/servlet/architecture/exceptiontranslationfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/exceptiontranslationfilter.odg rename to docs/modules/ROOT/images/servlet/architecture/exceptiontranslationfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/exceptiontranslationfilter.png b/docs/modules/ROOT/images/servlet/architecture/exceptiontranslationfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/exceptiontranslationfilter.png rename to docs/modules/ROOT/images/servlet/architecture/exceptiontranslationfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.gif b/docs/modules/ROOT/images/servlet/architecture/filterchain.gif similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.gif rename to docs/modules/ROOT/images/servlet/architecture/filterchain.gif diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.odg b/docs/modules/ROOT/images/servlet/architecture/filterchain.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.odg rename to docs/modules/ROOT/images/servlet/architecture/filterchain.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.png b/docs/modules/ROOT/images/servlet/architecture/filterchain.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchain.png rename to docs/modules/ROOT/images/servlet/architecture/filterchain.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchainproxy.odg b/docs/modules/ROOT/images/servlet/architecture/filterchainproxy.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchainproxy.odg rename to docs/modules/ROOT/images/servlet/architecture/filterchainproxy.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchainproxy.png b/docs/modules/ROOT/images/servlet/architecture/filterchainproxy.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/filterchainproxy.png rename to docs/modules/ROOT/images/servlet/architecture/filterchainproxy.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/multi-securityfilterchain.odg b/docs/modules/ROOT/images/servlet/architecture/multi-securityfilterchain.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/multi-securityfilterchain.odg rename to docs/modules/ROOT/images/servlet/architecture/multi-securityfilterchain.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/multi-securityfilterchain.png b/docs/modules/ROOT/images/servlet/architecture/multi-securityfilterchain.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/multi-securityfilterchain.png rename to docs/modules/ROOT/images/servlet/architecture/multi-securityfilterchain.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/securityfilterchain.odg b/docs/modules/ROOT/images/servlet/architecture/securityfilterchain.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/securityfilterchain.odg rename to docs/modules/ROOT/images/servlet/architecture/securityfilterchain.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/architecture/securityfilterchain.png b/docs/modules/ROOT/images/servlet/architecture/securityfilterchain.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/architecture/securityfilterchain.png rename to docs/modules/ROOT/images/servlet/architecture/securityfilterchain.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.odg b/docs/modules/ROOT/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.odg rename to docs/modules/ROOT/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.png b/docs/modules/ROOT/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.png rename to docs/modules/ROOT/images/servlet/authentication/architecture/abstractauthenticationprocessingfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager-parent.odg b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanager-parent.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager-parent.odg rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanager-parent.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager-parent.png b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanager-parent.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager-parent.png rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanager-parent.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager.odg b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanager.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager.odg rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanager.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager.png b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanager.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanager.png rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanager.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanagers-parent.odg b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanagers-parent.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanagers-parent.odg rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanagers-parent.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanagers-parent.png b/docs/modules/ROOT/images/servlet/authentication/architecture/providermanagers-parent.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/providermanagers-parent.png rename to docs/modules/ROOT/images/servlet/authentication/architecture/providermanagers-parent.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/securitycontextholder.odg b/docs/modules/ROOT/images/servlet/authentication/architecture/securitycontextholder.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/securitycontextholder.odg rename to docs/modules/ROOT/images/servlet/authentication/architecture/securitycontextholder.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/securitycontextholder.png b/docs/modules/ROOT/images/servlet/authentication/architecture/securitycontextholder.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/architecture/securitycontextholder.png rename to docs/modules/ROOT/images/servlet/authentication/architecture/securitycontextholder.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationentrypoint.odg b/docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationentrypoint.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationentrypoint.odg rename to docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationentrypoint.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationentrypoint.png b/docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationentrypoint.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationentrypoint.png rename to docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationentrypoint.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationfilter.odg b/docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationfilter.odg rename to docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationfilter.png b/docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/basicauthenticationfilter.png rename to docs/modules/ROOT/images/servlet/authentication/unpwd/basicauthenticationfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/daoauthenticationprovider.odg b/docs/modules/ROOT/images/servlet/authentication/unpwd/daoauthenticationprovider.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/daoauthenticationprovider.odg rename to docs/modules/ROOT/images/servlet/authentication/unpwd/daoauthenticationprovider.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/daoauthenticationprovider.png b/docs/modules/ROOT/images/servlet/authentication/unpwd/daoauthenticationprovider.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/daoauthenticationprovider.png rename to docs/modules/ROOT/images/servlet/authentication/unpwd/daoauthenticationprovider.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.odg b/docs/modules/ROOT/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.odg rename to docs/modules/ROOT/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.png b/docs/modules/ROOT/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.png rename to docs/modules/ROOT/images/servlet/authentication/unpwd/loginurlauthenticationentrypoint.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.odg b/docs/modules/ROOT/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.odg rename to docs/modules/ROOT/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.png b/docs/modules/ROOT/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.png rename to docs/modules/ROOT/images/servlet/authentication/unpwd/usernamepasswordauthenticationfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authorization/filtersecurityinterceptor.odg b/docs/modules/ROOT/images/servlet/authorization/filtersecurityinterceptor.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authorization/filtersecurityinterceptor.odg rename to docs/modules/ROOT/images/servlet/authorization/filtersecurityinterceptor.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/authorization/filtersecurityinterceptor.png b/docs/modules/ROOT/images/servlet/authorization/filtersecurityinterceptor.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/authorization/filtersecurityinterceptor.png rename to docs/modules/ROOT/images/servlet/authorization/filtersecurityinterceptor.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/beareraccessdeniedhandler.odg b/docs/modules/ROOT/images/servlet/oauth2/beareraccessdeniedhandler.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/beareraccessdeniedhandler.odg rename to docs/modules/ROOT/images/servlet/oauth2/beareraccessdeniedhandler.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearerauthenticationentrypoint.odg b/docs/modules/ROOT/images/servlet/oauth2/bearerauthenticationentrypoint.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearerauthenticationentrypoint.odg rename to docs/modules/ROOT/images/servlet/oauth2/bearerauthenticationentrypoint.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearerauthenticationentrypoint.png b/docs/modules/ROOT/images/servlet/oauth2/bearerauthenticationentrypoint.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearerauthenticationentrypoint.png rename to docs/modules/ROOT/images/servlet/oauth2/bearerauthenticationentrypoint.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearertokenauthenticationfilter.odg b/docs/modules/ROOT/images/servlet/oauth2/bearertokenauthenticationfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearertokenauthenticationfilter.odg rename to docs/modules/ROOT/images/servlet/oauth2/bearertokenauthenticationfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearertokenauthenticationfilter.png b/docs/modules/ROOT/images/servlet/oauth2/bearertokenauthenticationfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/bearertokenauthenticationfilter.png rename to docs/modules/ROOT/images/servlet/oauth2/bearertokenauthenticationfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/jwtauthenticationprovider.odg b/docs/modules/ROOT/images/servlet/oauth2/jwtauthenticationprovider.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/jwtauthenticationprovider.odg rename to docs/modules/ROOT/images/servlet/oauth2/jwtauthenticationprovider.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/jwtauthenticationprovider.png b/docs/modules/ROOT/images/servlet/oauth2/jwtauthenticationprovider.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/jwtauthenticationprovider.png rename to docs/modules/ROOT/images/servlet/oauth2/jwtauthenticationprovider.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/opaquetokenauthenticationprovider.odg b/docs/modules/ROOT/images/servlet/oauth2/opaquetokenauthenticationprovider.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/opaquetokenauthenticationprovider.odg rename to docs/modules/ROOT/images/servlet/oauth2/opaquetokenauthenticationprovider.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/oauth2/opaquetokenauthenticationprovider.png b/docs/modules/ROOT/images/servlet/oauth2/opaquetokenauthenticationprovider.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/oauth2/opaquetokenauthenticationprovider.png rename to docs/modules/ROOT/images/servlet/oauth2/opaquetokenauthenticationprovider.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/opensamlauthenticationprovider.odg b/docs/modules/ROOT/images/servlet/saml2/opensamlauthenticationprovider.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/opensamlauthenticationprovider.odg rename to docs/modules/ROOT/images/servlet/saml2/opensamlauthenticationprovider.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/opensamlauthenticationprovider.png b/docs/modules/ROOT/images/servlet/saml2/opensamlauthenticationprovider.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/opensamlauthenticationprovider.png rename to docs/modules/ROOT/images/servlet/saml2/opensamlauthenticationprovider.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationfilter.odg b/docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationfilter.odg rename to docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationfilter.png b/docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationfilter.png rename to docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationrequestfilter.odg b/docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationrequestfilter.odg similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationrequestfilter.odg rename to docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationrequestfilter.odg diff --git a/docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationrequestfilter.png b/docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationrequestfilter.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/servlet/saml2/saml2webssoauthenticationrequestfilter.png rename to docs/modules/ROOT/images/servlet/saml2/saml2webssoauthenticationrequestfilter.png diff --git a/docs/manual/src/docs/asciidoc/images/tip.png b/docs/modules/ROOT/images/tip.png similarity index 100% rename from docs/manual/src/docs/asciidoc/images/tip.png rename to docs/modules/ROOT/images/tip.png diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc new file mode 100644 index 0000000000..9b378b7b6f --- /dev/null +++ b/docs/modules/ROOT/nav.adoc @@ -0,0 +1,72 @@ +* Overview +** xref:overview/prerequisites.adoc[Prerequisites] +** xref:overview/community.adoc[Community] +** xref:overview/whats-new.adoc[What's New] +** xref:overview/getting-spring-security.adoc[Getting Spring Security] +** xref:overview/features/index.adoc[Features] +*** xref:overview/features/authentication/index.adoc[Authentication] +*** xref:overview/features/exploits/index.adoc[Protection Against Exploits] +** xref:overview/modules.adoc[Project Modules & Dependencies] +** xref:overview/samples.adoc[Samples] +* Servlet Applications +** xref:servlet/hello/index.adoc[Hello Spring Security] +** xref:servlet/architecture/index.adoc[The Big Picture] +** Authentication +*** xref:servlet/authentication/architecture/index.adoc[Authentication Architecture] +*** xref:servlet/authentication/unpwd/index.adoc[Username/Password] +**** Reading Username/Password +***** xref:servlet/authentication/unpwd/form.adoc[Form] +***** xref:servlet/authentication/unpwd/basic.adoc[Basic] +***** xref:servlet/authentication/unpwd/digest.adoc[Digest] +**** Password Storage +***** xref:servlet/authentication/unpwd/in-memory.adoc[In Memory] +***** xref:servlet/authentication/unpwd/jdbc.adoc[JDBC] +***** xref:servlet/authentication/unpwd/user-details.adoc[UserDetails] +***** xref:servlet/authentication/unpwd/user-details-service.adoc[UserDetailsService] +***** xref:servlet/authentication/unpwd/password-encoder.adoc[PasswordEncoder] +***** xref:servlet/authentication/unpwd/dao-authentication-provider.adoc[DaoAuthenticationProvider] +***** xref:servlet/authentication/unpwd/ldap.adoc[LDAP] +*** xref:servlet/authentication/session-management.adoc[Session Management] +*** xref:servlet/authentication/rememberme.adoc[Remember Me] +*** xref:servlet/authentication/openid.adoc[OpenID] +*** xref:servlet/authentication/anonymous.adoc[Anonymous] +*** xref:servlet/authentication/preauth.adoc[Pre-Authentication] +*** xref:servlet/authentication/jaas.adoc[JAAS] +*** xref:servlet/authentication/cas.adoc[CAS] +*** xref:servlet/authentication/x509.adoc[X509] +*** xref:servlet/authentication/runas.adoc[Run-As] +*** xref:servlet/authentication/logout.adoc[Logout] +*** xref:servlet/authentication/events.adoc[Authentication Events] +** Authorization +*** xref:servlet/authorization/architecture.adoc[Authorization Architecture] +*** xref:servlet/authorization/authorize-requests.adoc[Authorize HTTP Requests] +*** xref:servlet/authorization/expression-based.adoc[Expression-Based Access Control] +*** xref:servlet/authorization/secure-objects.adoc[Secure Object Implementations] +*** xref:servlet/authorization/method-security.adoc[Method Security] +*** xref:servlet/authorization/acls.adoc[Domain Object Security ACLs] +** OAuth2 +*** xref:servlet/oauth2/oauth2-login.adoc[OAuth2 Log In] +*** xref:servlet/oauth2/oauth2-client.adoc[OAuth2 Client] +*** xref:servlet/oauth2/oauth2-resourceserver.adoc[OAuth2 Resource Server] +** xref:servlet/saml2/index.adoc[SAML2] +** xref:servlet/exploits/index.adoc[Protection Against Exploits] +** xref:servlet/integrations/index.adoc[Integrations] +** Configuration +*** xref:servlet/java-configuration/index.adoc[Java Configuration] +*** xref:servlet/kotlin-configuration/index.adoc[Kotlin Configuration] +*** xref:servlet/namespace/index.adoc[Namespace Configuration] +** xref:servlet/test/index.adoc[Testing] +** xref:servlet/crypto/index.adoc[Cryptography] +** xref:servlet/appendix/index.adoc[Appendix] +* Reactive Applications +** xref:reactive/webflux.adoc[WebFlux Security] +** xref:reactive/exploits/index.adoc[Protection Against Exploits] +** xref:reactive/oauth2/index.adoc[OAuth2] +** xref:reactive/registered-oauth2-authorized-client.adoc[@RegisteredOAuth2AuthorizedClient] +** xref:reactive/x509.adoc[X.509 Authentication] +** xref:reactive/logout.adoc[Logout] +** xref:reactive/webclient.adoc[WebClient] +** xref:reactive/method.adoc[EnableReactiveMethodSecurity] +** xref:reactive/cors.adoc[CORS] +** xref:reactive/test.adoc[Testing] +** xref:reactive/rsocket.adoc[RSocket] diff --git a/docs/manual/src/docs/asciidoc/_includes/about/community.adoc b/docs/modules/ROOT/pages/overview/community.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/community.adoc rename to docs/modules/ROOT/pages/overview/community.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/authentication/index.adoc b/docs/modules/ROOT/pages/overview/features/authentication/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/authentication/index.adoc rename to docs/modules/ROOT/pages/overview/features/authentication/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/authentication/password-storage.adoc b/docs/modules/ROOT/pages/overview/features/authentication/password-storage.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/authentication/password-storage.adoc rename to docs/modules/ROOT/pages/overview/features/authentication/password-storage.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/authentication/supported.adoc b/docs/modules/ROOT/pages/overview/features/authentication/supported.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/authentication/supported.adoc rename to docs/modules/ROOT/pages/overview/features/authentication/supported.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/exploits/csrf.adoc b/docs/modules/ROOT/pages/overview/features/exploits/csrf.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/exploits/csrf.adoc rename to docs/modules/ROOT/pages/overview/features/exploits/csrf.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/exploits/headers.adoc b/docs/modules/ROOT/pages/overview/features/exploits/headers.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/exploits/headers.adoc rename to docs/modules/ROOT/pages/overview/features/exploits/headers.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/exploits/http.adoc b/docs/modules/ROOT/pages/overview/features/exploits/http.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/exploits/http.adoc rename to docs/modules/ROOT/pages/overview/features/exploits/http.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/exploits/index.adoc b/docs/modules/ROOT/pages/overview/features/exploits/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/exploits/index.adoc rename to docs/modules/ROOT/pages/overview/features/exploits/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/features.adoc b/docs/modules/ROOT/pages/overview/features/index.adoc similarity index 72% rename from docs/manual/src/docs/asciidoc/_includes/about/features.adoc rename to docs/modules/ROOT/pages/overview/features/index.adoc index c08113ae5e..8ae9eb3feb 100644 --- a/docs/manual/src/docs/asciidoc/_includes/about/features.adoc +++ b/docs/modules/ROOT/pages/overview/features/index.adoc @@ -4,6 +4,3 @@ Spring Security provides comprehensive support for <>, authorization, and protection against <>. It also provides integration with other libraries to simplify its usage. -include::authentication/index.adoc[leveloffset=+1] - -include::exploits/index.adoc[leveloffset=+1] diff --git a/docs/manual/src/docs/asciidoc/_includes/about/getting-spring-security.adoc b/docs/modules/ROOT/pages/overview/getting-spring-security.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/getting-spring-security.adoc rename to docs/modules/ROOT/pages/overview/getting-spring-security.adoc diff --git a/docs/modules/ROOT/pages/overview/index.adoc b/docs/modules/ROOT/pages/overview/index.adoc new file mode 100644 index 0000000000..7441dadf05 --- /dev/null +++ b/docs/modules/ROOT/pages/overview/index.adoc @@ -0,0 +1,5 @@ += Overview + +Spring Security is a framework that provides authentication, authorization, and protection against common attacks. +With first class support for both imperative and reactive applications, it is the de-facto standard for securing Spring-based applications. + diff --git a/docs/manual/src/docs/asciidoc/_includes/about/modules.adoc b/docs/modules/ROOT/pages/overview/modules.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/modules.adoc rename to docs/modules/ROOT/pages/overview/modules.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/prerequisites.adoc b/docs/modules/ROOT/pages/overview/prerequisites.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/prerequisites.adoc rename to docs/modules/ROOT/pages/overview/prerequisites.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/samples.adoc b/docs/modules/ROOT/pages/overview/samples.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/samples.adoc rename to docs/modules/ROOT/pages/overview/samples.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/about/whats-new.adoc b/docs/modules/ROOT/pages/overview/whats-new.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/about/whats-new.adoc rename to docs/modules/ROOT/pages/overview/whats-new.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/cors.adoc b/docs/modules/ROOT/pages/reactive/cors.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/cors.adoc rename to docs/modules/ROOT/pages/reactive/cors.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/exploits/csrf.adoc b/docs/modules/ROOT/pages/reactive/exploits/csrf.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/exploits/csrf.adoc rename to docs/modules/ROOT/pages/reactive/exploits/csrf.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/exploits/headers.adoc b/docs/modules/ROOT/pages/reactive/exploits/headers.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/exploits/headers.adoc rename to docs/modules/ROOT/pages/reactive/exploits/headers.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/exploits/http.adoc b/docs/modules/ROOT/pages/reactive/exploits/http.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/exploits/http.adoc rename to docs/modules/ROOT/pages/reactive/exploits/http.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/exploits/index.adoc b/docs/modules/ROOT/pages/reactive/exploits/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/exploits/index.adoc rename to docs/modules/ROOT/pages/reactive/exploits/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/index.adoc b/docs/modules/ROOT/pages/reactive/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/index.adoc rename to docs/modules/ROOT/pages/reactive/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/logout.adoc b/docs/modules/ROOT/pages/reactive/logout.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/logout.adoc rename to docs/modules/ROOT/pages/reactive/logout.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/method.adoc b/docs/modules/ROOT/pages/reactive/method.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/method.adoc rename to docs/modules/ROOT/pages/reactive/method.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/access-token.adoc b/docs/modules/ROOT/pages/reactive/oauth2/access-token.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/access-token.adoc rename to docs/modules/ROOT/pages/reactive/oauth2/access-token.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/index.adoc b/docs/modules/ROOT/pages/reactive/oauth2/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/index.adoc rename to docs/modules/ROOT/pages/reactive/oauth2/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/login.adoc b/docs/modules/ROOT/pages/reactive/oauth2/login.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/login.adoc rename to docs/modules/ROOT/pages/reactive/oauth2/login.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/resource-server.adoc b/docs/modules/ROOT/pages/reactive/oauth2/resource-server.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/oauth2/resource-server.adoc rename to docs/modules/ROOT/pages/reactive/oauth2/resource-server.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/registered-oauth2-authorized-client.adoc b/docs/modules/ROOT/pages/reactive/registered-oauth2-authorized-client.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/registered-oauth2-authorized-client.adoc rename to docs/modules/ROOT/pages/reactive/registered-oauth2-authorized-client.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/rsocket.adoc b/docs/modules/ROOT/pages/reactive/rsocket.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/rsocket.adoc rename to docs/modules/ROOT/pages/reactive/rsocket.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/test.adoc b/docs/modules/ROOT/pages/reactive/test.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/test.adoc rename to docs/modules/ROOT/pages/reactive/test.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/webclient.adoc b/docs/modules/ROOT/pages/reactive/webclient.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/webclient.adoc rename to docs/modules/ROOT/pages/reactive/webclient.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/webflux.adoc b/docs/modules/ROOT/pages/reactive/webflux.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/webflux.adoc rename to docs/modules/ROOT/pages/reactive/webflux.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/reactive/x509.adoc b/docs/modules/ROOT/pages/reactive/x509.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/reactive/x509.adoc rename to docs/modules/ROOT/pages/reactive/x509.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/appendix/database-schema.adoc b/docs/modules/ROOT/pages/servlet/appendix/database-schema.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/appendix/database-schema.adoc rename to docs/modules/ROOT/pages/servlet/appendix/database-schema.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/appendix/faq.adoc b/docs/modules/ROOT/pages/servlet/appendix/faq.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/appendix/faq.adoc rename to docs/modules/ROOT/pages/servlet/appendix/faq.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/appendix/index.adoc b/docs/modules/ROOT/pages/servlet/appendix/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/appendix/index.adoc rename to docs/modules/ROOT/pages/servlet/appendix/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/appendix/namespace.adoc b/docs/modules/ROOT/pages/servlet/appendix/namespace.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/appendix/namespace.adoc rename to docs/modules/ROOT/pages/servlet/appendix/namespace.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/appendix/proxy-server.adoc b/docs/modules/ROOT/pages/servlet/appendix/proxy-server.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/appendix/proxy-server.adoc rename to docs/modules/ROOT/pages/servlet/appendix/proxy-server.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/delegating-filter-proxy.adoc b/docs/modules/ROOT/pages/servlet/architecture/delegating-filter-proxy.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/delegating-filter-proxy.adoc rename to docs/modules/ROOT/pages/servlet/architecture/delegating-filter-proxy.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/exception-translation-filter.adoc b/docs/modules/ROOT/pages/servlet/architecture/exception-translation-filter.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/exception-translation-filter.adoc rename to docs/modules/ROOT/pages/servlet/architecture/exception-translation-filter.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/filter-chain-proxy.adoc b/docs/modules/ROOT/pages/servlet/architecture/filter-chain-proxy.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/filter-chain-proxy.adoc rename to docs/modules/ROOT/pages/servlet/architecture/filter-chain-proxy.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/filters.adoc b/docs/modules/ROOT/pages/servlet/architecture/filters.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/filters.adoc rename to docs/modules/ROOT/pages/servlet/architecture/filters.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/index.adoc b/docs/modules/ROOT/pages/servlet/architecture/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/index.adoc rename to docs/modules/ROOT/pages/servlet/architecture/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/security-filter-chain.adoc b/docs/modules/ROOT/pages/servlet/architecture/security-filter-chain.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/security-filter-chain.adoc rename to docs/modules/ROOT/pages/servlet/architecture/security-filter-chain.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/architecture/security-filters.adoc b/docs/modules/ROOT/pages/servlet/architecture/security-filters.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/architecture/security-filters.adoc rename to docs/modules/ROOT/pages/servlet/architecture/security-filters.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/anonymous.adoc b/docs/modules/ROOT/pages/servlet/authentication/anonymous.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/anonymous.adoc rename to docs/modules/ROOT/pages/servlet/authentication/anonymous.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/abstract-authentication-processing-filter.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/abstract-authentication-processing-filter.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/abstract-authentication-processing-filter.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/abstract-authentication-processing-filter.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-entry-point.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-entry-point.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-entry-point.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-entry-point.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-manager.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-manager.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-manager.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-manager.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-provider.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-provider.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication-provider.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/authentication-provider.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/authentication.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/authentication.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/authentication.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/granted-authority.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/granted-authority.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/granted-authority.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/granted-authority.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/index.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/index.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/provider-manager.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/provider-manager.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/provider-manager.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/provider-manager.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/security-context-holder.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/security-context-holder.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/security-context-holder.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/security-context-holder.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/security-context.adoc b/docs/modules/ROOT/pages/servlet/authentication/architecture/security-context.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/architecture/security-context.adoc rename to docs/modules/ROOT/pages/servlet/authentication/architecture/security-context.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/cas.adoc b/docs/modules/ROOT/pages/servlet/authentication/cas.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/cas.adoc rename to docs/modules/ROOT/pages/servlet/authentication/cas.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/events.adoc b/docs/modules/ROOT/pages/servlet/authentication/events.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/events.adoc rename to docs/modules/ROOT/pages/servlet/authentication/events.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/index.adoc b/docs/modules/ROOT/pages/servlet/authentication/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/index.adoc rename to docs/modules/ROOT/pages/servlet/authentication/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/jaas.adoc b/docs/modules/ROOT/pages/servlet/authentication/jaas.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/jaas.adoc rename to docs/modules/ROOT/pages/servlet/authentication/jaas.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/logout.adoc b/docs/modules/ROOT/pages/servlet/authentication/logout.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/logout.adoc rename to docs/modules/ROOT/pages/servlet/authentication/logout.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/openid.adoc b/docs/modules/ROOT/pages/servlet/authentication/openid.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/openid.adoc rename to docs/modules/ROOT/pages/servlet/authentication/openid.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/preauth.adoc b/docs/modules/ROOT/pages/servlet/authentication/preauth.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/preauth.adoc rename to docs/modules/ROOT/pages/servlet/authentication/preauth.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/rememberme.adoc b/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/rememberme.adoc rename to docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/runas.adoc b/docs/modules/ROOT/pages/servlet/authentication/runas.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/runas.adoc rename to docs/modules/ROOT/pages/servlet/authentication/runas.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/session-management.adoc b/docs/modules/ROOT/pages/servlet/authentication/session-management.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/session-management.adoc rename to docs/modules/ROOT/pages/servlet/authentication/session-management.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/basic.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/basic.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/basic.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/basic.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/dao-authentication-provider.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/dao-authentication-provider.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/dao-authentication-provider.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/dao-authentication-provider.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/digest.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/digest.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/digest.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/digest.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/form.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/form.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/form.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/form.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/in-memory.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/in-memory.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/in-memory.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/in-memory.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/index.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/index.adoc similarity index 69% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/index.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/index.adoc index 415d828118..e59dedf3da 100644 --- a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/index.adoc +++ b/docs/modules/ROOT/pages/servlet/authentication/unpwd/index.adoc @@ -7,7 +7,7 @@ One of the most common ways to authenticate a user is by validating a username a As such, Spring Security provides comprehensive support for authenticating with a username and password. [[servlet-authentication-unpwd-input]] -*Reading the Username & Password* +== Reading the Username & Password Spring Security provides the following built in mechanisms for reading a username and password from the `HttpServletRequest`: @@ -16,7 +16,7 @@ Spring Security provides the following built in mechanisms for reading a usernam * <> [[servlet-authentication-unpwd-storage]] -*Storage Mechanisms* +== Storage Mechanisms Each of the supported mechanisms for reading a username and password can leverage any of the supported storage mechanisms: @@ -25,22 +25,3 @@ Each of the supported mechanisms for reading a username and password can leverag * Custom data stores with <> * LDAP storage with <> -include::form.adoc[leveloffset=+1] - -include::basic.adoc[leveloffset=+1] - -include::digest.adoc[leveloffset=+1] - -include::in-memory.adoc[leveloffset=+1] - -include::jdbc.adoc[leveloffset=+1] - -include::user-details.adoc[leveloffset=+1] - -include::user-details-service.adoc[leveloffset=+1] - -include::password-encoder.adoc[leveloffset=+1] - -include::dao-authentication-provider.adoc[leveloffset=+1] - -include::ldap.adoc[leveloffset=+1] diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/jdbc.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/jdbc.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/jdbc.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/jdbc.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/ldap.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/ldap.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/ldap.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/ldap.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/password-encoder.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/password-encoder.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/password-encoder.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/password-encoder.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/user-details-service.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/user-details-service.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/user-details-service.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/user-details-service.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/user-details.adoc b/docs/modules/ROOT/pages/servlet/authentication/unpwd/user-details.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/unpwd/user-details.adoc rename to docs/modules/ROOT/pages/servlet/authentication/unpwd/user-details.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authentication/x509.adoc b/docs/modules/ROOT/pages/servlet/authentication/x509.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authentication/x509.adoc rename to docs/modules/ROOT/pages/servlet/authentication/x509.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/acls.adoc b/docs/modules/ROOT/pages/servlet/authorization/acls.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/acls.adoc rename to docs/modules/ROOT/pages/servlet/authorization/acls.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/architecture.adoc b/docs/modules/ROOT/pages/servlet/authorization/architecture.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/architecture.adoc rename to docs/modules/ROOT/pages/servlet/authorization/architecture.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/authorize-requests.adoc b/docs/modules/ROOT/pages/servlet/authorization/authorize-requests.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/authorize-requests.adoc rename to docs/modules/ROOT/pages/servlet/authorization/authorize-requests.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/expression-based.adoc b/docs/modules/ROOT/pages/servlet/authorization/expression-based.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/expression-based.adoc rename to docs/modules/ROOT/pages/servlet/authorization/expression-based.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/index.adoc b/docs/modules/ROOT/pages/servlet/authorization/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/index.adoc rename to docs/modules/ROOT/pages/servlet/authorization/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/method-security.adoc b/docs/modules/ROOT/pages/servlet/authorization/method-security.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/method-security.adoc rename to docs/modules/ROOT/pages/servlet/authorization/method-security.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/authorization/secure-objects.adoc b/docs/modules/ROOT/pages/servlet/authorization/secure-objects.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/authorization/secure-objects.adoc rename to docs/modules/ROOT/pages/servlet/authorization/secure-objects.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/crypto/index.adoc b/docs/modules/ROOT/pages/servlet/crypto/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/crypto/index.adoc rename to docs/modules/ROOT/pages/servlet/crypto/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/exploits/csrf.adoc b/docs/modules/ROOT/pages/servlet/exploits/csrf.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/exploits/csrf.adoc rename to docs/modules/ROOT/pages/servlet/exploits/csrf.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/exploits/firewall.adoc b/docs/modules/ROOT/pages/servlet/exploits/firewall.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/exploits/firewall.adoc rename to docs/modules/ROOT/pages/servlet/exploits/firewall.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/exploits/headers.adoc b/docs/modules/ROOT/pages/servlet/exploits/headers.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/exploits/headers.adoc rename to docs/modules/ROOT/pages/servlet/exploits/headers.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/exploits/http.adoc b/docs/modules/ROOT/pages/servlet/exploits/http.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/exploits/http.adoc rename to docs/modules/ROOT/pages/servlet/exploits/http.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/exploits/index.adoc b/docs/modules/ROOT/pages/servlet/exploits/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/exploits/index.adoc rename to docs/modules/ROOT/pages/servlet/exploits/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/hello/index.adoc b/docs/modules/ROOT/pages/servlet/hello/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/hello/index.adoc rename to docs/modules/ROOT/pages/servlet/hello/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/index.adoc b/docs/modules/ROOT/pages/servlet/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/index.adoc rename to docs/modules/ROOT/pages/servlet/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/concurrency.adoc b/docs/modules/ROOT/pages/servlet/integrations/concurrency.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/concurrency.adoc rename to docs/modules/ROOT/pages/servlet/integrations/concurrency.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/cors.adoc b/docs/modules/ROOT/pages/servlet/integrations/cors.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/cors.adoc rename to docs/modules/ROOT/pages/servlet/integrations/cors.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/data.adoc b/docs/modules/ROOT/pages/servlet/integrations/data.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/data.adoc rename to docs/modules/ROOT/pages/servlet/integrations/data.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/index.adoc b/docs/modules/ROOT/pages/servlet/integrations/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/index.adoc rename to docs/modules/ROOT/pages/servlet/integrations/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/jackson.adoc b/docs/modules/ROOT/pages/servlet/integrations/jackson.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/jackson.adoc rename to docs/modules/ROOT/pages/servlet/integrations/jackson.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/jsp-taglibs.adoc b/docs/modules/ROOT/pages/servlet/integrations/jsp-taglibs.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/jsp-taglibs.adoc rename to docs/modules/ROOT/pages/servlet/integrations/jsp-taglibs.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/localization.adoc b/docs/modules/ROOT/pages/servlet/integrations/localization.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/localization.adoc rename to docs/modules/ROOT/pages/servlet/integrations/localization.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/mvc.adoc b/docs/modules/ROOT/pages/servlet/integrations/mvc.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/mvc.adoc rename to docs/modules/ROOT/pages/servlet/integrations/mvc.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/servlet-api.adoc b/docs/modules/ROOT/pages/servlet/integrations/servlet-api.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/servlet-api.adoc rename to docs/modules/ROOT/pages/servlet/integrations/servlet-api.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/integrations/websocket.adoc b/docs/modules/ROOT/pages/servlet/integrations/websocket.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/integrations/websocket.adoc rename to docs/modules/ROOT/pages/servlet/integrations/websocket.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/java-configuration/index.adoc b/docs/modules/ROOT/pages/servlet/java-configuration/index.adoc similarity index 98% rename from docs/manual/src/docs/asciidoc/_includes/servlet/java-configuration/index.adoc rename to docs/modules/ROOT/pages/servlet/java-configuration/index.adoc index 48205a64a6..e54df9bd7f 100644 --- a/docs/manual/src/docs/asciidoc/_includes/servlet/java-configuration/index.adoc +++ b/docs/modules/ROOT/pages/servlet/java-configuration/index.adoc @@ -65,7 +65,7 @@ This can be done in Java Configuration with https://docs.spring.io/spring/docs/3 Not suprisingly, Spring Security provides a base class `AbstractSecurityWebApplicationInitializer` that will ensure the `springSecurityFilterChain` gets registered for you. The way in which we use `AbstractSecurityWebApplicationInitializer` differs depending on if we are already using Spring or if Spring Security is the only Spring component in our application. -* <> - Use these instructions if you are not using Spring already +* xref:servlet/java-configuration/index.adoc#abstractsecuritywebapplicationinitializer-without-existing-spring[] - Use these instructions if you are not using Spring already * <> - Use these instructions if you are already using Spring === AbstractSecurityWebApplicationInitializer without Existing Spring diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/kotlin-configuration/index.adoc b/docs/modules/ROOT/pages/servlet/kotlin-configuration/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/kotlin-configuration/index.adoc rename to docs/modules/ROOT/pages/servlet/kotlin-configuration/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/namespace/index.adoc b/docs/modules/ROOT/pages/servlet/namespace/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/namespace/index.adoc rename to docs/modules/ROOT/pages/servlet/namespace/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/index.adoc b/docs/modules/ROOT/pages/servlet/oauth2/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/index.adoc rename to docs/modules/ROOT/pages/servlet/oauth2/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-client.adoc b/docs/modules/ROOT/pages/servlet/oauth2/oauth2-client.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-client.adoc rename to docs/modules/ROOT/pages/servlet/oauth2/oauth2-client.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-login.adoc b/docs/modules/ROOT/pages/servlet/oauth2/oauth2-login.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-login.adoc rename to docs/modules/ROOT/pages/servlet/oauth2/oauth2-login.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-resourceserver.adoc b/docs/modules/ROOT/pages/servlet/oauth2/oauth2-resourceserver.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-resourceserver.adoc rename to docs/modules/ROOT/pages/servlet/oauth2/oauth2-resourceserver.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/saml2/index.adoc b/docs/modules/ROOT/pages/servlet/saml2/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/saml2/index.adoc rename to docs/modules/ROOT/pages/servlet/saml2/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/saml2/saml2-login.adoc b/docs/modules/ROOT/pages/servlet/saml2/saml2-login.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/saml2/saml2-login.adoc rename to docs/modules/ROOT/pages/servlet/saml2/saml2-login.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/test/index.adoc b/docs/modules/ROOT/pages/servlet/test/index.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/test/index.adoc rename to docs/modules/ROOT/pages/servlet/test/index.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/test/method.adoc b/docs/modules/ROOT/pages/servlet/test/method.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/test/method.adoc rename to docs/modules/ROOT/pages/servlet/test/method.adoc diff --git a/docs/manual/src/docs/asciidoc/_includes/servlet/test/mockmvc.adoc b/docs/modules/ROOT/pages/servlet/test/mockmvc.adoc similarity index 100% rename from docs/manual/src/docs/asciidoc/_includes/servlet/test/mockmvc.adoc rename to docs/modules/ROOT/pages/servlet/test/mockmvc.adoc diff --git a/local-antora-playbook.yml b/local-antora-playbook.yml new file mode 100644 index 0000000000..cdcb52c474 --- /dev/null +++ b/local-antora-playbook.yml @@ -0,0 +1,15 @@ +site: + title: Spring Security + start_page: security::index.adoc +asciidoc: + attributes: + page-pagination: true +content: + sources: + - url: ./ + branches: [HEAD] + start_path: docs +ui: + bundle: + url: https://github.com/rwinch/antora-ui-spring/releases/download/latest/ui-bundle.zip + snapshot: true