This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/grails-spring-security.git
commit 24a5fb7b44a79e547ac43d00643d7ae31cf059b0 Merge: 0e987881 36b44429 Author: James Daugherty <[email protected]> AuthorDate: Thu Jun 5 10:53:45 2025 -0400 Merge pull request #1115 from matrei/license-headers License headers and Spring Boot 3.5.0, Spring Security 6.5.0 .github/ISSUE_TEMPLATE/bug_report.yaml | 14 + .github/ISSUE_TEMPLATE/config.yml | 15 + .github/ISSUE_TEMPLATE/new_feature.yaml | 14 + .github/ISSUE_TEMPLATE/other.yaml | 14 + .github/dependabot.yml | 15 + .github/release-drafter.yml | 15 + .github/workflows/gradle.yml | 44 +- .github/workflows/rat.yml | 57 + .github/workflows/release-notes.yml | 15 + .github/workflows/release.yml | 121 +- .gitignore | 7 +- .sdkmanrc | 4 +- CODE_OF_CONDUCT.md | 6 + DISCLAIMER | 1 + HEADER | 16 + ISSUE_TEMPLATE.md | 16 + LICENSE | 14 + NOTICE | 18 + README.md | 32 + build.gradle | 104 +- buildSrc/build.gradle | 40 +- .../CreateReleaseDropDownTask.groovy | 18 + .../grails/plugin/springsecurity/Snapshot.groovy | 19 +- .../plugin/springsecurity/SoftwareVersion.groovy | 18 + .../springsecurity/SoftwareVersionSpec.groovy | 18 + etc/bin/add-license-adoc.groovy | 60 + etc/bin/add-license-css.groovy | 60 + etc/bin/add-license-gradle.groovy | 60 + etc/bin/add-license-gson.groovy | 60 + etc/bin/add-license-gsp.groovy | 68 + etc/bin/add-license-js.groovy | 60 + etc/bin/add-license-md.groovy | 57 + etc/bin/add-license-properties.groovy | 59 + etc/bin/add-license-yml.groovy | 56 + etc/bin/extract-build-artifact.sh | 48 + etc/bin/generate-build-artifact-hashes.groovy | 84 + etc/bin/test-reproducible-builds.sh | 64 + gradle-bootstrap/build.gradle | 60 + gradle-bootstrap/settings.gradle | 19 + gradle.properties | 22 +- gradle/docs-config.gradle | 66 +- gradle/examples-config.gradle | 34 +- gradle/groovydoc-config.gradle | 48 + gradle/java-config.gradle | 35 + gradle/plugin-config.gradle | 27 + gradle/publish-config.gradle | 98 + gradle/publish-root-config.gradle | 121 + gradle/rat-root-config.gradle | 57 + gradle/reproducible-config.gradle | 32 + gradle/test-config.gradle | 35 + licenses/LICENSE-MIT.txt | 21 + plugin-acl/README.md | 16 + plugin-acl/docs/build.gradle | 24 +- plugin-acl/docs/src/docs/AclUtilService.adoc | 19 + .../src/docs/AclUtilService/addPermission.adoc | 19 + .../docs/src/docs/AclUtilService/changeOwner.adoc | 19 + .../docs/src/docs/AclUtilService/deleteAcl.adoc | 19 + .../src/docs/AclUtilService/deletePermission.adoc | 19 + .../src/docs/AclUtilService/hasPermission.adoc | 19 + .../docs/src/docs/AclUtilService/readAcl.adoc | 19 + plugin-acl/docs/src/docs/Scripts.adoc | 19 + .../src/docs/Scripts/s2-create-acl-domains.adoc | 19 + plugin-acl/docs/src/docs/TagLibraries.adoc | 19 + .../docs/src/docs/TagLibraries/notPermitted.adoc | 19 + .../docs/src/docs/TagLibraries/permitted.adoc | 19 + plugin-acl/docs/src/docs/code/.gitignore | 11 - plugin-acl/docs/src/docs/code/build.gradle | 60 - plugin-acl/docs/src/docs/code/gradle.properties | 3 - .../docs/code/gradle/wrapper/gradle-wrapper.jar | Bin 52818 -> 0 bytes .../code/gradle/wrapper/gradle-wrapper.properties | 6 - plugin-acl/docs/src/docs/code/gradlew | 160 - plugin-acl/docs/src/docs/code/gradlew.bat | 90 - .../assets/images/apple-touch-icon-retina.png | Bin 14986 -> 0 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 5434 -> 0 bytes .../docs/code/grails-app/assets/images/favicon.ico | Bin 10134 -> 0 bytes .../assets/images/grails-cupsonly-logo-white.svg | 26 - .../grails-app/assets/images/skin/database_add.png | Bin 658 -> 0 bytes .../assets/images/skin/database_delete.png | Bin 659 -> 0 bytes .../assets/images/skin/database_edit.png | Bin 767 -> 0 bytes .../assets/images/skin/database_save.png | Bin 755 -> 0 bytes .../assets/images/skin/database_table.png | Bin 726 -> 0 bytes .../grails-app/assets/images/skin/exclamation.png | Bin 701 -> 0 bytes .../code/grails-app/assets/images/skin/house.png | Bin 806 -> 0 bytes .../grails-app/assets/images/skin/information.png | Bin 778 -> 0 bytes .../code/grails-app/assets/images/skin/shadow.jpg | Bin 300 -> 0 bytes .../grails-app/assets/images/skin/sorted_asc.gif | Bin 835 -> 0 bytes .../grails-app/assets/images/skin/sorted_desc.gif | Bin 834 -> 0 bytes .../docs/code/grails-app/assets/images/spinner.gif | Bin 2037 -> 0 bytes .../grails-app/assets/javascripts/application.js | 21 - .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 15 - .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../code/grails-app/assets/stylesheets/errors.css | 109 - .../code/grails-app/assets/stylesheets/grails.css | 1060 -- .../code/grails-app/assets/stylesheets/main.css | 574 - .../code/grails-app/assets/stylesheets/mobile.css | 82 - .../src/docs/code/grails-app/conf/application.yml | 136 - .../src/docs/code/grails-app/conf/logback.groovy | 36 - .../code/grails-app/conf/spring/resources.groovy | 3 - .../grails-app/controllers/demo/UrlMappings.groovy | 16 - .../plugin/springsecurity/acl/AclClass.groovy | 20 - .../plugin/springsecurity/acl/AclEntry.groovy | 28 - .../springsecurity/acl/AclObjectIdentity.groovy | 24 - .../grails/plugin/springsecurity/acl/AclSid.groovy | 21 - .../docs/code/grails-app/i18n/messages.properties | 56 - .../code/grails-app/i18n/messages_cs_CZ.properties | 55 - .../code/grails-app/i18n/messages_da.properties | 56 - .../code/grails-app/i18n/messages_de.properties | 55 - .../code/grails-app/i18n/messages_es.properties | 55 - .../code/grails-app/i18n/messages_fr.properties | 19 - .../code/grails-app/i18n/messages_it.properties | 55 - .../code/grails-app/i18n/messages_ja.properties | 55 - .../code/grails-app/i18n/messages_nb.properties | 56 - .../code/grails-app/i18n/messages_nl.properties | 55 - .../code/grails-app/i18n/messages_pl.properties | 59 - .../code/grails-app/i18n/messages_pt_BR.properties | 59 - .../code/grails-app/i18n/messages_pt_PT.properties | 34 - .../code/grails-app/i18n/messages_ru.properties | 31 - .../code/grails-app/i18n/messages_sv.properties | 55 - .../code/grails-app/i18n/messages_th.properties | 55 - .../code/grails-app/i18n/messages_zh_CN.properties | 18 - .../code/grails-app/init/demo/Application.groovy | 10 - .../code/grails-app/init/demo/BootStrap.groovy | 9 - .../docs/src/docs/code/grails-app/views/error.gsp | 31 - .../docs/src/docs/code/grails-app/views/index.gsp | 79 - .../docs/code/grails-app/views/layouts/main.gsp | 51 - .../src/docs/code/grails-app/views/notFound.gsp | 14 - plugin-acl/docs/src/docs/code/grails-wrapper.jar | Bin 5463 -> 0 bytes plugin-acl/docs/src/docs/code/grailsw | 151 - plugin-acl/docs/src/docs/code/grailsw.bat | 89 - plugin-acl/docs/src/docs/code/settings.gradle | 1 - plugin-acl/docs/src/docs/history.adoc | 19 + plugin-acl/docs/src/docs/history/authors.adoc | 19 + plugin-acl/docs/src/docs/history/previouswork.adoc | 19 + plugin-acl/docs/src/docs/index.adoc | 19 + plugin-acl/docs/src/docs/installing.adoc | 19 + .../docs/src/docs/installing/distribution.adoc | 19 + plugin-acl/docs/src/docs/installing/snapshots.adoc | 19 + plugin-acl/docs/src/docs/introduction.adoc | 19 + plugin-acl/docs/src/docs/sampleApp.adoc | 19 + plugin-acl/docs/src/docs/tutorial.adoc | 19 + plugin-acl/docs/src/docs/usage.adoc | 19 + plugin-acl/docs/src/docs/usage/acls.adoc | 19 + plugin-acl/docs/src/docs/usage/configuration.adoc | 19 + .../docs/src/docs/usage/customPermissions.adoc | 19 + plugin-acl/docs/src/docs/usage/domainClasses.adoc | 116 +- plugin-acl/docs/src/docs/usage/runAs.adoc | 19 + plugin-acl/docs/src/docs/usage/serviceMethods.adoc | 19 + .../examples/functional-test-app/build.gradle | 22 + .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback.xml | 28 +- .../grails-app/conf/spring/resources.groovy | 19 + .../com/testacl/ErrorsController.groovy | 19 + .../com/testacl/ReportController.groovy | 19 + .../com/testacl/SecureController.groovy | 19 + .../com/testacl/TagLibTestController.groovy | 19 + .../com/testacl/TestDataController.groovy | 19 + .../controllers/com/testacl/UrlMappings.groovy | 19 + .../grails-app/domain/com/testacl/Report.groovy | 19 + .../grails-app/domain/com/testacl/Role.groovy | 19 + .../grails-app/domain/com/testacl/User.groovy | 19 + .../grails-app/domain/com/testacl/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/init/com/testacl/Application.groovy | 19 + .../grails-app/init/com/testacl/BootStrap.groovy | 19 + .../services/com/testacl/ReportService.groovy | 19 + .../services/com/testacl/TestDataService.groovy | 19 + .../functional-test-app/grails-app/views/error.gsp | 18 + .../grails-app/views/errors/error403.gsp | 18 + .../grails-app/views/errors/error404.gsp | 18 + .../functional-test-app/grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/application.gsp | 18 + .../grails-app/views/report/create.gsp | 18 + .../grails-app/views/report/edit.gsp | 18 + .../grails-app/views/report/grant.gsp | 18 + .../grails-app/views/report/list.gsp | 18 + .../grails-app/views/report/show.gsp | 18 + .../grails-app/views/tagLibTest/test.gsp | 18 + .../groovy/pages/EditReportPage.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../groovy/pages/ListReportPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/ReportGrantPage.groovy | 19 + .../groovy/pages/ScaffoldPage.groovy | 19 + .../groovy/pages/ShowReportPage.groovy | 19 + .../groovy/test/AbstractSecuritySpec.groovy | 19 + .../groovy/test/AdminFunctionalSpec.groovy | 19 + .../groovy/test/User1FunctionalSpec.groovy | 19 + .../groovy/test/User2FunctionalSpec.groovy | 19 + .../com/testacl/UserPasswordEncoderListener.groovy | 19 + .../examples/integration-test-app/build.gradle | 29 +- .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback.xml | 24 +- .../grails-app/conf/spring/resources.groovy | 19 + .../plugin/springsecurity/acl/UrlMappings.groovy | 19 + .../grails-app/domain/test/Report.groovy | 26 +- .../grails-app/i18n/messages.properties | 18 + .../init/integration/test/app/Application.groovy | 19 + .../services/test/TestClassAnnotatedService.groovy | 26 +- .../test/TestGrailsAnnotatedService.groovy | 26 +- .../services/test/TestRunAsService.groovy | 26 +- .../services/test/TestSecureService.groovy | 26 +- .../test/TestSpringAnnotatedService.groovy | 26 +- .../test/TestStaticConfiguredService.groovy | 26 +- .../acl/AbstractAclMappedServiceSpec.groovy | 26 +- .../springsecurity/acl/AbstractAclSpec.groovy | 26 +- .../acl/AbstractIntegrationSpec.groovy | 26 +- .../springsecurity/acl/AclServiceSpec.groovy | 26 +- .../springsecurity/acl/AclUtilServiceSpec.groovy | 26 +- .../plugin/springsecurity/acl/RunAsSpec.groovy | 27 +- .../acl/TestClassAnnotatedServiceSpec.groovy | 26 +- .../acl/TestGrailsAnnotatedServiceSpec.groovy | 29 +- .../acl/TestSpringAnnotatedServiceSpec.groovy | 27 +- .../acl/TestStaticConfiguredServiceSpec.groovy | 27 +- .../acl/jdbc/GormAclLookupStrategySpec.groovy | 27 +- .../src/main/groovy/test/TestService.groovy | 26 +- plugin-acl/plugin/build.gradle | 30 +- .../conf/DefaultAclSecurityConfig.groovy | 26 +- plugin-acl/plugin/grails-app/conf/application.yml | 15 + .../plugin/springsecurity/acl/AclClass.groovy | 26 +- .../plugin/springsecurity/acl/AclEntry.groovy | 26 +- .../springsecurity/acl/AclObjectIdentity.groovy | 26 +- .../grails/plugin/springsecurity/acl/AclSid.groovy | 26 +- .../plugin/springsecurity/acl/Application.groovy | 14 - .../springsecurity/acl/AclClassGormService.groovy | 19 + .../springsecurity/acl/AclEntryGormService.groovy | 19 + .../acl/AclObjectIdentityGormService.groovy | 19 + .../plugin/springsecurity/acl/AclService.groovy | 26 +- .../springsecurity/acl/AclSidGormService.groovy | 19 + .../springsecurity/acl/AclUtilService.groovy | 26 +- .../springsecurity/acl/SecurityAclTagLib.groovy | 26 +- .../acl/AbstractAclObjectIdentity.groovy | 26 +- .../springsecurity/acl/AclAutoProxyCreator.groovy | 26 +- .../acl/SpringSecurityAclGrailsPlugin.groovy | 26 +- .../plugin/springsecurity/acl/WarnErros.groovy | 19 + .../acl/access/GroovyAwareAclVoter.groovy | 26 +- ...reDelegatingMethodSecurityMetadataSource.groovy | 26 +- .../SecuredAnnotationSecurityMetadataSource.groovy | 26 +- ...erviceStaticMethodSecurityMetadataSource.groovy | 26 +- .../springsecurity/acl/annotation/AclVoter.java | 26 +- .../springsecurity/acl/annotation/AclVoters.java | 26 +- .../acl/cache/SpringAclCacheFactoryBean.groovy | 26 +- .../acl/domain/NullAclAuditLogger.groovy | 26 +- .../acl/jdbc/GormAclLookupStrategy.groovy | 26 +- .../GormObjectIdentityRetrievalStrategy.groovy | 26 +- ...ectIdentityRetrievalStrategyAndGenerator.groovy | 19 + .../springsecurity/acl/model/StubAclParent.groovy | 26 +- .../springsecurity/acl/util/ProxyUtils.groovy | 26 +- .../src/main/scripts/s2-create-acl-domains.groovy | 26 +- .../plugin/src/main/templates/_AclClass.groovy | 19 + .../plugin/src/main/templates/_AclEntry.groovy | 19 + .../src/main/templates/_AclObjectIdentity.groovy | 19 + .../plugin/src/main/templates/_AclSid.groovy | 19 + plugin-cas/README.md | 16 + plugin-cas/docs/build.gradle | 24 +- plugin-cas/docs/src/docs/configuration.adoc | 19 + plugin-cas/docs/src/docs/history.adoc | 19 + plugin-cas/docs/src/docs/index.adoc | 19 + plugin-cas/docs/src/docs/introduction.adoc | 19 + plugin-cas/docs/src/docs/usage.adoc | 19 + plugin-cas/examples/README.md | 16 + .../spring-security-cas-test1/build.gradle | 34 +- .../assets/images/grails-cupsonly-logo-white.svg | 2 +- .../grails-app/assets/javascripts/application.js | 24 +- .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 23 +- .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../grails-app/assets/stylesheets/errors.css | 44 +- .../grails-app/assets/stylesheets/grails.css | 1113 +- .../grails-app/assets/stylesheets/main.css | 574 - .../grails-app/assets/stylesheets/mobile.css | 82 - .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback.xml | 24 +- .../spring/security/cas/SecureController.groovy | 19 + .../spring/security/cas/UrlMappings.groovy | 19 + .../grails-app/domain/com/test/Role.groovy | 19 + .../grails-app/domain/com/test/User.groovy | 19 + .../grails-app/domain/com/test/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/i18n/messages_cs_CZ.properties | 18 + .../grails-app/i18n/messages_da.properties | 18 + .../grails-app/i18n/messages_de.properties | 18 + .../grails-app/i18n/messages_es.properties | 18 + .../grails-app/i18n/messages_fr.properties | 18 + .../grails-app/i18n/messages_it.properties | 18 + .../grails-app/i18n/messages_ja.properties | 18 + .../grails-app/i18n/messages_nb.properties | 18 + .../grails-app/i18n/messages_nl.properties | 18 + .../grails-app/i18n/messages_pl.properties | 18 + .../grails-app/i18n/messages_pt_BR.properties | 18 + .../grails-app/i18n/messages_pt_PT.properties | 18 + .../grails-app/i18n/messages_ru.properties | 18 + .../grails-app/i18n/messages_sv.properties | 18 + .../grails-app/i18n/messages_th.properties | 18 + .../grails-app/i18n/messages_zh_CN.properties | 18 + .../spring/security/cas/test/Application.groovy | 19 + .../init/spring/security/cas/test/BootStrap.groovy | 19 + .../grails-app/views/error.gsp | 18 + .../grails-app/views/index.gsp | 113 +- .../grails-app/views/layouts/main.gsp | 54 +- .../grails-app/views/notFound.gsp | 18 + plugin-cas/plugin/build.gradle | 38 +- .../conf/DefaultCasSecurityConfig.groovy | 26 +- plugin-cas/plugin/grails-app/conf/application.yml | 15 + plugin-cas/plugin/grails-app/conf/logback.xml | 24 +- .../plugin/springsecurity/cas/Application.groovy | 29 - .../cas/NullProxyGrantingTicketStorage.groovy | 26 +- .../cas/SpringSecurityCasGrailsPlugin.groovy | 26 +- plugin-core/docs/build.gradle | 24 +- plugin-core/docs/src/docs/authentication.adoc | 19 + plugin-core/docs/src/docs/authentication/ajax.adoc | 19 + .../docs/authentication/basicAndDigestAuth.adoc | 19 + .../src/docs/authentication/rememberMeCookie.adoc | 19 + plugin-core/docs/src/docs/authentication/x509.adoc | 19 + .../docs/src/docs/authenticationProviders.adoc | 19 + plugin-core/docs/src/docs/channelSecurity.adoc | 19 + plugin-core/docs/src/docs/code/README.md | 3 - .../src/docs/code/s2-quickstart-old/.gitignore | 11 - .../src/docs/code/s2-quickstart-old/build.gradle | 64 - .../docs/code/s2-quickstart-old/gradle.properties | 2 - .../gradle/wrapper/gradle-wrapper.jar | Bin 52818 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - .../docs/src/docs/code/s2-quickstart-old/gradlew | 160 - .../src/docs/code/s2-quickstart-old/gradlew.bat | 90 - .../assets/images/apple-touch-icon-retina.png | Bin 14986 -> 0 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 5434 -> 0 bytes .../grails-app/assets/images/favicon.ico | Bin 10134 -> 0 bytes .../assets/images/grails-cupsonly-logo-white.svg | 26 - .../grails-app/assets/images/skin/database_add.png | Bin 658 -> 0 bytes .../assets/images/skin/database_delete.png | Bin 659 -> 0 bytes .../assets/images/skin/database_edit.png | Bin 767 -> 0 bytes .../assets/images/skin/database_save.png | Bin 755 -> 0 bytes .../assets/images/skin/database_table.png | Bin 726 -> 0 bytes .../grails-app/assets/images/skin/exclamation.png | Bin 701 -> 0 bytes .../grails-app/assets/images/skin/house.png | Bin 806 -> 0 bytes .../grails-app/assets/images/skin/information.png | Bin 778 -> 0 bytes .../grails-app/assets/images/skin/shadow.jpg | Bin 300 -> 0 bytes .../grails-app/assets/images/skin/sorted_asc.gif | Bin 835 -> 0 bytes .../grails-app/assets/images/skin/sorted_desc.gif | Bin 834 -> 0 bytes .../grails-app/assets/images/spinner.gif | Bin 2037 -> 0 bytes .../grails-app/assets/javascripts/application.js | 21 - .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 15 - .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../grails-app/assets/stylesheets/errors.css | 109 - .../grails-app/assets/stylesheets/grails.css | 1059 -- .../grails-app/assets/stylesheets/main.css | 574 - .../grails-app/assets/stylesheets/mobile.css | 82 - .../grails-app/conf/application.groovy | 28 - .../grails-app/conf/application.yml | 133 - .../grails-app/conf/logback.groovy | 36 - .../grails-app/conf/spring/resources.groovy | 3 - .../com/mycompany/myapp/UrlMappings.groovy | 16 - .../domain/com/mycompany/myapp/Role.groovy | 23 - .../domain/com/mycompany/myapp/User.groovy | 52 - .../domain/com/mycompany/myapp/UserRole.groovy | 88 - .../grails-app/i18n/messages.properties | 56 - .../grails-app/i18n/messages_cs_CZ.properties | 55 - .../grails-app/i18n/messages_da.properties | 56 - .../grails-app/i18n/messages_de.properties | 55 - .../grails-app/i18n/messages_es.properties | 55 - .../grails-app/i18n/messages_fr.properties | 19 - .../grails-app/i18n/messages_it.properties | 55 - .../grails-app/i18n/messages_ja.properties | 55 - .../grails-app/i18n/messages_nb.properties | 56 - .../grails-app/i18n/messages_nl.properties | 55 - .../grails-app/i18n/messages_pl.properties | 59 - .../grails-app/i18n/messages_pt_BR.properties | 59 - .../grails-app/i18n/messages_pt_PT.properties | 34 - .../grails-app/i18n/messages_ru.properties | 31 - .../grails-app/i18n/messages_sv.properties | 55 - .../grails-app/i18n/messages_th.properties | 55 - .../grails-app/i18n/messages_zh_CN.properties | 18 - .../init/com/mycompany/myapp/Application.groovy | 10 - .../init/com/mycompany/myapp/BootStrap.groovy | 9 - .../s2-quickstart-old/grails-app/views/error.gsp | 31 - .../s2-quickstart-old/grails-app/views/index.gsp | 79 - .../grails-app/views/layouts/main.gsp | 51 - .../grails-app/views/notFound.gsp | 14 - .../docs/code/s2-quickstart-old/grails-wrapper.jar | Bin 5463 -> 0 bytes .../docs/src/docs/code/s2-quickstart-old/grailsw | 151 - .../src/docs/code/s2-quickstart-old/grailsw.bat | 89 - .../docs/code/s2-quickstart-old/settings.gradle | 1 - .../docs/code/s2-quickstart-requestmap/.gitignore | 11 - .../code/s2-quickstart-requestmap/build.gradle | 64 - .../s2-quickstart-requestmap/gradle.properties | 2 - .../gradle/wrapper/gradle-wrapper.jar | Bin 52818 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - .../src/docs/code/s2-quickstart-requestmap/gradlew | 160 - .../docs/code/s2-quickstart-requestmap/gradlew.bat | 90 - .../assets/images/apple-touch-icon-retina.png | Bin 14986 -> 0 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 5434 -> 0 bytes .../grails-app/assets/images/favicon.ico | Bin 10134 -> 0 bytes .../assets/images/grails-cupsonly-logo-white.svg | 26 - .../grails-app/assets/images/skin/database_add.png | Bin 658 -> 0 bytes .../assets/images/skin/database_delete.png | Bin 659 -> 0 bytes .../assets/images/skin/database_edit.png | Bin 767 -> 0 bytes .../assets/images/skin/database_save.png | Bin 755 -> 0 bytes .../assets/images/skin/database_table.png | Bin 726 -> 0 bytes .../grails-app/assets/images/skin/exclamation.png | Bin 701 -> 0 bytes .../grails-app/assets/images/skin/house.png | Bin 806 -> 0 bytes .../grails-app/assets/images/skin/information.png | Bin 778 -> 0 bytes .../grails-app/assets/images/skin/shadow.jpg | Bin 300 -> 0 bytes .../grails-app/assets/images/skin/sorted_asc.gif | Bin 835 -> 0 bytes .../grails-app/assets/images/skin/sorted_desc.gif | Bin 834 -> 0 bytes .../grails-app/assets/images/spinner.gif | Bin 2037 -> 0 bytes .../grails-app/assets/javascripts/application.js | 21 - .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 15 - .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../grails-app/assets/stylesheets/errors.css | 109 - .../grails-app/assets/stylesheets/grails.css | 1059 -- .../grails-app/assets/stylesheets/main.css | 574 - .../grails-app/assets/stylesheets/mobile.css | 82 - .../grails-app/conf/application.groovy | 30 - .../grails-app/conf/application.yml | 133 - .../grails-app/conf/logback.groovy | 36 - .../grails-app/conf/spring/resources.groovy | 5 - .../com/mycompany/myapp/UrlMappings.groovy | 16 - .../domain/com/mycompany/myapp/RequestMap.groovy | 29 - .../domain/com/mycompany/myapp/Role.groovy | 23 - .../domain/com/mycompany/myapp/User.groovy | 33 - .../domain/com/mycompany/myapp/UserRole.groovy | 88 - .../grails-app/i18n/messages.properties | 56 - .../grails-app/i18n/messages_cs_CZ.properties | 55 - .../grails-app/i18n/messages_da.properties | 56 - .../grails-app/i18n/messages_de.properties | 55 - .../grails-app/i18n/messages_es.properties | 55 - .../grails-app/i18n/messages_fr.properties | 19 - .../grails-app/i18n/messages_it.properties | 55 - .../grails-app/i18n/messages_ja.properties | 55 - .../grails-app/i18n/messages_nb.properties | 56 - .../grails-app/i18n/messages_nl.properties | 55 - .../grails-app/i18n/messages_pl.properties | 59 - .../grails-app/i18n/messages_pt_BR.properties | 59 - .../grails-app/i18n/messages_pt_PT.properties | 34 - .../grails-app/i18n/messages_ru.properties | 31 - .../grails-app/i18n/messages_sv.properties | 55 - .../grails-app/i18n/messages_th.properties | 55 - .../grails-app/i18n/messages_zh_CN.properties | 18 - .../init/com/mycompany/myapp/Application.groovy | 10 - .../init/com/mycompany/myapp/BootStrap.groovy | 9 - .../grails-app/views/error.gsp | 31 - .../grails-app/views/index.gsp | 79 - .../grails-app/views/layouts/main.gsp | 51 - .../grails-app/views/notFound.gsp | 14 - .../s2-quickstart-requestmap/grails-wrapper.jar | Bin 5463 -> 0 bytes .../src/docs/code/s2-quickstart-requestmap/grailsw | 151 - .../docs/code/s2-quickstart-requestmap/grailsw.bat | 89 - .../code/s2-quickstart-requestmap/settings.gradle | 1 - .../myapp/UserPasswordEncoderListener.groovy | 39 - .../docs/code/s2-quickstart-rolegroup/.gitignore | 11 - .../docs/code/s2-quickstart-rolegroup/build.gradle | 62 - .../code/s2-quickstart-rolegroup/gradle.properties | 2 - .../gradle/wrapper/gradle-wrapper.jar | Bin 52818 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - .../src/docs/code/s2-quickstart-rolegroup/gradlew | 160 - .../docs/code/s2-quickstart-rolegroup/gradlew.bat | 90 - .../assets/images/apple-touch-icon-retina.png | Bin 14986 -> 0 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 5434 -> 0 bytes .../grails-app/assets/images/favicon.ico | Bin 10134 -> 0 bytes .../assets/images/grails-cupsonly-logo-white.svg | 26 - .../grails-app/assets/images/skin/database_add.png | Bin 658 -> 0 bytes .../assets/images/skin/database_delete.png | Bin 659 -> 0 bytes .../assets/images/skin/database_edit.png | Bin 767 -> 0 bytes .../assets/images/skin/database_save.png | Bin 755 -> 0 bytes .../assets/images/skin/database_table.png | Bin 726 -> 0 bytes .../grails-app/assets/images/skin/exclamation.png | Bin 701 -> 0 bytes .../grails-app/assets/images/skin/house.png | Bin 806 -> 0 bytes .../grails-app/assets/images/skin/information.png | Bin 778 -> 0 bytes .../grails-app/assets/images/skin/shadow.jpg | Bin 300 -> 0 bytes .../grails-app/assets/images/skin/sorted_asc.gif | Bin 835 -> 0 bytes .../grails-app/assets/images/skin/sorted_desc.gif | Bin 834 -> 0 bytes .../grails-app/assets/images/spinner.gif | Bin 2037 -> 0 bytes .../grails-app/assets/javascripts/application.js | 21 - .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 15 - .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../grails-app/assets/stylesheets/errors.css | 109 - .../grails-app/assets/stylesheets/grails.css | 1059 -- .../grails-app/assets/stylesheets/main.css | 574 - .../grails-app/assets/stylesheets/mobile.css | 82 - .../grails-app/conf/application.groovy | 30 - .../grails-app/conf/application.yml | 133 - .../grails-app/conf/logback.groovy | 36 - .../grails-app/conf/spring/resources.groovy | 8 - .../com/mycompany/myapp/UrlMappings.groovy | 16 - .../domain/com/mycompany/myapp/Role.groovy | 23 - .../domain/com/mycompany/myapp/RoleGroup.groovy | 27 - .../com/mycompany/myapp/RoleGroupRole.groovy | 88 - .../domain/com/mycompany/myapp/User.groovy | 35 - .../domain/com/mycompany/myapp/UserRole.groovy | 88 - .../com/mycompany/myapp/UserRoleGroup.groovy | 87 - .../grails-app/i18n/messages.properties | 56 - .../grails-app/i18n/messages_cs_CZ.properties | 55 - .../grails-app/i18n/messages_da.properties | 56 - .../grails-app/i18n/messages_de.properties | 55 - .../grails-app/i18n/messages_es.properties | 55 - .../grails-app/i18n/messages_fr.properties | 19 - .../grails-app/i18n/messages_it.properties | 55 - .../grails-app/i18n/messages_ja.properties | 55 - .../grails-app/i18n/messages_nb.properties | 56 - .../grails-app/i18n/messages_nl.properties | 55 - .../grails-app/i18n/messages_pl.properties | 59 - .../grails-app/i18n/messages_pt_BR.properties | 59 - .../grails-app/i18n/messages_pt_PT.properties | 34 - .../grails-app/i18n/messages_ru.properties | 31 - .../grails-app/i18n/messages_sv.properties | 55 - .../grails-app/i18n/messages_th.properties | 55 - .../grails-app/i18n/messages_zh_CN.properties | 18 - .../init/com/mycompany/myapp/Application.groovy | 10 - .../init/com/mycompany/myapp/BootStrap.groovy | 9 - .../grails-app/views/error.gsp | 31 - .../grails-app/views/index.gsp | 79 - .../grails-app/views/layouts/main.gsp | 51 - .../grails-app/views/notFound.gsp | 14 - .../s2-quickstart-rolegroup/grails-wrapper.jar | Bin 5463 -> 0 bytes .../src/docs/code/s2-quickstart-rolegroup/grailsw | 151 - .../docs/code/s2-quickstart-rolegroup/grailsw.bat | 89 - .../code/s2-quickstart-rolegroup/settings.gradle | 1 - .../myapp/UserPasswordEncoderListener.groovy | 42 - .../docs/src/docs/code/s2-quickstart/.gitignore | 11 - .../docs/src/docs/code/s2-quickstart/build.gradle | 123 - .../src/docs/code/s2-quickstart/gradle.properties | 9 - .../gradle/wrapper/gradle-wrapper.jar | Bin 52818 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - .../docs/src/docs/code/s2-quickstart/gradlew | 185 - .../docs/src/docs/code/s2-quickstart/gradlew.bat | 89 - .../assets/images/apple-touch-icon-retina.png | Bin 14986 -> 0 bytes .../grails-app/assets/images/apple-touch-icon.png | Bin 5434 -> 0 bytes .../grails-app/assets/images/favicon.ico | Bin 10134 -> 0 bytes .../assets/images/grails-cupsonly-logo-white.svg | 26 - .../grails-app/assets/images/skin/database_add.png | Bin 658 -> 0 bytes .../assets/images/skin/database_delete.png | Bin 659 -> 0 bytes .../assets/images/skin/database_edit.png | Bin 767 -> 0 bytes .../assets/images/skin/database_save.png | Bin 755 -> 0 bytes .../assets/images/skin/database_table.png | Bin 726 -> 0 bytes .../grails-app/assets/images/skin/exclamation.png | Bin 701 -> 0 bytes .../grails-app/assets/images/skin/house.png | Bin 806 -> 0 bytes .../grails-app/assets/images/skin/information.png | Bin 778 -> 0 bytes .../grails-app/assets/images/skin/shadow.jpg | Bin 300 -> 0 bytes .../grails-app/assets/images/skin/sorted_asc.gif | Bin 835 -> 0 bytes .../grails-app/assets/images/skin/sorted_desc.gif | Bin 834 -> 0 bytes .../grails-app/assets/images/spinner.gif | Bin 2037 -> 0 bytes .../grails-app/assets/javascripts/application.js | 21 - .../grails-app/assets/javascripts/bootstrap.js | 2363 --- .../assets/javascripts/jquery-2.2.0.min.js | 4 - .../grails-app/assets/stylesheets/application.css | 15 - .../grails-app/assets/stylesheets/bootstrap.css | 6760 -------- .../grails-app/assets/stylesheets/errors.css | 109 - .../grails-app/assets/stylesheets/grails.css | 1059 -- .../grails-app/assets/stylesheets/main.css | 574 - .../grails-app/assets/stylesheets/mobile.css | 82 - .../grails-app/conf/application.groovy | 26 - .../s2-quickstart/grails-app/conf/application.yml | 133 - .../s2-quickstart/grails-app/conf/logback.groovy | 36 - .../grails-app/conf/spring/resources.groovy | 5 - .../com/mycompany/myapp/SecureController.groovy | 27 - .../com/mycompany/myapp/UrlMappings.groovy | 16 - .../domain/com/mycompany/myapp/Role.groovy | 23 - .../domain/com/mycompany/myapp/User.groovy | 33 - .../domain/com/mycompany/myapp/UserRole.groovy | 88 - .../grails-app/i18n/messages.properties | 56 - .../grails-app/i18n/messages_cs_CZ.properties | 55 - .../grails-app/i18n/messages_da.properties | 56 - .../grails-app/i18n/messages_de.properties | 55 - .../grails-app/i18n/messages_es.properties | 55 - .../grails-app/i18n/messages_fr.properties | 19 - .../grails-app/i18n/messages_it.properties | 55 - .../grails-app/i18n/messages_ja.properties | 55 - .../grails-app/i18n/messages_nb.properties | 56 - .../grails-app/i18n/messages_nl.properties | 55 - .../grails-app/i18n/messages_pl.properties | 59 - .../grails-app/i18n/messages_pt_BR.properties | 59 - .../grails-app/i18n/messages_pt_PT.properties | 34 - .../grails-app/i18n/messages_ru.properties | 31 - .../grails-app/i18n/messages_sv.properties | 55 - .../grails-app/i18n/messages_th.properties | 55 - .../grails-app/i18n/messages_zh_CN.properties | 18 - .../init/com/mycompany/myapp/Application.groovy | 10 - .../init/com/mycompany/myapp/BootStrap.groovy | 27 - .../code/s2-quickstart/grails-app/views/error.gsp | 31 - .../code/s2-quickstart/grails-app/views/index.gsp | 79 - .../grails-app/views/layouts/main.gsp | 51 - .../s2-quickstart/grails-app/views/notFound.gsp | 14 - .../src/docs/code/s2-quickstart/grails-wrapper.jar | Bin 5507 -> 0 bytes .../docs/src/docs/code/s2-quickstart/grailsw | 152 - .../docs/src/docs/code/s2-quickstart/grailsw.bat | 89 - .../myapp/UserPasswordEncoderListener.groovy | 39 - plugin-core/docs/src/docs/controllerMethods.adoc | 19 + plugin-core/docs/src/docs/debugging.adoc | 19 + .../docs/src/docs/domainClassProperties.adoc | 19 + plugin-core/docs/src/docs/domainClasses.adoc | 19 + .../src/docs/domainClasses/authorityClass.adoc | 43 +- .../authorityGroupAuthorityClass.adoc | 108 +- .../docs/domainClasses/authorityGroupClass.adoc | 112 +- .../docs/src/docs/domainClasses/gormAutowire.adoc | 19 + .../docs/domainClasses/personAuthorityClass.adoc | 108 +- .../domainClasses/personAuthorityGroupClass.adoc | 108 +- .../docs/src/docs/domainClasses/personClass.adoc | 53 +- .../src/docs/domainClasses/requestmapClass.adoc | 49 +- plugin-core/docs/src/docs/events.adoc | 19 + .../docs/src/docs/events/eventNotification.adoc | 19 + .../docs/events/registeringCallbackClosures.adoc | 19 + .../src/docs/events/registeringEventListener.adoc | 19 + plugin-core/docs/src/docs/examples.adoc | 19 + plugin-core/docs/src/docs/filters.adoc | 19 + plugin-core/docs/src/docs/helperClasses.adoc | 19 + .../src/docs/helperClasses/securityTagLib.adoc | 19 + .../docs/helperClasses/springSecurityService.adoc | 19 + .../docs/helperClasses/springSecurityUtils.adoc | 19 + plugin-core/docs/src/docs/hierarchicalRoles.adoc | 19 + plugin-core/docs/src/docs/i18n.adoc | 19 + plugin-core/docs/src/docs/index.adoc | 19 + plugin-core/docs/src/docs/index.tmpl | 24 +- plugin-core/docs/src/docs/introduction.adoc | 19 + .../docs/src/docs/introduction/configGroovy.adoc | 19 + .../docs/src/docs/introduction/gettingStarted.adoc | 19 + .../docs/src/docs/introduction/installation.adoc | 19 + plugin-core/docs/src/docs/ip.adoc | 19 + plugin-core/docs/src/docs/logoutHandlers.adoc | 19 + plugin-core/docs/src/docs/miscProperties.adoc | 19 + plugin-core/docs/src/docs/passwords.adoc | 19 + plugin-core/docs/src/docs/passwords/hashing.adoc | 19 + plugin-core/docs/src/docs/passwords/locking.adoc | 19 + plugin-core/docs/src/docs/passwords/salt.adoc | 19 + plugin-core/docs/src/docs/requestMappings.adoc | 19 + .../src/docs/requestMappings/configGroovyMap.adoc | 19 + .../docs/src/docs/requestMappings/expressions.adoc | 19 + .../docs/requestMappings/requestmapInstances.adoc | 19 + .../docs/requestMappings/securedAnnotations.adoc | 19 + plugin-core/docs/src/docs/scripts.adoc | 19 + .../docs/scripts/s2-create-persistent-token.adoc | 19 + .../scripts/s2-create-role-hierarchy-entry.adoc | 19 + .../docs/src/docs/scripts/s2-quickstart.adoc | 19 + plugin-core/docs/src/docs/sessionFixation.adoc | 19 + plugin-core/docs/src/docs/switchUser.adoc | 19 + plugin-core/docs/src/docs/tutorials.adoc | 19 + .../docs/tutorials/usingControllerAnnotations.adoc | 339 +- plugin-core/docs/src/docs/urlProperties.adoc | 19 + plugin-core/docs/src/docs/userDetailsService.adoc | 19 + plugin-core/docs/src/docs/voters.adoc | 19 + plugin-core/docs/src/docs/whatsNew.adoc | 19 + .../examples/functional-test-app/build.gradle | 29 +- .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback.xml | 24 +- .../grails-app/conf/spring/resources.groovy | 19 + .../grails-app/controllers/FooBarController.groovy | 19 + .../grails-app/controllers/HackController.groovy | 19 + .../controllers/IndexAnnotatedController.groovy | 19 + .../grails-app/controllers/LogoutController.groovy | 19 + .../controllers/MiscTestController.groovy | 19 + .../controllers/SecureAnnotatedController.groovy | 19 + .../SecureClassAnnotatedController.groovy | 19 + .../grails-app/controllers/SecureController.groovy | 19 + .../controllers/TestDataController.groovy | 19 + .../grails-app/controllers/UrlMappings.groovy | 19 + .../com/testapp/TestFormParamsController.groovy | 19 + .../com/testapp/TestRequestmapController.groovy | 19 + .../com/testapp/TestRoleController.groovy | 19 + .../com/testapp/TestUserController.groovy | 19 + .../controllers/inheritance/BaseController.groovy | 19 + .../inheritance/ExtendedController.groovy | 19 + .../namespaced/open/NamespacedController.groovy | 19 + .../namespaced/secure/NamespacedController.groovy | 19 + .../controllers/rest/BookController.groovy | 19 + .../controllers/rest/CustomerBaseController.groovy | 19 + .../controllers/rest/MovieController.groovy | 19 + .../domain/com/testapp/TestRequestmap.groovy | 19 + .../grails-app/domain/com/testapp/TestRole.groovy | 19 + .../grails-app/domain/com/testapp/TestUser.groovy | 19 + .../domain/com/testapp/TestUserTestRole.groovy | 19 + .../grails-app/domain/rest/Book.groovy | 19 + .../grails-app/domain/rest/Customer.groovy | 19 + .../grails-app/domain/rest/Movie.groovy | 19 + .../grails-app/domain/rest/Stuff.groovy | 19 + .../grails-app/domain/rest/Thing.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../init/functional/test/app/Application.groovy | 19 + .../init/functional/test/app/BootStrap.groovy | 19 + .../services/com/testapp/TestDataService.groovy | 19 + .../functional-test-app/grails-app/views/error.gsp | 18 + .../grails-app/views/error401.gsp | 18 + .../grails-app/views/error403.gsp | 18 + .../grails-app/views/error404.gsp | 18 + .../functional-test-app/grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/main.gsp | 18 + .../grails-app/views/logout/index.gsp | 18 + .../grails-app/views/miscTest/test.gsp | 18 + .../grails-app/views/testRequestmap/_form.gsp | 18 + .../grails-app/views/testRequestmap/create.gsp | 18 + .../grails-app/views/testRequestmap/edit.gsp | 18 + .../grails-app/views/testRequestmap/list.gsp | 18 + .../grails-app/views/testRequestmap/show.gsp | 18 + .../grails-app/views/testRole/_form.gsp | 18 + .../grails-app/views/testRole/create.gsp | 18 + .../grails-app/views/testRole/edit.gsp | 18 + .../grails-app/views/testRole/list.gsp | 18 + .../grails-app/views/testRole/show.gsp | 18 + .../grails-app/views/testUser/create.gsp | 18 + .../grails-app/views/testUser/edit.gsp | 18 + .../grails-app/views/testUser/list.gsp | 18 + .../grails-app/views/testUser/show.gsp | 18 + .../groovy/pages/CreatePage.groovy | 19 + .../integration-test/groovy/pages/EditPage.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/ScaffoldPage.groovy | 19 + .../integration-test/groovy/pages/ShowPage.groovy | 19 + .../pages/requestmap/CreateRequestmapPage.groovy | 19 + .../pages/requestmap/EditRequestmapPage.groovy | 19 + .../pages/requestmap/ListRequestmapPage.groovy | 19 + .../pages/requestmap/ShowRequestmapPage.groovy | 19 + .../groovy/pages/role/CreateRolePage.groovy | 19 + .../groovy/pages/role/EditRolePage.groovy | 19 + .../groovy/pages/role/ListRolePage.groovy | 19 + .../groovy/pages/role/ShowRolePage.groovy | 19 + .../groovy/pages/user/CreateUserPage.groovy | 19 + .../groovy/pages/user/EditUserPage.groovy | 19 + .../groovy/pages/user/ListUserPage.groovy | 19 + .../groovy/pages/user/ShowUserPage.groovy | 19 + .../specs/AbstractHyphenatedSecuritySpec.groovy | 19 + .../groovy/specs/AbstractSecuritySpec.groovy | 19 + .../groovy/specs/AnnotationSecuritySpec.groovy | 19 + .../groovy/specs/BCryptSpec.groovy | 19 + .../specs/BasicAuthCacheUsersSecuritySpec.groovy | 19 + .../groovy/specs/BasicAuthSecuritySpec.groovy | 19 + .../specs/CustomFilterRegistrationSpec.groovy | 19 + .../groovy/specs/DisableSpec.groovy | 19 + .../groovy/specs/HttpClientSpec.groovy | 20 +- .../groovy/specs/InheritanceSecuritySpec.groovy | 19 + .../integration-test/groovy/specs/MiscSpec.groovy | 19 + .../groovy/specs/NamespaceSecuritySpec.groovy | 19 + .../groovy/specs/RequestmapSecuritySpec.groovy | 19 + .../groovy/specs/RequestmapSpec.groovy | 19 + .../integration-test/groovy/specs/RoleSpec.groovy | 19 + .../groovy/specs/StaticSecuritySpec.groovy | 19 + .../specs/TestFormParamsControllerSpec.groovy | 19 + .../integration-test/groovy/specs/UserSpec.groovy | 19 + .../integration-test/resources/logback-test.xml | 4 +- .../com/testapp/MaintenanceModeFilter.groovy | 19 + .../testapp/TestUserPasswordEncoderListener.groovy | 19 + ...TestRequestmapFilterInvocationDefinition.groovy | 26 +- .../examples/integration-test-app/build.gradle | 29 +- .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 21 +- .../grails-app/conf/spring/resources.groovy | 19 + .../domain/test/TestPersistentLogin.groovy | 26 +- .../grails-app/domain/test/TestRequestmap.groovy | 26 +- .../grails-app/domain/test/TestRole.groovy | 26 +- .../grails-app/domain/test/TestRoleGroup.groovy | 19 + .../domain/test/TestRoleGroupRoles.groovy | 19 + .../grails-app/domain/test/TestUser.groovy | 26 +- .../grails-app/domain/test/TestUserRole.groovy | 26 +- .../domain/test/TestUserRoleGroup.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../init/integration/test/app/Application.groovy | 19 + .../test/TestPersistentLoginService.groovy | 19 + .../springsecurity/AbstractIntegrationSpec.groovy | 26 +- .../AdditionalLogoutFiltersConfiguredSpec.groovy | 28 +- .../ClosureX509PrincipalExtractorSpec.groovy | 19 + .../GormPersistentTokenRepositorySpec.groovy | 26 +- .../GormUserDetailsServiceSpec.groovy | 26 +- .../PrePostAuthenticationCheckSpec.groovy | 19 + .../ReflectionUtilsIntegrationSpec.groovy | 26 +- .../plugin/springsecurity/RoleGroupSpec.groovy | 26 +- .../springsecurity/SecurityTagLibSpec.groovy | 26 +- .../SpringSecurityServiceIntegrationSpec.groovy | 26 +- .../SpringSecurityUtilsIntegrationSpec.groovy | 26 +- .../integration-test/resources/logback-test.xml | 4 +- .../groovy/com/test/AdditionalLogoutHandler.groovy | 19 + .../grails-spring-security-group/build.gradle | 29 +- .../grails-app/conf/application.groovy | 19 +- .../grails-app/conf/application.yml | 15 + .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/demo/SecuredController.groovy | 19 + .../grails-app/controllers/demo/UrlMappings.groovy | 19 + .../grails-app/domain/demo/Role.groovy | 19 + .../grails-app/domain/demo/RoleGroup.groovy | 19 + .../grails-app/domain/demo/RoleGroupRole.groovy | 19 + .../grails-app/domain/demo/User.groovy | 19 + .../grails-app/domain/demo/UserRole.groovy | 19 + .../grails-app/domain/demo/UserRoleGroup.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/init/demo/Application.groovy | 19 + .../grails-app/views/error.gsp | 18 + .../grails-app/views/index.gsp | 18 + .../grails-app/views/notFound.gsp | 18 + .../integration-test/groovy/demo/LoginPage.groovy | 19 + .../groovy/demo/SecuredControllerSpec.groovy | 19 + .../groovy/demo/SecuredPage.groovy | 19 + .../integration-test/resources/logback-test.xml | 4 +- .../groovy/demo/UserPasswordEncoderListener.groovy | 19 + .../build.gradle | 29 +- .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/demo/SecuredController.groovy | 19 + .../grails-app/controllers/demo/UrlMappings.groovy | 19 + .../grails-app/domain/demo/Role.groovy | 19 + .../domain/demo/RoleHierarchyEntry.groovy | 19 + .../grails-app/domain/demo/User.groovy | 19 + .../grails-app/domain/demo/UserRole.groovy | 19 + .../grails-app/init/demo/Application.groovy | 19 + .../grails-app/init/demo/BootStrap.groovy | 19 + .../integration-test/groovy/demo/LoginPage.groovy | 20 +- .../groovy/demo/SecuredControllerSpec.groovy | 19 + .../groovy/demo/SecuredPage.groovy | 19 + .../integration-test/resources/logback-test.xml | 4 +- .../groovy/demo/UserPasswordEncoderListener.groovy | 19 + plugin-core/plugin/build.gradle | 32 +- .../CommandLineHelper.groovy | 19 + .../SkipBootstrap.groovy | 19 + .../grails-app/conf/DefaultSecurityConfig.groovy | 26 +- .../plugin/springsecurity/LoginController.groovy | 26 +- .../plugin/springsecurity/LogoutController.groovy | 26 +- .../i18n/spring-security-core.properties | 18 + .../i18n/spring-security-core_de.properties | 18 + .../i18n/spring-security-core_es.properties | 18 + .../i18n/spring-security-core_fr.properties | 18 + .../i18n/spring-security-core_it.properties | 18 + .../i18n/spring-security-core_ja.properties | 18 + .../i18n/spring-security-core_nb.properties | 18 + .../i18n/spring-security-core_pt_BR.properties | 18 + .../i18n/spring-security-core_ru.properties | 18 + .../i18n/spring-security-core_sv.properties | 18 + .../i18n/spring-security-core_zh_TW.properties | 18 + .../springsecurity/SpringSecurityService.groovy | 26 +- .../plugin/springsecurity/SecurityTagLib.groovy | 26 +- .../plugin/grails-app/views/layouts/main.gsp | 18 + plugin-core/plugin/grails-app/views/login/auth.gsp | 18 + .../plugin/grails-app/views/login/denied.gsp | 18 + .../plugin/springsecurity/Application.groovy | 26 +- .../plugin/springsecurity/BeanTypeResolver.groovy | 26 +- .../plugin/springsecurity/ControllerMixin.groovy | 26 +- .../plugin/springsecurity/InterceptedUrl.groovy | 26 +- .../plugin/springsecurity/ReflectionUtils.groovy | 26 +- .../springsecurity/SecurityConfigType.groovy | 26 +- .../springsecurity/SecurityEventListener.groovy | 26 +- .../springsecurity/SecurityFilterPosition.java | 29 +- .../SpringSecurityBeanFactoryPostProcessor.groovy | 26 +- .../SpringSecurityCoreGrailsPlugin.groovy | 26 +- .../springsecurity/SpringSecurityUtils.groovy | 26 +- .../access/NullAfterInvocationProvider.groovy | 26 +- .../intercept/NullAfterInvocationManager.groovy | 26 +- .../AuthenticatedVetoableDecisionManager.groovy | 26 +- .../access/vote/ClosureConfigAttribute.groovy | 26 +- .../springsecurity/access/vote/ClosureVoter.groovy | 26 +- .../springsecurity/annotation/Authorities.groovy | 26 +- .../springsecurity/annotation/Secured.groovy | 26 +- .../annotation/SecuredClosureDelegate.groovy | 26 +- .../GrailsAnonymousAuthenticationProvider.groovy | 26 +- .../GrailsAnonymousAuthenticationToken.groovy | 26 +- .../NullAuthenticationEventPublisher.groovy | 26 +- .../cache/SpringUserCacheFactoryBean.groovy | 26 +- .../DefaultPostAuthenticationChecks.groovy | 26 +- .../DefaultPreAuthenticationChecks.groovy | 26 +- .../userdetails/GormUserDetailsService.groovy | 26 +- .../springsecurity/userdetails/GrailsUser.groovy | 26 +- .../userdetails/GrailsUserDetailsService.groovy | 26 +- .../NoStackUsernameNotFoundException.groovy | 26 +- .../web/GrailsRedirectStrategy.groovy | 26 +- .../web/GrailsSecurityFilterChain.groovy | 26 +- .../web/NullFilterChainValidator.groovy | 26 +- .../web/SecurityRequestHolder.groovy | 26 +- .../web/SecurityRequestHolderFilter.groovy | 26 +- ...tContextHolderExceptionTranslationFilter.groovy | 26 +- .../web/access/AjaxAwareAccessDeniedHandler.groovy | 26 +- .../web/access/DefaultThrowableAnalyzer.groovy | 26 +- .../GrailsWebInvocationPrivilegeEvaluator.groovy | 26 +- .../expression/WebExpressionConfigAttribute.groovy | 26 +- .../access/expression/WebExpressionVoter.groovy | 26 +- .../AbstractFilterInvocationDefinition.groovy | 26 +- .../AnnotationFilterInvocationDefinition.groovy | 26 +- ...ocationSecurityMetadataSourceFactoryBean.groovy | 26 +- ...nterceptUrlMapFilterInvocationDefinition.groovy | 26 +- .../RequestmapFilterInvocationDefinition.groovy | 26 +- .../AjaxAwareAuthenticationEntryPoint.groovy | 26 +- .../AjaxAwareAuthenticationFailureHandler.groovy | 26 +- .../AjaxAwareAuthenticationSuccessHandler.groovy | 26 +- .../FilterProcessUrlRequestMatcher.groovy | 26 +- ...ailsUsernamePasswordAuthenticationFilter.groovy | 26 +- .../NullLogoutHandlerRememberMeServices.groovy | 26 +- .../logout/MutableLogoutFilter.groovy | 26 +- .../x509/ClosureX509PrincipalExtractor.groovy | 26 +- .../x509/NullAuthenticationFailureHandler.groovy | 26 +- .../x509/NullAuthenticationSuccessHandler.groovy | 26 +- .../GormPersistentTokenRepository.groovy | 26 +- .../NullSwitchUserAuthorityChanger.groovy | 26 +- .../springsecurity/web/filter/DebugFilter.groovy | 26 +- .../GrailsAnonymousAuthenticationFilter.groovy | 26 +- .../GrailsRememberMeAuthenticationFilter.groovy | 26 +- .../web/filter/HttpMethodOverrideDetector.groovy | 19 + .../web/filter/IpAddressFilter.groovy | 26 +- .../main/scripts/s2-create-persistent-token.groovy | 26 +- .../scripts/s2-create-role-hierarchy-entry.groovy | 26 +- .../plugin/src/main/scripts/s2-quickstart.groovy | 26 +- .../plugin/springsecurity/AbstractUnitSpec.groovy | 26 +- .../springsecurity/ReflectionUtilsSpec.groovy | 27 +- .../SecurityEventListenerSpec.groovy | 26 +- .../springsecurity/SecurityTagLibUnitSpec.groovy | 19 + .../plugin/springsecurity/SecurityTestUtils.groovy | 26 +- .../SpringSecurityServiceSpec.groovy | 26 +- .../springsecurity/SpringSecurityUtilsSpec.groovy | 26 +- ...AuthenticatedVetoableDecisionManagerSpec.groovy | 26 +- .../web/SecurityRequestHolderSpec.groovy | 26 +- .../access/AjaxAwareAccessDeniedHandlerSpec.groovy | 26 +- ...AnnotationFilterInvocationDefinitionSpec.groovy | 26 +- ...ionSecurityMetadataSourceFactoryBeanSpec.groovy | 26 +- ...ceptUrlMapFilterInvocationDefinitionSpec.groovy | 26 +- ...RequestmapFilterInvocationDefinitionSpec.groovy | 26 +- .../AjaxAwareAuthenticationEntryPointSpec.groovy | 26 +- ...jaxAwareAuthenticationFailureHandlerSpec.groovy | 26 +- ...jaxAwareAuthenticationSuccessHandlerSpec.groovy | 26 +- .../SecurityRequestHolderFilterSpec.groovy | 26 +- .../logout/MutableLogoutFilterSpec.groovy | 38 +- .../filter/HttpMethodOverrideDetectorSpec.groovy | 19 + .../web/filter/IpAddressFilterSpec.groovy | 26 +- .../config/http/SecurityFiltersMapper.groovy | 19 + plugin-ldap/README.md | 16 + plugin-ldap/docs/build.gradle | 24 +- plugin-ldap/docs/src/docs/configuration.adoc | 19 + plugin-ldap/docs/src/docs/index.adoc | 19 + plugin-ldap/docs/src/docs/introduction.adoc | 19 + plugin-ldap/docs/src/docs/usage.adoc | 19 + .../build.gradle | 35 +- .../classes/production/application.groovy | 18 + .../grails-app/assets/images/advancedgrails.svg | 2 +- .../grails-app/assets/images/documentation.svg | 2 +- .../assets/images/grails-cupsonly-logo-white.svg | 2 +- .../grails-app/assets/images/grails.svg | 4 +- .../grails-app/assets/images/slack.svg | 4 +- .../grails-app/assets/javascripts/application.js | 24 +- .../assets/javascripts/bootstrap.bundle.js | 6461 -------- .../assets/javascripts/bootstrap.bundle.js.map | 1 - .../assets/javascripts/bootstrap.bundle.min.js | 7 - .../assets/javascripts/bootstrap.bundle.min.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.js | 3944 ----- .../grails-app/assets/javascripts/bootstrap.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.min.js | 7 - .../assets/javascripts/bootstrap.min.js.map | 1 - .../assets/javascripts/jquery-3.3.1.min.js | 2 - .../assets/javascripts/jquery-3.3.1.min.js.map | 1 - .../grails-app/assets/javascripts/popper.min.js | 5 - .../grails-app/assets/stylesheets/application.css | 21 +- .../assets/stylesheets/bootstrap-grid.css | 1912 --- .../assets/stylesheets/bootstrap-reboot.css | 331 - .../grails-app/assets/stylesheets/bootstrap.css | 9030 ----------- .../assets/stylesheets/bootstrap.css.map | 1 - .../assets/stylesheets/bootstrap.min.css | 7 - .../assets/stylesheets/bootstrap.min.css.map | 1 - .../grails-app/assets/stylesheets/errors.css | 19 + .../grails-app/assets/stylesheets/grails.css | 19 + .../grails-app/assets/stylesheets/main.css | 19 + .../grails-app/assets/stylesheets/mobile.css | 19 + .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback-spring.xml | 20 + .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/com/test/LogoffController.groovy | 19 + .../controllers/com/test/SecureController.groovy | 19 + .../controllers/com/test/UrlMappings.groovy | 19 + .../domain/com/test/PersistentLogin.groovy | 19 + .../grails-app/domain/com/test/Role.groovy | 19 + .../grails-app/domain/com/test/User.groovy | 19 + .../grails-app/domain/com/test/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/i18n/messages_cs.properties | 18 + .../grails-app/i18n/messages_da.properties | 18 + .../grails-app/i18n/messages_de.properties | 18 + .../grails-app/i18n/messages_es.properties | 18 + .../grails-app/i18n/messages_fr.properties | 18 + .../grails-app/i18n/messages_it.properties | 18 + .../grails-app/i18n/messages_ja.properties | 18 + .../grails-app/i18n/messages_nb.properties | 18 + .../grails-app/i18n/messages_nl.properties | 18 + .../grails-app/i18n/messages_pl.properties | 18 + .../grails-app/i18n/messages_pt_BR.properties | 18 + .../grails-app/i18n/messages_pt_PT.properties | 18 + .../grails-app/i18n/messages_ru.properties | 18 + .../grails-app/i18n/messages_sk.properties | 18 + .../grails-app/i18n/messages_sv.properties | 18 + .../grails-app/i18n/messages_th.properties | 18 + .../grails-app/i18n/messages_zh_CN.properties | 18 + .../grails-app/init/com/test/Application.groovy | 19 + .../grails-app/views/error.gsp | 18 + .../grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/main.gsp | 18 + .../grails-app/views/logoff/index.gsp | 18 + .../grails-app/views/notFound.gsp | 18 + .../grails-app/views/secure/superusers.gsp | 18 + .../grails-app/views/secure/users.gsp | 18 + .../com/test/AbstractSecurityFunctionalSpec.groovy | 19 + ...omUserDetailsContextMapperFunctionalSpec.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/LogoutPage.groovy | 19 + .../groovy/pages/SecureSuperuserPage.groovy | 19 + .../groovy/pages/SecureUserPage.groovy | 19 + .../com/mycompany/myapp/MyUserDetails.groovy | 19 + .../myapp/MyUserDetailsContextMapper.groovy | 19 + .../examples/functional-test-app/build.gradle | 37 +- .../grails-app/assets/images/advancedgrails.svg | 2 +- .../grails-app/assets/images/documentation.svg | 2 +- .../assets/images/grails-cupsonly-logo-white.svg | 2 +- .../grails-app/assets/images/grails.svg | 4 +- .../grails-app/assets/images/slack.svg | 4 +- .../grails-app/assets/javascripts/application.js | 24 +- .../assets/javascripts/bootstrap.bundle.js | 6461 -------- .../assets/javascripts/bootstrap.bundle.js.map | 1 - .../assets/javascripts/bootstrap.bundle.min.js | 7 - .../assets/javascripts/bootstrap.bundle.min.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.js | 3944 ----- .../grails-app/assets/javascripts/bootstrap.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.min.js | 7 - .../assets/javascripts/bootstrap.min.js.map | 1 - .../assets/javascripts/jquery-3.3.1.min.js | 2 - .../assets/javascripts/jquery-3.3.1.min.js.map | 1 - .../grails-app/assets/javascripts/popper.min.js | 5 - .../grails-app/assets/stylesheets/application.css | 21 +- .../assets/stylesheets/bootstrap-grid.css | 1912 --- .../assets/stylesheets/bootstrap-reboot.css | 331 - .../grails-app/assets/stylesheets/bootstrap.css | 9030 ----------- .../assets/stylesheets/bootstrap.css.map | 1 - .../assets/stylesheets/bootstrap.min.css | 7 - .../assets/stylesheets/bootstrap.min.css.map | 1 - .../grails-app/assets/stylesheets/errors.css | 19 + .../grails-app/assets/stylesheets/grails.css | 19 + .../grails-app/assets/stylesheets/main.css | 19 + .../grails-app/assets/stylesheets/mobile.css | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback-spring.xml | 20 + .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/com/test/LogoutController.groovy | 19 + .../controllers/com/test/SecureController.groovy | 19 + .../controllers/com/test/UrlMappings.groovy | 19 + .../domain/com/test/PersistentLogin.groovy | 19 + .../grails-app/domain/com/test/Role.groovy | 19 + .../grails-app/domain/com/test/User.groovy | 19 + .../grails-app/domain/com/test/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/i18n/messages_cs.properties | 18 + .../grails-app/i18n/messages_da.properties | 18 + .../grails-app/i18n/messages_de.properties | 18 + .../grails-app/i18n/messages_es.properties | 18 + .../grails-app/i18n/messages_fr.properties | 18 + .../grails-app/i18n/messages_it.properties | 18 + .../grails-app/i18n/messages_ja.properties | 18 + .../grails-app/i18n/messages_nb.properties | 18 + .../grails-app/i18n/messages_nl.properties | 18 + .../grails-app/i18n/messages_pl.properties | 18 + .../grails-app/i18n/messages_pt_BR.properties | 18 + .../grails-app/i18n/messages_pt_PT.properties | 18 + .../grails-app/i18n/messages_ru.properties | 18 + .../grails-app/i18n/messages_sk.properties | 18 + .../grails-app/i18n/messages_sv.properties | 18 + .../grails-app/i18n/messages_th.properties | 18 + .../grails-app/i18n/messages_zh_CN.properties | 18 + .../grails-app/init/com/test/Application.groovy | 19 + .../grails-app/init/com/test/BootStrap.groovy | 19 + .../services/com/test/RoleService.groovy | 19 + .../services/com/test/UserRoleService.groovy | 19 + .../services/com/test/UserService.groovy | 19 + .../functional-test-app/grails-app/views/error.gsp | 18 + .../functional-test-app/grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/main.gsp | 18 + .../grails-app/views/logout/index.gsp | 18 + .../grails-app/views/notFound.gsp | 18 + .../groovy/AbstractSecurityFunctionalSpec.groovy | 19 + .../groovy/Person1FunctionalSpec.groovy | 19 + .../groovy/Person2FunctionalSpec.groovy | 19 + .../groovy/Person3FunctionalSpec.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/LogoutPage.groovy | 19 + .../groovy/pages/SecureAdminPage.groovy | 19 + .../groovy/pages/SecureFooBarPage.groovy | 19 + .../groovy/pages/SecureSuperuserPage.groovy | 19 + .../groovy/pages/SecureUserPage.groovy | 19 + .../ldap/server/TransientGrailsLdapServer.groovy | 19 + .../examples/retrieve-db-roles/build.gradle | 35 +- .../grails-app/assets/images/advancedgrails.svg | 2 +- .../grails-app/assets/images/documentation.svg | 2 +- .../assets/images/grails-cupsonly-logo-white.svg | 2 +- .../grails-app/assets/images/grails.svg | 4 +- .../grails-app/assets/images/slack.svg | 4 +- .../grails-app/assets/javascripts/application.js | 24 +- .../assets/javascripts/bootstrap.bundle.js | 6461 -------- .../assets/javascripts/bootstrap.bundle.js.map | 1 - .../assets/javascripts/bootstrap.bundle.min.js | 7 - .../assets/javascripts/bootstrap.bundle.min.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.js | 3944 ----- .../grails-app/assets/javascripts/bootstrap.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.min.js | 7 - .../assets/javascripts/bootstrap.min.js.map | 1 - .../assets/javascripts/jquery-3.3.1.min.js | 2 - .../assets/javascripts/jquery-3.3.1.min.js.map | 1 - .../grails-app/assets/javascripts/popper.min.js | 5 - .../grails-app/assets/stylesheets/application.css | 21 +- .../assets/stylesheets/bootstrap-grid.css | 1912 --- .../assets/stylesheets/bootstrap-reboot.css | 331 - .../grails-app/assets/stylesheets/bootstrap.css | 9030 ----------- .../assets/stylesheets/bootstrap.css.map | 1 - .../assets/stylesheets/bootstrap.min.css | 7 - .../assets/stylesheets/bootstrap.min.css.map | 1 - .../grails-app/assets/stylesheets/errors.css | 19 + .../grails-app/assets/stylesheets/grails.css | 19 + .../grails-app/assets/stylesheets/main.css | 19 + .../grails-app/assets/stylesheets/mobile.css | 19 + .../grails-app/conf/application.groovy | 19 + .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback-spring.xml | 24 +- .../controllers/com/test/LogoffController.groovy | 19 + .../controllers/com/test/SecureController.groovy | 19 + .../controllers/com/test/UrlMappings.groovy | 19 + .../domain/com/test/PersistentLogin.groovy | 19 + .../grails-app/domain/com/test/Role.groovy | 19 + .../grails-app/domain/com/test/User.groovy | 19 + .../grails-app/domain/com/test/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/i18n/messages_cs.properties | 18 + .../grails-app/i18n/messages_da.properties | 18 + .../grails-app/i18n/messages_de.properties | 18 + .../grails-app/i18n/messages_es.properties | 18 + .../grails-app/i18n/messages_fr.properties | 18 + .../grails-app/i18n/messages_it.properties | 18 + .../grails-app/i18n/messages_ja.properties | 18 + .../grails-app/i18n/messages_nb.properties | 18 + .../grails-app/i18n/messages_nl.properties | 18 + .../grails-app/i18n/messages_pl.properties | 18 + .../grails-app/i18n/messages_pt_BR.properties | 18 + .../grails-app/i18n/messages_pt_PT.properties | 18 + .../grails-app/i18n/messages_ru.properties | 18 + .../grails-app/i18n/messages_sk.properties | 18 + .../grails-app/i18n/messages_sv.properties | 18 + .../grails-app/i18n/messages_th.properties | 18 + .../grails-app/i18n/messages_zh_CN.properties | 18 + .../grails-app/init/com/test/Application.groovy | 19 + .../grails-app/init/com/test/BootStrap.groovy | 19 + .../services/com/test/RoleService.groovy | 19 + .../services/com/test/UserRoleService.groovy | 19 + .../services/com/test/UserService.groovy | 19 + .../retrieve-db-roles/grails-app/views/error.gsp | 18 + .../retrieve-db-roles/grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/main.gsp | 18 + .../grails-app/views/logoff/index.gsp | 18 + .../grails-app/views/notFound.gsp | 18 + .../grails-app/views/secure/superusers.gsp | 18 + .../grails-app/views/secure/users.gsp | 18 + .../com/test/AbstractSecurityFunctionalSpec.groovy | 19 + .../com/test/RetrieveDbRolesFunctionalSpec.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/LogoutPage.groovy | 19 + .../groovy/pages/SecureSuperuserPage.groovy | 19 + .../groovy/pages/SecureUserPage.groovy | 19 + .../examples/retrieve-group-roles/build.gradle | 35 +- .../classes/production/logoff/index.gsp | 18 + .../grails-app/assets/images/advancedgrails.svg | 2 +- .../grails-app/assets/images/documentation.svg | 2 +- .../assets/images/grails-cupsonly-logo-white.svg | 2 +- .../grails-app/assets/images/grails.svg | 4 +- .../grails-app/assets/images/slack.svg | 4 +- .../grails-app/assets/javascripts/application.js | 24 +- .../assets/javascripts/bootstrap.bundle.js | 6461 -------- .../assets/javascripts/bootstrap.bundle.js.map | 1 - .../assets/javascripts/bootstrap.bundle.min.js | 7 - .../assets/javascripts/bootstrap.bundle.min.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.js | 3944 ----- .../grails-app/assets/javascripts/bootstrap.js.map | 1 - .../grails-app/assets/javascripts/bootstrap.min.js | 7 - .../assets/javascripts/bootstrap.min.js.map | 1 - .../assets/javascripts/jquery-3.3.1.min.js | 2 - .../assets/javascripts/jquery-3.3.1.min.js.map | 1 - .../grails-app/assets/javascripts/popper.min.js | 5 - .../grails-app/assets/stylesheets/application.css | 21 +- .../assets/stylesheets/bootstrap-grid.css | 1912 --- .../assets/stylesheets/bootstrap-reboot.css | 331 - .../grails-app/assets/stylesheets/bootstrap.css | 9030 ----------- .../assets/stylesheets/bootstrap.css.map | 1 - .../assets/stylesheets/bootstrap.min.css | 7 - .../assets/stylesheets/bootstrap.min.css.map | 1 - .../grails-app/assets/stylesheets/errors.css | 19 + .../grails-app/assets/stylesheets/grails.css | 19 + .../grails-app/assets/stylesheets/main.css | 19 + .../grails-app/assets/stylesheets/mobile.css | 19 + .../grails-app/conf/application.groovy | 19 +- .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback-spring.xml | 20 + .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/com/test/LogoffController.groovy | 19 + .../controllers/com/test/SecureController.groovy | 19 + .../controllers/com/test/UrlMappings.groovy | 19 + .../domain/com/test/PersistentLogin.groovy | 19 + .../grails-app/domain/com/test/Role.groovy | 19 + .../grails-app/domain/com/test/User.groovy | 19 + .../grails-app/domain/com/test/UserRole.groovy | 19 + .../grails-app/i18n/messages.properties | 18 + .../grails-app/i18n/messages_cs.properties | 18 + .../grails-app/i18n/messages_da.properties | 18 + .../grails-app/i18n/messages_de.properties | 18 + .../grails-app/i18n/messages_es.properties | 18 + .../grails-app/i18n/messages_fr.properties | 18 + .../grails-app/i18n/messages_it.properties | 18 + .../grails-app/i18n/messages_ja.properties | 18 + .../grails-app/i18n/messages_nb.properties | 18 + .../grails-app/i18n/messages_nl.properties | 18 + .../grails-app/i18n/messages_pl.properties | 18 + .../grails-app/i18n/messages_pt_BR.properties | 18 + .../grails-app/i18n/messages_pt_PT.properties | 18 + .../grails-app/i18n/messages_ru.properties | 18 + .../grails-app/i18n/messages_sk.properties | 18 + .../grails-app/i18n/messages_sv.properties | 18 + .../grails-app/i18n/messages_th.properties | 18 + .../grails-app/i18n/messages_zh_CN.properties | 18 + .../grails-app/init/com/test/Application.groovy | 19 + .../grails-app/init/com/test/BootStrap.groovy | 19 + .../services/com/test/RoleService.groovy | 19 + .../services/com/test/UserRoleService.groovy | 19 + .../services/com/test/UserService.groovy | 19 + .../grails-app/views/error.gsp | 18 + .../grails-app/views/index.gsp | 18 + .../grails-app/views/layouts/main.gsp | 18 + .../grails-app/views/logoff/index.gsp | 18 + .../grails-app/views/notFound.gsp | 18 + .../grails-app/views/secure/superusers.gsp | 18 + .../grails-app/views/secure/users.gsp | 18 + .../com/test/AbstractSecurityFunctionalSpec.groovy | 19 + .../test/RetrieveGroupRolesFunctionalSpec.groovy | 19 + .../integration-test/groovy/pages/IndexPage.groovy | 19 + .../integration-test/groovy/pages/LoginPage.groovy | 19 + .../groovy/pages/LogoutPage.groovy | 19 + .../groovy/pages/SecureSuperuserPage.groovy | 19 + .../groovy/pages/SecureUserPage.groovy | 19 + plugin-ldap/plugin/build.gradle | 30 +- .../conf/DefaultLdapSecurityConfig.groovy | 26 +- plugin-ldap/plugin/grails-app/conf/application.yml | 15 + plugin-ldap/plugin/grails-app/conf/logback.xml | 24 +- .../plugin/springsecurity/ldap/Application.groovy | 29 - .../ldap/SpringSecurityLdapGrailsPlugin.groovy | 26 +- .../ldap/core/GrailsLdapRoleMapper.groovy | 26 +- ...lsSimpleDirContextAuthenticationStrategy.groovy | 26 +- .../ldap/core/SimpleAuthenticationSource.groovy | 26 +- .../DatabaseOnlyLdapAuthoritiesPopulator.groovy | 26 +- .../GrailsLdapAuthoritiesPopulator.groovy | 26 +- .../GrailsLdapUserDetailsManager.groovy | 26 +- .../GrailsLdapAuthoritiesPopulatorSpec.groovy | 19 + plugin-oauth2/README.md | 16 + plugin-oauth2/docs/build.gradle | 24 +- plugin-oauth2/docs/src/docs/configuration.adoc | 19 + plugin-oauth2/docs/src/docs/extensions.adoc | 19 + plugin-oauth2/docs/src/docs/history.adoc | 19 + plugin-oauth2/docs/src/docs/index.adoc | 19 + plugin-oauth2/docs/src/docs/installation.adoc | 19 + plugin-oauth2/docs/src/docs/introduction.adoc | 19 + plugin-oauth2/plugin/build.gradle | 30 +- .../springsecurity/oauth2/CommandLineHelper.groovy | 19 + .../conf/DefaultSpringSecurityOAuth2Config.groovy | 26 +- .../plugin/grails-app/conf/application.yml | 15 + plugin-oauth2/plugin/grails-app/conf/logback.xml | 24 +- .../oauth2/SpringSecurityOAuth2Controller.groovy | 26 +- .../oauth2/SpringSecurityOauth2UrlMappings.groovy | 19 + .../plugin/grails-app/i18n/messages.properties | 18 + .../springsecurity/oauth2/Application.groovy | 12 - .../oauth2/SpringSecurityOauth2BaseService.groovy | 26 +- .../springsecurity/oauth2/OAuth2TagLib.groovy | 26 +- .../grails-app/views/springSecurityOAuth2/ask.gsp | 18 + .../springsecurity/oauth2/OAuth2TagLibSpec.groovy | 19 + .../SpringSecurityOAuth2ControllerSpec.groovy | 19 + .../oauth2/TestOAuth2SpringToken.groovy | 19 + .../oauth2/SpringSecurityOauth2GrailsPlugin.groovy | 19 + .../oauth2/exception/OAuth2Exception.java | 26 +- .../service/OAuth2AbstractProviderService.groovy | 26 +- .../oauth2/service/OAuth2ProviderService.groovy | 26 +- .../oauth2/token/OAuth2SpringToken.groovy | 26 +- .../oauth2/util/OAuth2ProviderConfiguration.groovy | 26 +- .../plugin/src/main/scripts/_install.groovy | 19 + .../plugin/src/main/scripts/init-oauth2.groovy | 19 + .../src/main/templates/OAuthID.groovy.template | 15 - plugin-rest/README.md | 16 + plugin-rest/docker-compose.yml | 15 + plugin-rest/docs/build.gradle | 24 +- plugin-rest/docs/src/docs/authentication.adoc | 19 + plugin-rest/docs/src/docs/configuration.adoc | 19 + plugin-rest/docs/src/docs/cors.adoc | 19 + plugin-rest/docs/src/docs/debugging.adoc | 19 + plugin-rest/docs/src/docs/events.adoc | 19 + plugin-rest/docs/src/docs/faq.adoc | 19 + plugin-rest/docs/src/docs/index.adoc | 19 + plugin-rest/docs/src/docs/introduction.adoc | 19 + plugin-rest/docs/src/docs/oauth.adoc | 19 + plugin-rest/docs/src/docs/tokenGeneration.adoc | 19 + plugin-rest/docs/src/docs/tokenRendering.adoc | 19 + plugin-rest/docs/src/docs/tokenStorage.adoc | 19 + plugin-rest/docs/src/docs/tokenValidation.adoc | 19 + plugin-rest/docs/src/docs/whatsNew14.adoc | 19 + plugin-rest/docs/src/docs/whatsNew15.adoc | 19 + plugin-rest/docs/src/docs/whatsNew20.adoc | 19 + plugin-rest/docs/src/docs/whatsNew50.adoc | 19 + plugin-rest/docs/src/docs/whatsNew60.adoc | 19 + plugin-rest/generate-test-apps.sh | 19 + plugin-rest/renameFiles.groovy | 21 +- plugin-rest/spring-security-rest-gorm/build.gradle | 28 +- .../spring-security-rest-gorm/grails-app/.gitkeep | 0 .../rest/SpringSecurityRestGormGrailsPlugin.groovy | 19 + .../springsecurity/rest/gorm/Application.groovy | 19 + .../token/storage/GormTokenStorageService.groovy | 26 +- .../resources/DefaultRestGormSecurityConfig.groovy | 26 +- .../spring-security-rest-grailscache/build.gradle | 30 +- .../grails-app/.gitkeep | 0 ...pringSecurityRestGrailsCacheGrailsPlugin.groovy | 19 + .../rest/grailscache/Application.groovy | 19 + .../storage/GrailsCacheTokenStorageService.groovy | 26 +- .../DefaultRestGrailsCacheSecurityConfig.groovy | 26 +- .../GrailsCacheTokenStorageServiceSpec.groovy | 26 +- .../spring-security-rest-memcached/build.gradle | 28 +- .../grails-app/.gitkeep | 0 .../SpringSecurityRestMemcachedGrailsPlugin.groovy | 19 + .../rest/memcached/Application.groovy | 19 + .../memcached/CustomSerializingTranscoder.groovy | 26 +- .../memcached/MemcachedTokenStorageService.groovy | 26 +- .../DefaultRestMemcachedSecurityConfig.groovy | 26 +- .../spring-security-rest-redis/build.gradle | 28 +- .../spring-security-rest-redis/grails-app/.gitkeep | 0 .../SpringSecurityRestRedisGrailsPlugin.groovy | 19 + .../springsecurity/rest/redis/Application.groovy | 19 + .../token/storage/RedisTokenStorageService.groovy | 26 +- .../DefaultRestRedisSecurityConfig.groovy | 26 +- .../build.gradle | 23 +- .../gorm1/skeleton/grails-app/conf/application.yml | 15 + .../groovy/rest/RestLogoutFilterSpec.groovy | 26 +- .../gorm2/skeleton/grails-app/conf/application.yml | 15 + .../groovy/rest/RestLogoutFilterSpec.groovy | 26 +- .../rest/JwtRestTokenValidationFilterSpec.groovy | 26 +- .../groovy/memcached/MemcachedSpec.groovy | 26 +- .../groovy/memcached/MemcachedSpec.groovy | 26 +- .../integration-test/groovy/redis/RedisSpec.groovy | 26 +- .../integration-test/groovy/redis/RedisSpec.groovy | 26 +- .../skeleton/grails-app/conf/application.yml | 15 + .../src/integration-test/groovy/GebConfig.groovy | 26 +- .../groovy/rest/AbstractRestSpec.groovy | 26 +- .../groovy/rest/BearerTokenSpec.groovy | 26 +- .../integration-test/groovy/rest/CorsSpec.groovy | 26 +- .../groovy/rest/FrontendCallbackPage.groovy | 26 +- .../integration-test/groovy/rest/JwtSpec.groovy | 26 +- .../rest/RestAuthenticationFilterSpec.groovy | 26 +- .../rest/RestTokenValidationFilterSpec.groovy | 26 +- .../groovy/rest/ValidateEndpointSpec.groovy | 26 +- plugin-rest/spring-security-rest/build.gradle | 30 +- .../grails-app/conf/application.yml | 15 + .../grails-app/conf/logback.groovy | 26 +- .../springsecurity/rest/RestOauthController.groovy | 26 +- .../rest/RestOauthUrlMappings.groovy | 30 +- .../plugin/springsecurity/rest/Application.groovy | 12 - .../plugin/springsecurity/rest/JwtService.groovy | 26 +- .../springsecurity/rest/RestOauthService.groovy | 26 +- .../rest/RestAuthenticationFailureHandler.groovy | 26 +- .../rest/RestAuthenticationFilter.groovy | 26 +- .../rest/RestAuthenticationProvider.groovy | 26 +- .../rest/RestAuthenticationSuccessHandler.groovy | 26 +- .../springsecurity/rest/RestLogoutFilter.groovy | 26 +- .../rest/RestSecurityEventListener.groovy | 26 +- .../rest/RestTokenCreationEvent.groovy | 26 +- .../rest/RestTokenValidationFilter.groovy | 26 +- .../SpringSecurityRestFilterRequestMatcher.groovy | 26 +- .../rest/SpringSecurityRestGrailsPlugin.groovy | 26 +- .../DefaultRestAuthenticationEventPublisher.groovy | 26 +- .../NullRestAuthenticationEventPublisher.groovy | 26 +- .../RestAuthenticationEventPublisher.groovy | 26 +- .../AbstractJsonPayloadCredentialsExtractor.groovy | 26 +- .../rest/credentials/CredentialsExtractor.groovy | 26 +- .../DefaultJsonPayloadCredentialsExtractor.groovy | 26 +- .../RequestParamsCredentialsExtractor.groovy | 26 +- .../rest/error/CallbackErrorHandler.groovy | 26 +- .../rest/error/DefaultCallbackErrorHandler.groovy | 26 +- .../oauth/DefaultOauthUserDetailsService.groovy | 26 +- .../springsecurity/rest/oauth/OauthUser.groovy | 26 +- .../rest/oauth/OauthUserDetailsService.groovy | 26 +- .../springsecurity/rest/token/AccessToken.groovy | 26 +- .../bearer/BearerTokenAccessDeniedHandler.groovy | 26 +- .../BearerTokenAuthenticationEntryPoint.groovy | 26 +- .../BearerTokenAuthenticationFailureHandler.groovy | 26 +- .../rest/token/bearer/BearerTokenReader.groovy | 26 +- .../generation/SecureRandomTokenGenerator.groovy | 26 +- .../rest/token/generation/TokenGenerator.groovy | 26 +- .../token/generation/UUIDTokenGenerator.groovy | 26 +- .../jwt/AbstractJwtTokenGenerator.groovy | 26 +- .../generation/jwt/CustomClaimProvider.groovy | 26 +- .../generation/jwt/DefaultRSAKeyProvider.groovy | 26 +- .../jwt/EncryptedJwtTokenGenerator.groovy | 26 +- .../token/generation/jwt/FileRSAKeyProvider.groovy | 26 +- .../generation/jwt/IssuerClaimProvider.groovy | 26 +- .../token/generation/jwt/RSAKeyProvider.groovy | 26 +- .../generation/jwt/SignedJwtTokenGenerator.groovy | 26 +- .../rest/token/reader/HttpHeaderTokenReader.groovy | 26 +- .../rest/token/reader/TokenReader.groovy | 26 +- .../token/rendering/AccessTokenJsonRenderer.groovy | 26 +- .../DefaultAccessTokenJsonRenderer.groovy | 26 +- .../token/storage/TokenNotFoundException.groovy | 26 +- .../rest/token/storage/TokenStorageService.groovy | 26 +- .../storage/jwt/JwtTokenStorageService.groovy | 26 +- .../resources/DefaultRestSecurityConfig.groovy | 26 +- ...rerTokenAuthenticationFailureHandlerSpec.groovy | 26 +- .../springsecurity/rest/JwtServiceSpec.groovy | 26 +- .../RestAuthenticationFailureHandlerSpec.groovy | 26 +- .../rest/RestAuthenticationProviderSpec.groovy | 19 + .../rest/RestOauthControllerSpec.groovy | 26 +- .../rest/RestOauthServiceSpec.groovy | 26 +- .../rest/RestSecurityEventListenerSpec.groovy | 26 +- .../springsecurity/rest/RestTokenReaderSpec.groovy | 26 +- .../rest/RestTokenValidationFilterUnitSpec.groovy | 26 +- ...ringSecurityRestFilterRequestMatcherSpec.groovy | 19 + .../rest/TokenGeneratorSupport.groovy | 19 + ...aultRestAuthenticationEventPublisherSpec.groovy | 26 +- .../CredentialsExtractorTestSpec.groovy | 26 +- .../DefaultOauthUserDetailsServiceSpec.groovy | 26 +- .../rest/rfc6750/BearerTokenReaderSpec.groovy | 26 +- .../rest/token/TokenGeneratorSpec.groovy | 26 +- .../BearerTokenAccessDeniedHandlerSpec.groovy | 26 +- .../token/generation/JwtTokenGeneratorSpec.groovy | 26 +- ...tRestAuthenticationTokenJsonRendererSpec.groovy | 26 +- .../storage/jwt/JwtTokenStorageServiceSpec.groovy | 26 +- plugin-rest/test-app.sh | 19 + plugin-ui/README.md | 16 + plugin-ui/docs/build.gradle | 24 +- plugin-ui/docs/src/docs/acls.adoc | 19 + plugin-ui/docs/src/docs/acls/aclClass.adoc | 19 + plugin-ui/docs/src/docs/acls/aclEntry.adoc | 19 + .../docs/src/docs/acls/aclObjectIdentity.adoc | 19 + plugin-ui/docs/src/docs/acls/aclSid.adoc | 19 + plugin-ui/docs/src/docs/configUI.adoc | 19 + plugin-ui/docs/src/docs/customization.adoc | 19 + plugin-ui/docs/src/docs/forgotPassword.adoc | 19 + plugin-ui/docs/src/docs/index.adoc | 19 + plugin-ui/docs/src/docs/introduction.adoc | 19 + plugin-ui/docs/src/docs/persistentCookie.adoc | 19 + plugin-ui/docs/src/docs/requestmap.adoc | 19 + plugin-ui/docs/src/docs/role.adoc | 19 + plugin-ui/docs/src/docs/scripts.adoc | 19 + .../scripts/s2ui-create-challenge-questions.adoc | 19 + plugin-ui/docs/src/docs/scripts/s2ui-override.adoc | 19 + plugin-ui/docs/src/docs/user.adoc | 19 + plugin-ui/docs/src/docs/userRegistration.adoc | 19 + plugin-ui/examples/extended/build.gradle | 32 +- .../grails-app/assets/javascripts/application.js | 19 + .../grails-app/assets/stylesheets/application.css | 19 + .../grails-app/assets/stylesheets/errors.css | 19 + .../grails-app/assets/stylesheets/main.css | 19 + .../extended/grails-app/conf/application.groovy | 19 +- .../extended/grails-app/conf/application.yml | 15 + .../examples/extended/grails-app/conf/logback.xml | 24 +- .../grails-app/conf/spring/resources.groovy | 19 + .../controllers/test/ProfileController.groovy | 19 + .../controllers/test/RegisterController.groovy | 19 + .../controllers/test/RoleController.groovy | 19 + .../controllers/test/TestDataController.groovy | 19 + .../grails-app/controllers/test/UrlMappings.groovy | 19 + .../controllers/test/UserController.groovy | 19 + .../plugin/springsecurity/acl/AclClass.groovy | 26 +- .../plugin/springsecurity/acl/AclEntry.groovy | 26 +- .../springsecurity/acl/AclObjectIdentity.groovy | 26 +- .../grails/plugin/springsecurity/acl/AclSid.groovy | 26 +- .../grails-app/domain/test/PersistentToken.groovy | 19 + .../extended/grails-app/domain/test/Profile.groovy | 19 + .../extended/grails-app/domain/test/Report.groovy | 19 + .../grails-app/domain/test/Requestmap.groovy | 19 + .../extended/grails-app/domain/test/Role.groovy | 19 + .../extended/grails-app/domain/test/User.groovy | 19 + .../grails-app/domain/test/UserRole.groovy | 19 + .../extended/grails-app/i18n/messages.properties | 18 + .../grails-app/init/test/Application.groovy | 19 + .../extended/grails-app/init/test/BootStrap.groovy | 19 + .../services/test/ProfileListenerService.groovy | 19 + .../grails-app/services/test/ProfileService.groovy | 19 + .../services/test/TestDataService.groovy | 19 + .../examples/extended/grails-app/views/error.gsp | 18 + .../extended/grails-app/views/error404.gsp | 18 + .../grails-app/views/includes/_ajaxLogin.gsp | 18 + .../examples/extended/grails-app/views/index.gsp | 18 + .../extended/grails-app/views/layouts/email.gsp | 20 +- .../extended/grails-app/views/layouts/main.gsp | 18 + .../extended/grails-app/views/layouts/register.gsp | 18 + .../grails-app/views/layouts/springSecurityUI.gsp | 18 + .../extended/grails-app/views/login/auth.gsp | 18 + .../extended/grails-app/views/profile/create.gsp | 18 + .../extended/grails-app/views/profile/edit.gsp | 18 + .../extended/grails-app/views/profile/index.gsp | 18 + .../views/register/_forgotPasswordMail.gsp | 18 + .../views/register/_verifyRegistrationMail.gsp | 18 + .../grails-app/views/register/forgotPassword.gsp | 18 + .../grails-app/views/register/register.gsp | 18 + .../grails-app/views/register/resetPassword.gsp | 18 + .../views/register/securityQuestions.gsp | 18 + .../extended/grails-app/views/role/create.gsp | 18 + .../extended/grails-app/views/role/edit.gsp | 18 + .../extended/grails-app/views/role/search.gsp | 18 + .../extended/grails-app/views/user/create.gsp | 18 + .../extended/grails-app/views/user/edit.gsp | 18 + .../extended/grails-app/views/user/search.gsp | 18 + .../groovy/page/AbstractSecurityPage.groovy | 19 + .../integration-test/groovy/page/CreatePage.groovy | 19 + .../integration-test/groovy/page/EditPage.groovy | 19 + .../integration-test/groovy/page/SearchPage.groovy | 19 + .../groovy/page/aclClass/AclClassCreatePage.groovy | 19 + .../groovy/page/aclClass/AclClassEditPage.groovy | 19 + .../groovy/page/aclClass/AclClassSearchPage.groovy | 19 + .../groovy/page/aclEntry/AclEntryCreatePage.groovy | 19 + .../groovy/page/aclEntry/AclEntryEditPage.groovy | 19 + .../groovy/page/aclEntry/AclEntrySearchPage.groovy | 19 + .../AclObjectIdentityCreatePage.groovy | 19 + .../AclObjectIdentityEditPage.groovy | 19 + .../AclObjectIdentitySearchPage.groovy | 19 + .../groovy/page/aclSid/AclSidCreatePage.groovy | 19 + .../groovy/page/aclSid/AclSidEditPage.groovy | 19 + .../groovy/page/aclSid/AclSidSearchPage.groovy | 19 + .../PersistentLoginSearchPage.groovy | 19 + .../groovy/page/profile/ProfileCreatePage.groovy | 19 + .../groovy/page/profile/ProfileEditPage.groovy | 19 + .../groovy/page/profile/ProfileListPage.groovy | 19 + .../groovy/page/register/ForgotPasswordPage.groovy | 19 + .../groovy/page/register/RegisterPage.groovy | 19 + .../groovy/page/register/ResetPasswordPage.groovy | 19 + .../page/register/SecurityQuestionsPage.groovy | 19 + .../RegistrationCodeEditPage.groovy | 19 + .../RegistrationCodeSearchPage.groovy | 19 + .../page/requestmap/RequestmapCreatePage.groovy | 19 + .../page/requestmap/RequestmapEditPage.groovy | 19 + .../page/requestmap/RequestmapSearchPage.groovy | 19 + .../groovy/page/role/RoleCreatePage.groovy | 19 + .../groovy/page/role/RoleEditPage.groovy | 19 + .../groovy/page/role/RoleSearchPage.groovy | 19 + .../groovy/page/user/UserCreatePage.groovy | 19 + .../groovy/page/user/UserEditPage.groovy | 19 + .../groovy/page/user/UserSearchPage.groovy | 19 + .../groovy/spec/AbstractSecuritySpec.groovy | 19 + .../groovy/spec/AclClassSpec.groovy | 19 + .../groovy/spec/AclEntrySpec.groovy | 19 + .../groovy/spec/AclObjectIdentitySpec.groovy | 19 + .../integration-test/groovy/spec/AclSidSpec.groovy | 19 + .../groovy/spec/ExtendedMenuSpec.groovy | 19 + .../groovy/spec/ExtendedSecurityInfoSpec.groovy | 19 + .../groovy/spec/PersistentLoginSpec.groovy | 19 + .../groovy/spec/RegisterSpec.groovy | 19 + .../groovy/spec/RegistrationCodeSpec.groovy | 19 + .../groovy/spec/RequestmapSpec.groovy | 19 + .../integration-test/groovy/spec/RoleSpec.groovy | 19 + .../integration-test/groovy/spec/UserSpec.groovy | 19 + .../groovy/test/ProfileServiceSpec.groovy | 19 + .../groovy/test/UserPasswordEncoderListener.groovy | 19 + .../groovy/test/ProfileListenerServiceSpec.groovy | 19 + plugin-ui/examples/simple/build.gradle | 41 +- .../grails-app/assets/javascripts/application.js | 19 + .../grails-app/assets/stylesheets/application.css | 19 + .../grails-app/assets/stylesheets/errors.css | 19 + .../simple/grails-app/assets/stylesheets/main.css | 19 + .../simple/grails-app/conf/application.yml | 15 + .../examples/simple/grails-app/conf/logback.xml | 24 +- .../simple/grails-app/conf/spring/resources.groovy | 19 + .../test/PersistentLoginController.groovy | 19 + .../controllers/test/RegisterController.groovy | 19 + .../test/RegistrationCodeController.groovy | 19 + .../controllers/test/RequestmapController.groovy | 19 + .../controllers/test/RoleController.groovy | 19 + .../controllers/test/SecurityInfoController.groovy | 19 + .../controllers/test/TestDataController.groovy | 19 + .../grails-app/controllers/test/UrlMappings.groovy | 19 + .../controllers/test/UserController.groovy | 19 + .../plugin/springsecurity/acl/AclClass.groovy | 26 +- .../plugin/springsecurity/acl/AclEntry.groovy | 26 +- .../springsecurity/acl/AclObjectIdentity.groovy | 26 +- .../grails/plugin/springsecurity/acl/AclSid.groovy | 26 +- .../grails-app/domain/test/PersistentToken.groovy | 19 + .../simple/grails-app/domain/test/Report.groovy | 19 + .../grails-app/domain/test/Requestmap.groovy | 19 + .../simple/grails-app/domain/test/Role.groovy | 19 + .../simple/grails-app/domain/test/User.groovy | 19 + .../simple/grails-app/domain/test/UserRole.groovy | 19 + .../simple/grails-app/i18n/messages.properties | 18 + .../simple/grails-app/init/test/Application.groovy | 19 + .../simple/grails-app/init/test/BootStrap.groovy | 19 + .../services/test/TestDataService.groovy | 19 + .../examples/simple/grails-app/views/error.gsp | 18 + .../examples/simple/grails-app/views/error404.gsp | 18 + .../grails-app/views/includes/_ajaxLogin.gsp | 18 + .../examples/simple/grails-app/views/index.gsp | 18 + .../simple/grails-app/views/layouts/email.gsp | 20 +- .../simple/grails-app/views/layouts/main.gsp | 18 + .../simple/grails-app/views/layouts/register.gsp | 18 + .../grails-app/views/layouts/springSecurityUI.gsp | 18 + .../grails-app/views/persistentLogin/edit.gsp | 18 + .../grails-app/views/persistentLogin/search.gsp | 18 + .../views/register/_forgotPasswordMail.gsp | 18 + .../views/register/_verifyRegistrationMail.gsp | 18 + .../grails-app/views/register/forgotPassword.gsp | 18 + .../simple/grails-app/views/register/register.gsp | 18 + .../grails-app/views/register/resetPassword.gsp | 18 + .../views/register/securityQuestions.gsp | 18 + .../grails-app/views/registrationCode/edit.gsp | 18 + .../grails-app/views/registrationCode/search.gsp | 18 + .../simple/grails-app/views/requestmap/create.gsp | 18 + .../simple/grails-app/views/requestmap/edit.gsp | 18 + .../simple/grails-app/views/requestmap/search.gsp | 18 + .../simple/grails-app/views/role/create.gsp | 18 + .../examples/simple/grails-app/views/role/edit.gsp | 18 + .../simple/grails-app/views/role/search.gsp | 18 + .../grails-app/views/securityInfo/config.gsp | 18 + .../grails-app/views/securityInfo/currentAuth.gsp | 18 + .../grails-app/views/securityInfo/filterChains.gsp | 18 + .../views/securityInfo/logoutHandlers.gsp | 18 + .../grails-app/views/securityInfo/mappings.gsp | 18 + .../grails-app/views/securityInfo/providers.gsp | 18 + .../views/securityInfo/secureChannel.gsp | 18 + .../grails-app/views/securityInfo/usercache.gsp | 18 + .../grails-app/views/securityInfo/voters.gsp | 18 + .../simple/grails-app/views/user/create.gsp | 18 + .../examples/simple/grails-app/views/user/edit.gsp | 18 + .../simple/grails-app/views/user/search.gsp | 18 + .../integration-test/groovy/module/RolesTab.groovy | 19 + .../groovy/page/AbstractSecurityPage.groovy | 19 + .../integration-test/groovy/page/CreatePage.groovy | 19 + .../integration-test/groovy/page/EditPage.groovy | 19 + .../integration-test/groovy/page/SearchPage.groovy | 19 + .../groovy/page/aclClass/AclClassCreatePage.groovy | 19 + .../groovy/page/aclClass/AclClassEditPage.groovy | 19 + .../groovy/page/aclClass/AclClassSearchPage.groovy | 19 + .../groovy/page/aclEntry/AclEntryCreatePage.groovy | 19 + .../groovy/page/aclEntry/AclEntryEditPage.groovy | 19 + .../groovy/page/aclEntry/AclEntrySearchPage.groovy | 19 + .../AclObjectIdentityCreatePage.groovy | 19 + .../AclObjectIdentityEditPage.groovy | 19 + .../AclObjectIdentitySearchPage.groovy | 19 + .../groovy/page/aclSid/AclSidCreatePage.groovy | 19 + .../groovy/page/aclSid/AclSidEditPage.groovy | 19 + .../groovy/page/aclSid/AclSidSearchPage.groovy | 19 + .../PersistentLoginSearchPage.groovy | 19 + .../groovy/page/register/ForgotPasswordPage.groovy | 19 + .../groovy/page/register/RegisterPage.groovy | 19 + .../groovy/page/register/ResetPasswordPage.groovy | 19 + .../RegistrationCodeEditPage.groovy | 19 + .../RegistrationCodeSearchPage.groovy | 19 + .../page/requestmap/RequestmapCreatePage.groovy | 19 + .../page/requestmap/RequestmapEditPage.groovy | 19 + .../page/requestmap/RequestmapSearchPage.groovy | 19 + .../groovy/page/role/RoleCreatePage.groovy | 19 + .../groovy/page/role/RoleEditPage.groovy | 19 + .../groovy/page/role/RoleSearchPage.groovy | 19 + .../groovy/page/user/UserCreatePage.groovy | 19 + .../groovy/page/user/UserEditPage.groovy | 19 + .../groovy/page/user/UserSearchPage.groovy | 19 + .../groovy/spec/AbstractSecuritySpec.groovy | 19 + .../groovy/spec/DefaultMenuSpec.groovy | 19 + .../groovy/spec/DefaultSecurityInfoSpec.groovy | 19 + .../groovy/spec/RegisterSpec.groovy | 19 + .../groovy/spec/RegistrationCodeSpec.groovy | 19 + .../groovy/spec/RequestmapSpec.groovy | 19 + .../integration-test/groovy/spec/RoleSpec.groovy | 19 + .../groovy/spec/UserSimpleSpec.groovy | 19 + plugin-ui/plugin/build.gradle | 50 +- .../grails-app/assets/javascripts/jquery-ui.js | 1 - .../jquery-ui/jquery-ui-1.10.3.custom.js | 14971 ------------------ .../plugin/grails-app/assets/javascripts/jquery.js | 1 - .../assets/javascripts/jquery/jquery-2.1.4.js | 9210 ----------- .../assets/javascripts/jquery/jquery.bgiframe.js | 64 - .../assets/javascripts/jquery/jquery.dataTables.js | 15212 ------------------- .../assets/javascripts/jquery/jquery.form.js | 1277 -- .../assets/javascripts/jquery/jquery.jgrowl.js | 393 - .../javascripts/spring-security-ui-ajaxLogin.js | 19 + .../javascripts/spring-security-ui-register.js | 25 +- .../assets/javascripts/spring-security-ui.js | 29 +- .../grails-app/assets/stylesheets/jquery-ui.css | 21 +- .../assets/stylesheets/jquery.dataTables.css | 467 +- .../assets/stylesheets/jquery.jgrowl.css | 102 - .../plugin/grails-app/assets/stylesheets/reset.css | 19 + .../smoothness/images/animated-overlay.gif | Bin 1738 -> 0 bytes .../smoothness/images/ui-anim_basic_16x16.gif | Bin 1553 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 212 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 208 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 335 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 207 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 262 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 262 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 332 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 280 -> 0 bytes .../smoothness/images/ui-icons_222222_256x240.png | Bin 6922 -> 0 bytes .../smoothness/images/ui-icons_2e83ff_256x240.png | Bin 4549 -> 0 bytes .../smoothness/images/ui-icons_454545_256x240.png | Bin 6992 -> 0 bytes .../smoothness/images/ui-icons_888888_256x240.png | Bin 6999 -> 0 bytes .../smoothness/images/ui-icons_cd0a0a_256x240.png | Bin 4549 -> 0 bytes .../smoothness/jquery-ui-1.10.3.custom.css | 1177 -- .../assets/stylesheets/spring-security-ui-auth.css | 19 + .../stylesheets/spring-security-ui-common.css | 19 + .../stylesheets/spring-security-ui-register.css | 21 +- .../assets/stylesheets/spring-security-ui.css | 31 +- .../grails-app/conf/DefaultUiSecurityConfig.groovy | 26 +- plugin-ui/plugin/grails-app/conf/application.yml | 15 + .../ui/AbstractS2UiController.groovy | 26 +- .../ui/AbstractS2UiDomainController.groovy | 26 +- .../springsecurity/ui/AclClassController.groovy | 26 +- .../springsecurity/ui/AclEntryController.groovy | 26 +- .../ui/AclObjectIdentityController.groovy | 26 +- .../springsecurity/ui/AclSidController.groovy | 26 +- .../ui/PersistentLoginController.groovy | 26 +- .../springsecurity/ui/RegisterController.groovy | 27 +- .../ui/RegistrationCodeController.groovy | 26 +- .../springsecurity/ui/RequestmapController.groovy | 26 +- .../plugin/springsecurity/ui/RoleController.groovy | 26 +- .../ui/SecurityInfoController.groovy | 26 +- .../plugin/springsecurity/ui/UserController.groovy | 26 +- .../springsecurity/ui/RegistrationCode.groovy | 26 +- .../i18n/messages.spring-security-ui.properties | 18 + .../plugin/springsecurity/ui/Application.groovy | 29 - .../ui/SpringSecurityUiService.groovy | 26 +- .../springsecurity/ui/SecurityUiTagLib.groovy | 26 +- .../plugin/grails-app/views/aclClass/create.gsp | 18 + .../plugin/grails-app/views/aclClass/edit.gsp | 18 + .../plugin/grails-app/views/aclClass/search.gsp | 18 + .../plugin/grails-app/views/aclEntry/create.gsp | 18 + .../plugin/grails-app/views/aclEntry/edit.gsp | 18 + .../plugin/grails-app/views/aclEntry/search.gsp | 18 + .../grails-app/views/aclObjectIdentity/create.gsp | 18 + .../grails-app/views/aclObjectIdentity/edit.gsp | 18 + .../grails-app/views/aclObjectIdentity/search.gsp | 18 + .../plugin/grails-app/views/aclSid/create.gsp | 18 + plugin-ui/plugin/grails-app/views/aclSid/edit.gsp | 18 + .../plugin/grails-app/views/aclSid/search.gsp | 18 + .../grails-app/views/includes/_ajaxLogin.gsp | 18 + .../plugin/grails-app/views/layouts/email.gsp | 20 +- .../plugin/grails-app/views/layouts/register.gsp | 18 + .../grails-app/views/layouts/springSecurityUI.gsp | 18 + plugin-ui/plugin/grails-app/views/login/auth.gsp | 18 + .../grails-app/views/persistentLogin/edit.gsp | 18 + .../grails-app/views/persistentLogin/search.gsp | 18 + .../views/register/_forgotPasswordMail.gsp | 18 + .../views/register/_verifyRegistrationMail.gsp | 18 + .../grails-app/views/register/forgotPassword.gsp | 18 + .../plugin/grails-app/views/register/register.gsp | 18 + .../grails-app/views/register/resetPassword.gsp | 18 + .../views/register/securityQuestions.gsp | 18 + .../grails-app/views/registrationCode/edit.gsp | 18 + .../grails-app/views/registrationCode/search.gsp | 18 + .../plugin/grails-app/views/requestmap/create.gsp | 18 + .../plugin/grails-app/views/requestmap/edit.gsp | 18 + .../plugin/grails-app/views/requestmap/search.gsp | 18 + plugin-ui/plugin/grails-app/views/role/create.gsp | 18 + plugin-ui/plugin/grails-app/views/role/edit.gsp | 18 + plugin-ui/plugin/grails-app/views/role/search.gsp | 18 + .../grails-app/views/securityInfo/config.gsp | 18 + .../grails-app/views/securityInfo/currentAuth.gsp | 18 + .../grails-app/views/securityInfo/filterChains.gsp | 18 + .../views/securityInfo/logoutHandlers.gsp | 18 + .../grails-app/views/securityInfo/mappings.gsp | 18 + .../grails-app/views/securityInfo/providers.gsp | 18 + .../views/securityInfo/secureChannel.gsp | 18 + .../grails-app/views/securityInfo/usercache.gsp | 18 + .../grails-app/views/securityInfo/voters.gsp | 18 + plugin-ui/plugin/grails-app/views/user/create.gsp | 18 + plugin-ui/plugin/grails-app/views/user/edit.gsp | 18 + plugin-ui/plugin/grails-app/views/user/search.gsp | 18 + .../plugin/springsecurity/ui/CommandObject.groovy | 26 +- .../plugin/springsecurity/ui/Constants.groovy | 26 +- .../springsecurity/ui/ForgotPasswordCommand.groovy | 26 +- .../springsecurity/ui/InvalidValueException.groovy | 26 +- .../springsecurity/ui/RegisterCommand.groovy | 27 +- .../springsecurity/ui/ResetPasswordCommand.groovy | 26 +- .../ui/SecurityQuestionsCommand.groovy | 24 +- .../ui/SpringSecurityUiGrailsPlugin.groovy | 26 +- .../ui/SpringSecurityUiInterceptor.groovy | 26 +- .../springsecurity/ui/strategy/AclStrategy.groovy | 26 +- .../ui/strategy/DefaultAclStrategy.groovy | 26 +- .../ui/strategy/DefaultErrorsStrategy.groovy | 26 +- .../strategy/DefaultPersistentLoginStrategy.groovy | 26 +- .../ui/strategy/DefaultPropertiesStrategy.groovy | 26 +- .../ui/strategy/DefaultQueryStrategy.groovy | 26 +- .../DefaultRegistrationCodeStrategy.groovy | 26 +- .../ui/strategy/DefaultRequestmapStrategy.groovy | 26 +- .../ui/strategy/DefaultRoleStrategy.groovy | 26 +- .../ui/strategy/DefaultUserStrategy.groovy | 26 +- .../ui/strategy/ErrorsStrategy.groovy | 26 +- .../ui/strategy/MailPluginMailStrategy.groovy | 26 +- .../springsecurity/ui/strategy/MailStrategy.groovy | 26 +- .../ui/strategy/PersistentLoginStrategy.groovy | 26 +- .../ui/strategy/PropertiesStrategy.groovy | 26 +- .../ui/strategy/QueryStrategy.groovy | 26 +- .../ui/strategy/RegistrationCodeStrategy.groovy | 26 +- .../ui/strategy/RequestmapStrategy.groovy | 26 +- .../springsecurity/ui/strategy/RoleStrategy.groovy | 26 +- .../springsecurity/ui/strategy/UserStrategy.groovy | 26 +- .../scripts/s2ui-create-challenge-questions.groovy | 27 +- .../plugin/src/main/scripts/s2ui-override.groovy | 26 +- .../ui/RegisterControllerSpec.groovy | 18 + .../ui/SpringSecurityUiServiceSpec.groovy | 18 + .../springsecurity/ui/UserControllerSpec.groovy | 18 + settings.gradle | 30 +- 1802 files changed, 25842 insertions(+), 209887 deletions(-)
