├── .github ├── dependabot.yml └── workflows │ ├── continuous-integration-workflow.yml │ ├── deploy-docs.yml │ ├── pr-build-workflow.yml │ ├── release-scheduler.yml │ └── update-scheduled-release-version.yml ├── .gitignore ├── .sdkmanrc ├── .springjavaformatconfig ├── .travis.yml ├── CODE_OF_CONDUCT.adoc ├── CONTRIBUTING.adoc ├── RELEASE.adoc ├── antora.yml ├── build.gradle ├── buildSrc ├── build.gradle └── src │ ├── main │ ├── graphql │ │ └── org │ │ │ └── springframework │ │ │ └── security │ │ │ └── convention │ │ │ └── versions │ │ │ ├── CreateIssue.graphql │ │ │ ├── FindCreateIssueInput.graphql │ │ │ ├── RateLimit.graphql │ │ │ └── schema.json │ ├── groovy │ │ └── io │ │ │ └── spring │ │ │ └── gradle │ │ │ ├── IncludeRepoTask.groovy │ │ │ └── convention │ │ │ ├── AbstractSpringJavaPlugin.groovy │ │ │ ├── ArtifactoryPlugin.groovy │ │ │ ├── CheckstylePlugin.groovy │ │ │ ├── DeployDocsPlugin.groovy │ │ │ ├── DocsPlugin.groovy │ │ │ ├── IncludeCheckRemotePlugin.groovy │ │ │ ├── IntegrationTestPlugin.groovy │ │ │ ├── JacocoPlugin.groovy │ │ │ ├── JavadocApiPlugin.groovy │ │ │ ├── JavadocOptionsPlugin.groovy │ │ │ ├── ManagementConfigurationPlugin.java │ │ │ ├── MavenBomPlugin.groovy │ │ │ ├── RepositoryConventionPlugin.groovy │ │ │ ├── RootProjectPlugin.groovy │ │ │ ├── SchemaDeployPlugin.groovy │ │ │ ├── SchemaPlugin.groovy │ │ │ ├── SchemaZipPlugin.groovy │ │ │ ├── SortedProperties.groovy │ │ │ ├── SpringModulePlugin.groovy │ │ │ ├── SpringTestPlugin.groovy │ │ │ ├── TestsConfigurationPlugin.groovy │ │ │ └── Utils.groovy │ ├── java │ │ ├── lock │ │ │ ├── GlobalLockPlugin.java │ │ │ └── GlobalLockTask.java │ │ ├── org │ │ │ └── springframework │ │ │ │ └── gradle │ │ │ │ ├── CopyPropertiesPlugin.java │ │ │ │ ├── antora │ │ │ │ ├── CheckAntoraVersionPlugin.java │ │ │ │ └── CheckAntoraVersionTask.java │ │ │ │ ├── github │ │ │ │ ├── RepositoryRef.java │ │ │ │ ├── changelog │ │ │ │ │ └── GitHubChangelogPlugin.java │ │ │ │ ├── milestones │ │ │ │ │ ├── GitHubMilestoneApi.java │ │ │ │ │ ├── GitHubMilestoneHasNoOpenIssuesTask.java │ │ │ │ │ ├── GitHubMilestonePlugin.java │ │ │ │ │ └── Milestone.java │ │ │ │ └── release │ │ │ │ │ ├── CreateGitHubReleaseTask.java │ │ │ │ │ ├── GitHubReleaseApi.java │ │ │ │ │ ├── GitHubReleasePlugin.java │ │ │ │ │ └── Release.java │ │ │ │ ├── maven │ │ │ │ ├── MavenPublishingConventionsPlugin.java │ │ │ │ ├── PublishAllJavaComponentsPlugin.java │ │ │ │ ├── PublishArtifactsPlugin.java │ │ │ │ ├── PublishLocalPlugin.java │ │ │ │ ├── SpringMavenPlugin.java │ │ │ │ ├── SpringNexusPublishPlugin.java │ │ │ │ └── SpringSigningPlugin.java │ │ │ │ ├── propdeps │ │ │ │ ├── PropDepsEclipsePlugin.groovy │ │ │ │ ├── PropDepsIdeaPlugin.groovy │ │ │ │ └── PropDepsPlugin.groovy │ │ │ │ └── sagan │ │ │ │ ├── Release.java │ │ │ │ ├── SaganApi.java │ │ │ │ ├── SaganCreateReleaseTask.java │ │ │ │ ├── SaganDeleteReleaseTask.java │ │ │ │ └── SaganPlugin.java │ │ ├── s101 │ │ │ ├── S101Configure.java │ │ │ ├── S101Configurer.java │ │ │ ├── S101Install.java │ │ │ ├── S101Plugin.java │ │ │ └── S101PluginExtension.java │ │ └── trang │ │ │ ├── RncToXsd.java │ │ │ └── TrangPlugin.java │ └── resources │ │ ├── META-INF │ │ └── gradle-plugins │ │ │ ├── io.spring.convention.artifactory.properties │ │ │ ├── io.spring.convention.bom.properties │ │ │ ├── io.spring.convention.checkstyle.properties │ │ │ ├── io.spring.convention.docs.properties │ │ │ ├── io.spring.convention.include-check-remote.properties │ │ │ ├── io.spring.convention.integration-test.properties │ │ │ ├── io.spring.convention.jacoco.properties │ │ │ ├── io.spring.convention.javadoc-api.properties │ │ │ ├── io.spring.convention.javadoc-options.properties │ │ │ ├── io.spring.convention.repository.properties │ │ │ ├── io.spring.convention.root.properties │ │ │ ├── io.spring.convention.spring-module.properties │ │ │ ├── io.spring.convention.spring-test.properties │ │ │ └── io.spring.convention.tests-configuration.properties │ │ └── s101 │ │ ├── config.xml │ │ ├── project.java.hsp │ │ └── repository.xml │ └── test │ ├── java │ ├── io │ │ └── spring │ │ │ └── gradle │ │ │ ├── TestKit.java │ │ │ ├── convention │ │ │ ├── IncludeCheckRemotePluginTests.java │ │ │ ├── IntegrationPluginTests.java │ │ │ ├── IntegrationTestPluginITests.java │ │ │ ├── JacocoPluginITests.java │ │ │ ├── JavadocApiPluginITests.java │ │ │ ├── JavadocApiPluginTests.java │ │ │ ├── RepositoryConventionPluginTests.java │ │ │ ├── ShowcaseITests.java │ │ │ ├── SpringMavenPluginITests.java │ │ │ ├── TestsConfigurationPluginITests.java │ │ │ ├── UtilsTests.java │ │ │ └── sagan │ │ │ │ └── SaganApiTests.java │ │ │ └── github │ │ │ └── milestones │ │ │ └── GitHubMilestoneApiTests.java │ └── org │ │ └── springframework │ │ ├── gradle │ │ ├── antora │ │ │ └── CheckAntoraVersionPluginTests.java │ │ └── github │ │ │ ├── milestones │ │ │ └── GitHubMilestoneApiTests.java │ │ │ └── release │ │ │ └── GitHubReleaseApiTests.java │ │ └── security │ │ └── convention │ │ └── versions │ │ ├── DependencyExcludesTests.java │ │ └── TransitiveDependencyLookupUtilsTests.java │ └── resources │ ├── samples │ ├── integrationtest │ │ ├── withgroovy │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── integration-test │ │ │ │ └── groovy │ │ │ │ └── sample │ │ │ │ └── TheTest.groovy │ │ ├── withjava │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── integration-test │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── TheTests.java │ │ └── withpropdeps │ │ │ ├── build.gradle │ │ │ └── src │ │ │ └── integration-test │ │ │ └── java │ │ │ └── sample │ │ │ └── TheTests.java │ ├── jacoco │ │ └── java │ │ │ ├── build.gradle │ │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── TheClass.java │ │ │ └── test │ │ │ └── java │ │ │ └── sample │ │ │ └── TheClassTests.java │ ├── javadocapi │ │ └── multimodule │ │ │ ├── api │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── Api.java │ │ │ ├── build.gradle │ │ │ ├── impl │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── Impl.java │ │ │ ├── sample │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── sample │ │ │ │ └── Sample.java │ │ │ └── settings.gradle │ ├── maven │ │ ├── install-with-springio │ │ │ ├── build.gradle │ │ │ └── gradle │ │ │ │ └── dependency-management.gradle │ │ ├── install │ │ │ └── build.gradle │ │ ├── signing │ │ │ ├── build.gradle │ │ │ └── settings.gradle │ │ └── upload │ │ │ └── build.gradle │ ├── showcase │ │ ├── Jenkinsfile │ │ ├── bom │ │ │ └── bom.gradle │ │ ├── build.gradle │ │ ├── etc │ │ │ └── checkstyle │ │ │ │ └── checkstyle.xml │ │ ├── settings.gradle │ │ ├── sgbcs-api │ │ │ ├── sgbcs-api.gradle │ │ │ └── src │ │ │ │ ├── main │ │ │ │ └── java │ │ │ │ │ └── api │ │ │ │ │ └── Api.java │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── api │ │ │ │ └── ApiTests.java │ │ ├── sgbcs-core │ │ │ ├── sgbcs-core.gradle │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── core │ │ │ │ │ │ ├── CoreClass.java │ │ │ │ │ │ └── HasOptional.java │ │ │ │ └── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ ├── spring.handlers │ │ │ │ │ └── spring.schemas │ │ │ │ │ └── org │ │ │ │ │ └── springframework │ │ │ │ │ └── springgradlebuildsample │ │ │ │ │ └── config │ │ │ │ │ ├── spring-springgradlebuildsample-2.0.xsd │ │ │ │ │ ├── spring-springgradlebuildsample-2.1.xsd │ │ │ │ │ └── spring-springgradlebuildsample-2.2.xsd │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── core │ │ │ │ ├── CoreClassTests.java │ │ │ │ └── HasOptionalTests.java │ │ └── sgbcs-docs │ │ │ ├── sgbcs-docs.gradle │ │ │ └── src │ │ │ ├── docs │ │ │ └── asciidoc │ │ │ │ ├── docinfo.html │ │ │ │ ├── images │ │ │ │ └── sunset.jpg │ │ │ │ ├── index.adoc │ │ │ │ └── subdir │ │ │ │ ├── _b.adoc │ │ │ │ └── _c.adoc │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── StringUtils.java │ └── testsconfiguration │ │ ├── build.gradle │ │ ├── core │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── sample │ │ │ └── Dependency.java │ │ ├── settings.gradle │ │ └── web │ │ ├── build.gradle │ │ └── src │ │ └── test │ │ └── java │ │ └── sample │ │ └── DependencyTests.java │ └── test-private.pgp ├── cached-antora-playbook.yml ├── changelog.txt ├── core ├── .gitignore ├── .springBeans ├── build.gradle └── src │ ├── itest-openldap │ └── java │ │ ├── conf │ │ ├── ldap-openldap.properties │ │ ├── ldap.conf │ │ └── ldapTemplateTestContext-openldap.xml │ │ └── org │ │ └── springframework │ │ └── ldap │ │ ├── LdapTemplateLookupOpenLdapITests.java │ │ └── control │ │ ├── LdapTemplatePagedSearchITests.java │ │ └── LdapTemplateSortedSearchITests.java │ ├── main │ ├── java │ │ ├── org │ │ │ └── springframework │ │ │ │ ├── LdapDataEntry.java │ │ │ │ ├── ldap │ │ │ │ ├── AttributeInUseException.java │ │ │ │ ├── AttributeModificationException.java │ │ │ │ ├── AuthenticationException.java │ │ │ │ ├── AuthenticationNotSupportedException.java │ │ │ │ ├── BadLdapGrammarException.java │ │ │ │ ├── CannotProceedException.java │ │ │ │ ├── CommunicationException.java │ │ │ │ ├── ConfigurationException.java │ │ │ │ ├── ContextNotEmptyException.java │ │ │ │ ├── InsufficientResourcesException.java │ │ │ │ ├── InterruptedNamingException.java │ │ │ │ ├── InvalidAttributeIdentifierException.java │ │ │ │ ├── InvalidAttributeValueException.java │ │ │ │ ├── InvalidAttributesException.java │ │ │ │ ├── InvalidNameException.java │ │ │ │ ├── InvalidSearchControlsException.java │ │ │ │ ├── InvalidSearchFilterException.java │ │ │ │ ├── LdapReferralException.java │ │ │ │ ├── LimitExceededException.java │ │ │ │ ├── LinkException.java │ │ │ │ ├── LinkLoopException.java │ │ │ │ ├── MalformedLinkException.java │ │ │ │ ├── NameAlreadyBoundException.java │ │ │ │ ├── NameNotFoundException.java │ │ │ │ ├── NamingException.java │ │ │ │ ├── NamingSecurityException.java │ │ │ │ ├── NoInitialContextException.java │ │ │ │ ├── NoPermissionException.java │ │ │ │ ├── NoSuchAttributeException.java │ │ │ │ ├── NotContextException.java │ │ │ │ ├── OperationNotSupportedException.java │ │ │ │ ├── PartialResultException.java │ │ │ │ ├── ReferralException.java │ │ │ │ ├── SchemaViolationException.java │ │ │ │ ├── ServiceUnavailableException.java │ │ │ │ ├── SizeLimitExceededException.java │ │ │ │ ├── TimeLimitExceededException.java │ │ │ │ ├── UncategorizedLdapException.java │ │ │ │ ├── aot │ │ │ │ │ └── hint │ │ │ │ │ │ └── LdapCoreRuntimeHints.java │ │ │ │ ├── authentication │ │ │ │ │ ├── DefaultValuesAuthenticationSourceDecorator.java │ │ │ │ │ └── package.html │ │ │ │ ├── config │ │ │ │ │ ├── ContextSourceParser.java │ │ │ │ │ ├── DefaultRenamingStrategyParser.java │ │ │ │ │ ├── Elements.java │ │ │ │ │ ├── LdapNamespaceHandler.java │ │ │ │ │ ├── LdapTemplateParser.java │ │ │ │ │ ├── ParserUtils.java │ │ │ │ │ └── TransactionManagerParser.java │ │ │ │ ├── control │ │ │ │ │ ├── AbstractFallbackRequestAndResponseControlDirContextProcessor.java │ │ │ │ │ ├── AbstractRequestControlDirContextProcessor.java │ │ │ │ │ ├── CreateControlFailedException.java │ │ │ │ │ ├── PagedResult.java │ │ │ │ │ ├── PagedResultsCookie.java │ │ │ │ │ ├── PagedResultsDirContextProcessor.java │ │ │ │ │ ├── PagedResultsRequestControl.java │ │ │ │ │ ├── SortControlDirContextProcessor.java │ │ │ │ │ └── package.html │ │ │ │ ├── convert │ │ │ │ │ ├── ConversionServiceBeanFactoryPostProcessor.java │ │ │ │ │ ├── ConverterUtils.java │ │ │ │ │ ├── NameToStringConverter.java │ │ │ │ │ └── StringToNameConverter.java │ │ │ │ ├── core │ │ │ │ │ ├── AttributeModificationsAware.java │ │ │ │ │ ├── AttributesMapper.java │ │ │ │ │ ├── AttributesMapperCallbackHandler.java │ │ │ │ │ ├── AuthenticatedLdapEntryContextCallback.java │ │ │ │ │ ├── AuthenticatedLdapEntryContextMapper.java │ │ │ │ │ ├── AuthenticationErrorCallback.java │ │ │ │ │ ├── AuthenticationSource.java │ │ │ │ │ ├── CollectingAuthenticationErrorCallback.java │ │ │ │ │ ├── CollectingNameClassPairCallbackHandler.java │ │ │ │ │ ├── ContextAssembler.java │ │ │ │ │ ├── ContextExecutor.java │ │ │ │ │ ├── ContextMapper.java │ │ │ │ │ ├── ContextMapperCallbackHandler.java │ │ │ │ │ ├── ContextSource.java │ │ │ │ │ ├── DefaultDnParserFactory.java │ │ │ │ │ ├── DefaultLdapClient.java │ │ │ │ │ ├── DefaultLdapClientBuilder.java │ │ │ │ │ ├── DefaultNameClassPairMapper.java │ │ │ │ │ ├── DirContextAdapter.java │ │ │ │ │ ├── DirContextOperations.java │ │ │ │ │ ├── DirContextProcessor.java │ │ │ │ │ ├── DirContextProxy.java │ │ │ │ │ ├── DistinguishedName.java │ │ │ │ │ ├── DistinguishedNameEditor.java │ │ │ │ │ ├── DnParser.java │ │ │ │ │ ├── IncrementalAttributesMapper.java │ │ │ │ │ ├── IterableNamingEnumeration.java │ │ │ │ │ ├── LdapAttribute.java │ │ │ │ │ ├── LdapAttributes.java │ │ │ │ │ ├── LdapClient.java │ │ │ │ │ ├── LdapEntryIdentification.java │ │ │ │ │ ├── LdapEntryIdentificationContextMapper.java │ │ │ │ │ ├── LdapOperations.java │ │ │ │ │ ├── LdapRdn.java │ │ │ │ │ ├── LdapRdnComponent.java │ │ │ │ │ ├── LdapTemplate.java │ │ │ │ │ ├── NameAwareAttribute.java │ │ │ │ │ ├── NameAwareAttributes.java │ │ │ │ │ ├── NameClassPairCallbackHandler.java │ │ │ │ │ ├── NameClassPairMapper.java │ │ │ │ │ ├── ObjectRetrievalException.java │ │ │ │ │ ├── SearchExecutor.java │ │ │ │ │ ├── package.html │ │ │ │ │ └── support │ │ │ │ │ │ ├── AbstractContextMapper.java │ │ │ │ │ │ ├── AbstractContextSource.java │ │ │ │ │ │ ├── AbstractTlsDirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── AggregateDirContextProcessor.java │ │ │ │ │ │ ├── BaseLdapNameAware.java │ │ │ │ │ │ ├── BaseLdapPathAware.java │ │ │ │ │ │ ├── BaseLdapPathBeanPostProcessor.java │ │ │ │ │ │ ├── BaseLdapPathContextSource.java │ │ │ │ │ │ ├── BaseLdapPathSource.java │ │ │ │ │ │ ├── ContextMapperCallbackHandlerWithControls.java │ │ │ │ │ │ ├── ContextMapperWithControls.java │ │ │ │ │ │ ├── ContextSourceObservationPostProcessor.java │ │ │ │ │ │ ├── CountNameClassPairCallbackHandler.java │ │ │ │ │ │ ├── DefaultDirObjectFactory.java │ │ │ │ │ │ ├── DefaultIncrementalAttributesMapper.java │ │ │ │ │ │ ├── DefaultTlsDirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── DelegatingBaseLdapPathContextSourceSupport.java │ │ │ │ │ │ ├── DigestMd5DirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── DirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── DirContextSource.java │ │ │ │ │ │ ├── ExternalTlsDirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── LdapContextSource.java │ │ │ │ │ │ ├── LdapOperationsCallback.java │ │ │ │ │ │ ├── LookupAttemptingCallback.java │ │ │ │ │ │ ├── ObservationContextSource.java │ │ │ │ │ │ ├── RangeOption.java │ │ │ │ │ │ ├── SimpleDirContextAuthenticationStrategy.java │ │ │ │ │ │ ├── SingleContextSource.java │ │ │ │ │ │ └── package.html │ │ │ │ ├── filter │ │ │ │ │ ├── AbsoluteFalseFilter.java │ │ │ │ │ ├── AbsoluteTrueFilter.java │ │ │ │ │ ├── AbstractFilter.java │ │ │ │ │ ├── AndFilter.java │ │ │ │ │ ├── BinaryLogicalFilter.java │ │ │ │ │ ├── CompareFilter.java │ │ │ │ │ ├── EqualsFilter.java │ │ │ │ │ ├── Filter.java │ │ │ │ │ ├── FilterEditor.java │ │ │ │ │ ├── GreaterThanOrEqualsFilter.java │ │ │ │ │ ├── HardcodedFilter.java │ │ │ │ │ ├── LessThanOrEqualsFilter.java │ │ │ │ │ ├── LikeFilter.java │ │ │ │ │ ├── NotFilter.java │ │ │ │ │ ├── NotPresentFilter.java │ │ │ │ │ ├── OrFilter.java │ │ │ │ │ ├── PresentFilter.java │ │ │ │ │ ├── ProximityFilter.java │ │ │ │ │ ├── WhitespaceWildcardsFilter.java │ │ │ │ │ └── package.html │ │ │ │ ├── odm │ │ │ │ │ ├── annotations │ │ │ │ │ │ ├── Attribute.java │ │ │ │ │ │ ├── DnAttribute.java │ │ │ │ │ │ ├── Entry.java │ │ │ │ │ │ ├── Id.java │ │ │ │ │ │ ├── Transient.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── config │ │ │ │ │ │ └── ObjectDirectoryMapperConfiguration.java │ │ │ │ │ ├── core │ │ │ │ │ │ ├── ObjectDirectoryMapper.java │ │ │ │ │ │ ├── OdmException.java │ │ │ │ │ │ ├── impl │ │ │ │ │ │ │ ├── AttributeMetaData.java │ │ │ │ │ │ │ ├── CaseIgnoreString.java │ │ │ │ │ │ │ ├── DefaultObjectDirectoryMapper.java │ │ │ │ │ │ │ ├── InvalidEntryException.java │ │ │ │ │ │ │ ├── MetaDataException.java │ │ │ │ │ │ │ ├── ObjectMetaData.java │ │ │ │ │ │ │ ├── UnmanagedClassException.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── typeconversion │ │ │ │ │ │ ├── ConverterException.java │ │ │ │ │ │ ├── ConverterManager.java │ │ │ │ │ │ ├── impl │ │ │ │ │ │ ├── ConversionServiceConverterManager.java │ │ │ │ │ │ ├── Converter.java │ │ │ │ │ │ ├── ConverterManagerFactoryBean.java │ │ │ │ │ │ ├── ConverterManagerImpl.java │ │ │ │ │ │ ├── StringConverter.java │ │ │ │ │ │ ├── converters │ │ │ │ │ │ │ ├── FromStringConverter.java │ │ │ │ │ │ │ ├── ToStringConverter.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── package-info.java │ │ │ │ ├── package.html │ │ │ │ ├── pool │ │ │ │ │ ├── DelegatingContext.java │ │ │ │ │ ├── DelegatingDirContext.java │ │ │ │ │ ├── DelegatingLdapContext.java │ │ │ │ │ ├── DirContextType.java │ │ │ │ │ ├── FailureAwareContext.java │ │ │ │ │ ├── MutableDelegatingLdapContext.java │ │ │ │ │ ├── PoolExhaustedAction.java │ │ │ │ │ ├── factory │ │ │ │ │ │ ├── DirContextPoolableObjectFactory.java │ │ │ │ │ │ ├── MutablePoolingContextSource.java │ │ │ │ │ │ ├── PoolingContextSource.java │ │ │ │ │ │ └── package.html │ │ │ │ │ ├── package.html │ │ │ │ │ └── validation │ │ │ │ │ │ ├── DefaultDirContextValidator.java │ │ │ │ │ │ ├── DirContextValidator.java │ │ │ │ │ │ └── package.html │ │ │ │ ├── pool2 │ │ │ │ │ ├── DelegatingContext.java │ │ │ │ │ ├── DelegatingDirContext.java │ │ │ │ │ ├── DelegatingLdapContext.java │ │ │ │ │ ├── DirContextType.java │ │ │ │ │ ├── FailureAwareContext.java │ │ │ │ │ ├── MutableDelegatingLdapContext.java │ │ │ │ │ ├── factory │ │ │ │ │ │ ├── DirContextPooledObjectFactory.java │ │ │ │ │ │ ├── MutablePooledContextSource.java │ │ │ │ │ │ ├── PoolConfig.java │ │ │ │ │ │ ├── PooledContextSource.java │ │ │ │ │ │ └── package.html │ │ │ │ │ ├── package.html │ │ │ │ │ └── validation │ │ │ │ │ │ ├── DefaultDirContextValidator.java │ │ │ │ │ │ ├── DirContextValidator.java │ │ │ │ │ │ └── package.html │ │ │ │ ├── query │ │ │ │ │ ├── AppendableContainerCriteria.java │ │ │ │ │ ├── ConditionCriteria.java │ │ │ │ │ ├── ContainerCriteria.java │ │ │ │ │ ├── CriteriaContainerType.java │ │ │ │ │ ├── DefaultConditionCriteria.java │ │ │ │ │ ├── DefaultContainerCriteria.java │ │ │ │ │ ├── LdapQuery.java │ │ │ │ │ ├── LdapQueryBuilder.java │ │ │ │ │ └── SearchScope.java │ │ │ │ ├── support │ │ │ │ │ ├── AttributeValueCallbackHandler.java │ │ │ │ │ ├── LdapEncoder.java │ │ │ │ │ ├── LdapNameBuilder.java │ │ │ │ │ ├── LdapUtils.java │ │ │ │ │ ├── ListComparator.java │ │ │ │ │ └── package.html │ │ │ │ └── transaction │ │ │ │ │ └── compensating │ │ │ │ │ ├── BindOperationExecutor.java │ │ │ │ │ ├── BindOperationRecorder.java │ │ │ │ │ ├── LdapCompensatingTransactionOperationFactory.java │ │ │ │ │ ├── LdapTransactionUtils.java │ │ │ │ │ ├── ModifyAttributesOperationExecutor.java │ │ │ │ │ ├── ModifyAttributesOperationRecorder.java │ │ │ │ │ ├── NullOperationExecutor.java │ │ │ │ │ ├── NullOperationRecorder.java │ │ │ │ │ ├── RebindOperationExecutor.java │ │ │ │ │ ├── RebindOperationRecorder.java │ │ │ │ │ ├── RenameOperationExecutor.java │ │ │ │ │ ├── RenameOperationRecorder.java │ │ │ │ │ ├── TempEntryRenamingStrategy.java │ │ │ │ │ ├── UnbindOperationExecutor.java │ │ │ │ │ ├── UnbindOperationRecorder.java │ │ │ │ │ ├── manager │ │ │ │ │ ├── ContextSourceAndDataSourceTransactionManager.java │ │ │ │ │ ├── ContextSourceAndHibernateTransactionManager.java │ │ │ │ │ ├── ContextSourceTransactionManager.java │ │ │ │ │ ├── ContextSourceTransactionManagerDelegate.java │ │ │ │ │ ├── DirContextHolder.java │ │ │ │ │ ├── TransactionAwareContextSourceProxy.java │ │ │ │ │ ├── TransactionAwareDirContextInvocationHandler.java │ │ │ │ │ └── package.html │ │ │ │ │ ├── package.html │ │ │ │ │ └── support │ │ │ │ │ ├── DefaultTempEntryRenamingStrategy.java │ │ │ │ │ ├── DifferentSubtreeTempEntryRenamingStrategy.java │ │ │ │ │ └── package.html │ │ │ │ └── transaction │ │ │ │ └── compensating │ │ │ │ ├── CompensatingTransactionOperationExecutor.java │ │ │ │ ├── CompensatingTransactionOperationFactory.java │ │ │ │ ├── CompensatingTransactionOperationManager.java │ │ │ │ ├── CompensatingTransactionOperationRecorder.java │ │ │ │ ├── package.html │ │ │ │ └── support │ │ │ │ ├── AbstractCompensatingTransactionManagerDelegate.java │ │ │ │ ├── CompensatingTransactionHolderSupport.java │ │ │ │ ├── CompensatingTransactionObject.java │ │ │ │ ├── CompensatingTransactionUtils.java │ │ │ │ ├── DefaultCompensatingTransactionOperationManager.java │ │ │ │ └── package.html │ │ └── overview.html │ ├── javacc │ │ └── DnParserImpl.jj │ └── resources │ │ ├── META-INF │ │ ├── spring.handlers │ │ ├── spring.schemas │ │ └── spring │ │ │ └── aot.factories │ │ └── org │ │ └── springframework │ │ └── ldap │ │ └── config │ │ ├── spring-ldap-2.0.xsd │ │ ├── spring-ldap-2.1.xsd │ │ └── spring-ldap-2.2.xsd │ └── test │ ├── java │ └── org │ │ └── springframework │ │ ├── ldap │ │ ├── NamingExceptionTests.java │ │ ├── aot │ │ │ └── hint │ │ │ │ └── LdapCoreRuntimeHintsTests.java │ │ ├── authentication │ │ │ └── DefaultValuesAuthenticationSourceDecoratorTests.java │ │ ├── config │ │ │ ├── DummyAuthenticationSource.java │ │ │ ├── DummyAuthenticationStrategy.java │ │ │ ├── LdapTemplateNamespaceHandlerTests.java │ │ │ └── MockFactoryBean.java │ │ ├── control │ │ │ ├── PagedResultTests.java │ │ │ ├── PagedResultsCookieTests.java │ │ │ ├── PagedResultsDirContextProcessorTests.java │ │ │ ├── RequestControlDirContextProcessorTests.java │ │ │ └── SortControlDirContextProcessorTests.java │ │ ├── core │ │ │ ├── CollectingNameClassPairCallbackHandlerTests.java │ │ │ ├── ContextMapperCallbackHandlerTests.java │ │ │ ├── DefaultLdapClientListTests.java │ │ │ ├── DefaultLdapClientLookupTests.java │ │ │ ├── DefaultLdapClientRenameTests.java │ │ │ ├── DefaultLdapClientTests.java │ │ │ ├── DirContextAdapterBugTests.java │ │ │ ├── DirContextAdapterTests.java │ │ │ ├── DistinguishedNameEditorTests.java │ │ │ ├── DistinguishedNameTests.java │ │ │ ├── LdapRdnComponentTests.java │ │ │ ├── LdapRdnTests.java │ │ │ ├── LdapTemplateListTests.java │ │ │ ├── LdapTemplateLookupTests.java │ │ │ ├── LdapTemplateOdmTests.java │ │ │ ├── LdapTemplateRenameTests.java │ │ │ ├── LdapTemplateTests.java │ │ │ ├── MockDirContext.java │ │ │ ├── NameAwareAttributeTests.java │ │ │ ├── NameAwareAttributesTests.java │ │ │ ├── TestDirContextAdapters.java │ │ │ ├── TestModificationItems.java │ │ │ ├── TestNameAwareAttributes.java │ │ │ └── support │ │ │ │ ├── AbstractContextSourceTests.java │ │ │ │ ├── AggregateDirContextProcessorTests.java │ │ │ │ ├── BaseLdapPathBeanPostProcessorTests.java │ │ │ │ ├── ContextMapperCallbackHandlerWithControlsTests.java │ │ │ │ ├── CountNameClassPairResultCallbackHandlerTests.java │ │ │ │ ├── DefaultDirObjectFactoryTests.java │ │ │ │ ├── DefaultIncrementalAttributesMapperTests.java │ │ │ │ ├── DefaultTlsDirContextAuthenticationStrategyTests.java │ │ │ │ ├── LdapContextSourceTests.java │ │ │ │ ├── ObservationContextSourceTests.java │ │ │ │ ├── RangeOptionTests.java │ │ │ │ ├── SimpleDirContextAuthenticationStrategyTests.java │ │ │ │ ├── SingleContextSourceTests.java │ │ │ │ └── ldap294 │ │ │ │ └── Ldap294Tests.java │ │ ├── filter │ │ │ ├── AbstractFilterTests.java │ │ │ ├── AndFilterTests.java │ │ │ ├── EqualsFilterTests.java │ │ │ ├── GreaterThanOrEqualsFilterTests.java │ │ │ ├── HardcodedFilterTests.java │ │ │ ├── LessThanOrEqualsFilterTests.java │ │ │ ├── LikeFilterTests.java │ │ │ ├── NotFilterTests.java │ │ │ ├── NotPresentFilterTests.java │ │ │ ├── OrFilterTests.java │ │ │ ├── PresentFilterTests.java │ │ │ ├── ProximityFilterTests.java │ │ │ └── WhitespaceWildcardsFilterTests.java │ │ ├── odm │ │ │ └── core │ │ │ │ └── impl │ │ │ │ ├── BaseUnitTestPerson.java │ │ │ │ ├── DefaultObjectDirectoryMapperTests.java │ │ │ │ ├── UnitTestPerson.java │ │ │ │ ├── UnitTestPersonWithIndexedAndUnindexedDnAttributes.java │ │ │ │ ├── UnitTestPersonWithIndexedDnAttributes.java │ │ │ │ └── UnitTestPersonWithInvalidFieldType.java │ │ ├── pool │ │ │ ├── AbstractPoolTestCase.java │ │ │ ├── DelegatingContextTests.java │ │ │ ├── DelegatingDirContextTests.java │ │ │ ├── DelegatingLdapContextTests.java │ │ │ ├── MutableDelegatingLdapContextTests.java │ │ │ ├── factory │ │ │ │ ├── DirContextPoolableObjectFactoryTests.java │ │ │ │ ├── MutablePoolingContextSourceTests.java │ │ │ │ └── PoolingContextSourceTests.java │ │ │ └── validation │ │ │ │ └── DefaultDirContextValidatorTests.java │ │ ├── pool2 │ │ │ ├── AbstractPoolTestCase.java │ │ │ ├── DelegatingContextTests.java │ │ │ ├── DelegatingDirContextTests.java │ │ │ ├── DelegatingLdapContextTests.java │ │ │ ├── DummyEvictionPolicy.java │ │ │ ├── MutableDelegatingLdapContextTests.java │ │ │ └── factory │ │ │ │ ├── DirContextPooledObjectFactoryTests.java │ │ │ │ ├── MutablePooledContextSourceTests.java │ │ │ │ ├── PoolConfigTests.java │ │ │ │ └── PooledContextSourceTests.java │ │ ├── query │ │ │ └── LdapQueryBuilderTests.java │ │ ├── support │ │ │ ├── LdapEncoderTests.java │ │ │ ├── LdapNameBuilderTests.java │ │ │ └── LdapUtilsTests.java │ │ ├── transaction │ │ │ └── compensating │ │ │ │ ├── BindOperationExecutorTests.java │ │ │ │ ├── BindOperationRecorderTests.java │ │ │ │ ├── LdapCompensatingTransactionOperationFactoryTests.java │ │ │ │ ├── LdapTransactionUtilsTests.java │ │ │ │ ├── ModifyAttributesOperationExecutorTests.java │ │ │ │ ├── ModifyAttributesOperationRecorderTests.java │ │ │ │ ├── RebindOperationExecutorTests.java │ │ │ │ ├── RebindOperationRecorderTests.java │ │ │ │ ├── RenameOperationExecutorTests.java │ │ │ │ ├── RenameOperationRecorderTests.java │ │ │ │ ├── UnbindOperationExecutorTests.java │ │ │ │ ├── UnbindOperationRecorderTests.java │ │ │ │ ├── manager │ │ │ │ ├── CompensatingTransactionUtilsTests.java │ │ │ │ ├── ContextSourceTransactionManagerTests.java │ │ │ │ ├── TransactionAwareContextSourceProxyTests.java │ │ │ │ └── TransactionAwareDirContextInvocationHandlerTests.java │ │ │ │ └── support │ │ │ │ ├── DefaultTempEntryRenamingStrategyTests.java │ │ │ │ └── DifferentSubtreeTempEntryRenamingStrategyTests.java │ │ └── util │ │ │ └── ListComparatorTests.java │ │ └── transaction │ │ └── compensating │ │ └── support │ │ └── DefaultCompensatingTransactionOperationManagerTests.java │ └── resources │ ├── ldap-annotation-config.xml │ ├── ldap-namespace-config-anonymous-read-only-and-transactions.xml │ ├── ldap-namespace-config-anonymous-read-only.xml │ ├── ldap-namespace-config-defaults.xml │ ├── ldap-namespace-config-missing-password.xml │ ├── ldap-namespace-config-missing-username.xml │ ├── ldap-namespace-config-multiurls.xml │ ├── ldap-namespace-config-pool2-configured-poolsize.xml │ ├── ldap-namespace-config-pool2-test-specified.xml │ ├── ldap-namespace-config-pool2-with-native.xml │ ├── ldap-namespace-config-pool2-with-pool1.xml │ ├── ldap-namespace-config-pooling-config-with-placeholders.xml │ ├── ldap-namespace-config-pooling-configured-poolsize.xml │ ├── ldap-namespace-config-pooling-defaults.xml │ ├── ldap-namespace-config-pooling-test-specified.xml │ ├── ldap-namespace-config-pooling-with-native.xml │ ├── ldap-namespace-config-pooling2-config-with-placeholders.xml │ ├── ldap-namespace-config-pooling2-defaults.xml │ ├── ldap-namespace-config-references.xml │ ├── ldap-namespace-config-spel-multiurls.xml │ ├── ldap-namespace-config-spel.xml │ ├── ldap-namespace-config-transactional-datasource.xml │ ├── ldap-namespace-config-transactional-defaults-with-suffix.xml │ ├── ldap-namespace-config-transactional-defaults.xml │ ├── ldap-namespace-config-transactional-different-subtree.xml │ ├── ldap-namespace-config-values.xml │ ├── ldap.properties │ ├── log4j.properties │ └── query-test.xml ├── dependencies └── build.gradle ├── etc ├── checkstyle │ ├── checkstyle-suppressions.xml │ ├── checkstyle.xml │ └── header.txt ├── ec2 │ ├── fabfile.py │ └── spring-ldap-ad-keystore ├── nohttp │ ├── allowlist.lines │ └── checkstyle.xml ├── s101 │ ├── config.xml │ ├── project.java.hsp │ └── repository │ │ ├── repository.xml │ │ └── snapshots │ │ └── baseline │ │ ├── actions.hsx │ │ ├── arch.hsx │ │ ├── key-measures.xml │ │ ├── package-slice.hsx │ │ ├── settings.hsx │ │ ├── spec.hsx │ │ ├── summary.hsx │ │ ├── violations.xml │ │ ├── xb.hsx │ │ ├── xblite.hsx │ │ └── xs-offenders.hsx └── snapshotzipbuilds │ ├── 1.3-snapshot-download.php │ ├── dist-download.css │ ├── readme.txt │ └── snapshot-download.xsl ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ldif └── ldif-core │ ├── .gitignore │ ├── .springBeans │ ├── build.gradle │ └── src │ ├── main │ └── java │ │ ├── org │ │ └── springframework │ │ │ └── ldap │ │ │ ├── ldif │ │ │ ├── InvalidAttributeFormatException.java │ │ │ ├── InvalidRecordFormatException.java │ │ │ ├── package.html │ │ │ ├── parser │ │ │ │ ├── LdifParser.java │ │ │ │ ├── Parser.java │ │ │ │ └── package.html │ │ │ └── support │ │ │ │ ├── AttributeValidationPolicy.java │ │ │ │ ├── DefaultAttributeValidationPolicy.java │ │ │ │ ├── LineIdentifier.java │ │ │ │ ├── SeparatorPolicy.java │ │ │ │ └── package.html │ │ │ └── schema │ │ │ ├── BasicSchemaSpecification.java │ │ │ ├── DefaultSchemaSpecification.java │ │ │ ├── Specification.java │ │ │ └── package.html │ │ └── overview.html │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── ldap │ │ └── ldif │ │ ├── DefaultAttributeValidationPolicyTests.java │ │ ├── Ldap233LdifParserTests.java │ │ └── LdifParserTests.java │ └── resources │ ├── log4j.properties │ └── test.ldif ├── lib └── ldapbp.jar ├── license.txt ├── modules └── ROOT │ ├── nav.adoc │ └── pages │ ├── adding-missing-overloaded-api-methods.adoc │ ├── community.adoc │ ├── configuration.adoc │ ├── dirobjectfactory.adoc │ ├── faq.adoc │ ├── getting-spring-ldap.adoc │ ├── index.adoc │ ├── introduction.adoc │ ├── ldif-parsing.adoc │ ├── modules.adoc │ ├── observability.adoc │ ├── odm.adoc │ ├── pooling.adoc │ ├── preface.adoc │ ├── processing-the-dircontext.adoc │ ├── query-builder-advanced.adoc │ ├── repositories.adoc │ ├── spring-ldap-basic-usage.adoc │ ├── testing.adoc │ ├── transaction-support.adoc │ ├── user-authentication.adoc │ └── utilities.adoc ├── notice.txt ├── odm ├── .gitignore ├── .springBeans ├── build.gradle └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ └── odm │ │ │ ├── core │ │ │ ├── OdmManager.java │ │ │ └── impl │ │ │ │ ├── OdmManagerImpl.java │ │ │ │ └── OdmManagerImplFactoryBean.java │ │ │ └── tools │ │ │ ├── AttributeSchema.java │ │ │ ├── ObjectSchema.java │ │ │ ├── SchemaReader.java │ │ │ ├── SchemaToJava.java │ │ │ ├── SchemaViewer.java │ │ │ ├── SyntaxToJavaClass.java │ │ │ └── package-info.java │ └── resources │ │ └── org │ │ └── springframework │ │ └── ldap │ │ └── odm │ │ └── tools │ │ ├── binary-attributes.txt │ │ └── oc-to-java.ftl │ └── test │ ├── java │ └── org │ │ ├── apache │ │ └── directory │ │ │ └── server │ │ │ └── core │ │ │ └── avltree │ │ │ └── ArrayMarshaller.java │ │ └── springframework │ │ └── ldap │ │ └── odm │ │ └── test │ │ ├── ConverterFactoryTests.java │ │ ├── ConverterManagerTests.java │ │ ├── JDependTests.java │ │ ├── LdapTests.java │ │ ├── OrganizationalUnit.java │ │ ├── Person.java │ │ ├── PlainPerson.java │ │ ├── SchemaToJavaTests.java │ │ ├── SchemaViewerTests.java │ │ ├── UriConverter.java │ │ └── utils │ │ ├── CompilerInterface.java │ │ ├── ExecuteRunnable.java │ │ ├── GetFreePort.java │ │ └── RunnableTests.java │ └── resources │ ├── log4j.properties │ ├── syntax-to-class-map.txt │ └── testdata.ldif ├── parent └── .gitignore ├── readme.adoc ├── samples └── readme.md ├── sandbox ├── .springBeans ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── ldap │ │ └── control │ │ ├── VirtualListViewControlAggregateDirContextProcessor.java │ │ ├── VirtualListViewControlDirContextProcessor.java │ │ └── VirtualListViewResultsCookie.java │ └── test │ └── java │ └── org │ └── springframework │ └── ldap │ └── control │ └── VirtualListViewControlDirContextProcessorTests.java ├── scripts ├── release │ ├── release-notes-sections.yml │ └── wait-for-done.sh └── update-dependencies.sh ├── settings.gradle ├── src ├── docs │ └── asciidoc │ │ └── Guardfile ├── main │ └── javadoc │ │ ├── javadoc.css │ │ └── overview.html └── site │ ├── apt │ ├── downloads │ │ ├── releases.apt │ │ └── snapshots.apt │ ├── reference.apt │ ├── resources.apt │ └── upgrading.apt │ ├── fml │ └── faq.fml │ ├── resources │ └── images │ │ ├── external.png │ │ └── spring-ldap.png │ ├── site.xml │ └── xdoc │ └── index.xml ├── test-support ├── .gitignore ├── .springBeans ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── ldap │ │ └── test │ │ ├── AbstractEc2InstanceLaunchingFactoryBean.java │ │ ├── AttributeCheckAttributesMapper.java │ │ ├── AttributeCheckContextMapper.java │ │ ├── ContextSourceEc2InstanceLaunchingFactoryBean.java │ │ ├── DummyDirContext.java │ │ ├── EmbeddedLdapServer.java │ │ ├── EmbeddedLdapServerFactoryBean.java │ │ ├── LdapTestUtils.java │ │ ├── LdifPopulator.java │ │ ├── TestContextSourceFactoryBean.java │ │ ├── package.html │ │ └── unboundid │ │ ├── EmbeddedLdapServer.java │ │ ├── EmbeddedLdapServerFactoryBean.java │ │ ├── LdapTestUtils.java │ │ ├── LdifPopulator.java │ │ └── TestContextSourceFactoryBean.java │ └── test │ ├── java │ └── org │ │ ├── apache │ │ └── directory │ │ │ └── server │ │ │ └── core │ │ │ └── avltree │ │ │ └── ArrayMarshaller.java │ │ └── springframework │ │ └── ldap │ │ └── test │ │ ├── EmbeddedLdapServerFactoryBeanTests.java │ │ └── unboundid │ │ ├── EmbeddedLdapServerFactoryBeanTests.java │ │ ├── EmbeddedLdapServerTests.java │ │ └── TestContextSourceFactoryBeanTests.java │ └── resources │ ├── applicationContext-ldifPopulator.xml │ ├── applicationContext-testContextSource.xml │ ├── applicationContext.xml │ └── setup_data.ldif ├── test ├── integration-tests-ad │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ └── itest │ │ │ └── ad │ │ │ ├── CompilerInterface.java │ │ │ ├── IncrementalAttributeMapperITests.java │ │ │ └── SchemaToJavaAdITests.java │ │ └── resources │ │ └── incrementalAttributeMapperTest.xml ├── integration-tests-openldap │ ├── .gitignore │ ├── .springBeans │ ├── README-EC2-tests.txt │ ├── build.gradle │ ├── etc │ │ └── springldap-openldap.pem │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ ├── AllMatchHostnameVerifier.java │ │ │ ├── DigestMd5ContextSourceEc2InstanceLaunchingFactoryBean.java │ │ │ ├── TlsContextSourceEc2InstanceLaunchingFactoryBean.java │ │ │ └── control │ │ │ └── Person.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ └── itest │ │ │ ├── control │ │ │ └── PagedSearchITests.java │ │ │ └── core │ │ │ ├── LdapTemplateSearchResultITests.java │ │ │ └── support │ │ │ └── DigestMd5AuthenticationITests.java │ │ └── resources │ │ ├── conf │ │ ├── ldap.properties │ │ ├── ldapTemplateDigestMd5TestContext.xml │ │ ├── ldapTemplateTestContext-tls.xml │ │ └── pagedSearchTestContext.xml │ │ ├── log4j.properties │ │ └── setup_data.ldif ├── integration-tests-sunone │ ├── .gitignore │ ├── .springBeans │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ └── itest │ │ │ └── core │ │ │ └── LdapTemplateVirtualListViewSearchITests.java │ │ └── resources │ │ ├── conf │ │ ├── ldap.properties │ │ └── ldapTemplateTestContext.xml │ │ └── log4j.properties └── integration-tests │ ├── .gitignore │ ├── .springBeans │ ├── build.gradle │ ├── readme.itest.config.md │ └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── ldap │ │ └── itest │ │ ├── LdapGroupDao.java │ │ ├── NoAdTests.java │ │ ├── Person.java │ │ ├── PersonAttributesMapper.java │ │ ├── PersonContextMapper.java │ │ ├── core │ │ ├── DummyDistinguishedNameConsumer.java │ │ └── support │ │ │ ├── DummyBaseLdapNameAware.java │ │ │ └── DummyBaseLdapPathAware.java │ │ ├── filter │ │ └── DummyFilterConsumer.java │ │ ├── odm │ │ ├── Group.java │ │ ├── Person.java │ │ └── PersonWithDnAnnotations.java │ │ ├── support │ │ └── springsecurity │ │ │ └── MethodSecurityExpressionHandler.java │ │ └── transaction │ │ └── compensating │ │ └── manager │ │ ├── DummyDao.java │ │ ├── DummyException.java │ │ ├── DummyServiceImpl.java │ │ ├── LdapAndJdbcDummyDaoImpl.java │ │ ├── LdapDummyDaoImpl.java │ │ └── hibernate │ │ ├── DummyDaoLdapAndHibernateImpl.java │ │ ├── OrgPerson.java │ │ └── OrgPersonDao.java │ └── test │ ├── java │ └── org │ │ ├── apache │ │ └── directory │ │ │ └── server │ │ │ └── core │ │ │ └── avltree │ │ │ └── ArrayMarshaller.java │ │ └── springframework │ │ └── ldap │ │ ├── LdapConditionallyFilteredTestRunner.java │ │ └── itest │ │ ├── AbstractLdapTemplateIntegrationTests.java │ │ ├── DefaultLdapClientAuthenticationITests.java │ │ ├── DefaultLdapClientBindUnbindITests.java │ │ ├── DefaultLdapClientListITests.java │ │ ├── DefaultLdapClientLookupITests.java │ │ ├── DefaultLdapClientLookupMultiRdnITests.java │ │ ├── DefaultLdapClientModifyITests.java │ │ ├── DefaultLdapClientRecursiveDeleteITests.java │ │ ├── DefaultLdapClientRenameITests.java │ │ ├── DefaultLdapClientSearchResultITests.java │ │ ├── InvalidBackslashITests.java │ │ ├── LdapTemplateAttributesMapperITests.java │ │ ├── LdapTemplateAuthenticationITests.java │ │ ├── LdapTemplateBindUnbindITests.java │ │ ├── LdapTemplateContextExecutorTests.java │ │ ├── LdapTemplateContextMapperITests.java │ │ ├── LdapTemplateListITests.java │ │ ├── LdapTemplateLookupITests.java │ │ ├── LdapTemplateLookupMultiRdnITests.java │ │ ├── LdapTemplateModifyITests.java │ │ ├── LdapTemplateNoBaseSuffixITests.java │ │ ├── LdapTemplatePooledITests.java │ │ ├── LdapTemplateRecursiveDeleteITests.java │ │ ├── LdapTemplateRenameITests.java │ │ ├── LdapTemplateSearchResultITests.java │ │ ├── LdapTemplateSearchResultNamespaceConfigITests.java │ │ ├── control │ │ └── SupportedControlsITests.java │ │ ├── core │ │ ├── DistinguishedNameEditorITests.java │ │ ├── DnParsePerformanceITests.java │ │ ├── simple │ │ │ └── SimpleLdapTemplateITests.java │ │ └── support │ │ │ ├── BaseLdapPathBeanPostprocessorITests.java │ │ │ ├── BaseLdapPathBeanPostprocessorNamespaceConfigITests.java │ │ │ ├── LdapContextSourceIntegrationTests.java │ │ │ └── LdapContextSourceMultiServerIntegrationTests.java │ │ ├── filter │ │ └── HardcodedFilterIntegrationTests.java │ │ ├── integration │ │ └── JiraLdap247ITests.java │ │ ├── ldap321 │ │ ├── Ldap321Tests.java │ │ └── RoleRepo.java │ │ ├── ldap473 │ │ └── Ldap473Tests.java │ │ ├── manager │ │ ├── ContextSourceAndDataSourceTransactionManagerIntegrationTests.java │ │ ├── ContextSourceAndDataSourceTransactionManagerLdap179IntegrationTests.java │ │ ├── ContextSourceAndDataSourceTransactionManagerNamespaceITests.java │ │ ├── ContextSourceTransactionManagerIntegrationTests.java │ │ ├── ContextSourceTransactionManagerNamespaceIntegrationTests.java │ │ ├── ContextSourceTransactionManagerSubtreeIntegrationTests.java │ │ └── hibernate │ │ │ ├── ContextSourceAndHibernateTransactionManagerIntegrationTests.java │ │ │ ├── ContextSourceAndHibernateTransactionManagerLdap179IntegrationTests.java │ │ │ └── ContextSourceAndHibernateTransactionManagerNamespaceITests.java │ │ └── odm │ │ ├── LdapTemplateOdmGroupManipulationITests.java │ │ ├── LdapTemplateOdmWithDnAnnotationsITests.java │ │ └── LdapTemplateOdmWithNoDnAnnotationsITests.java │ └── resources │ ├── conf │ ├── OrgPerson.hbm.xml │ ├── baseLdapPathPostProcessorMultiContextSourceOneSpecTestContext.xml │ ├── baseLdapPathPostProcessorMultiContextSourceTestContext.xml │ ├── baseLdapPathPostProcessorNamespaceTestContext.xml │ ├── baseLdapPathPostProcessorNoContextSourceTestContext.xml │ ├── baseLdapPathPostProcessorPoolingNamespaceTestContext.xml │ ├── baseLdapPathPostProcessorPropertyOverrideTestContext.xml │ ├── baseLdapPathPostProcessorTestContext.xml │ ├── baseLdapPathPostProcessorTransactionTestContext.xml │ ├── commonContextSourceConfig.xml │ ├── commonNoNamespaceContextSourceConfig.xml │ ├── commonTestContext.xml │ ├── distinguishedNameEditorTestContext.xml │ ├── hardcodedFilterTestContext.xml │ ├── ldap-247-testContext.xml │ ├── ldap.properties │ ├── ldapAndHibernateTransactionNamespaceTestContext.xml │ ├── ldapAndHibernateTransactionTestContext.xml │ ├── ldapAndJdbcTransactionNamespaceTestContext.xml │ ├── ldapAndJdbcTransactionTestContext.xml │ ├── ldapClientTestContext.xml │ ├── ldapContextSourceTestContext.xml │ ├── ldapTemplateNamespaceTestContext.xml │ ├── ldapTemplateNamespaceTransactionTestContext.xml │ ├── ldapTemplateNoBaseSuffixTestContext.xml │ ├── ldapTemplatePooledTestContext.xml │ ├── ldapTemplateTestContext.xml │ ├── ldapTemplateTransactionSubtreeTestContext.xml │ ├── ldapTemplateTransactionTestContext.xml │ ├── missingLdapAndHibernateTransactionTestContext.xml │ ├── missingLdapAndJdbcTransactionTestContext.xml │ ├── repositoryScanAnnotationTestContext.xml │ ├── repositoryScanTestContext.xml │ ├── rootContextSourceTestContext.xml │ └── simpleLdapTemplateTestContext.xml │ ├── ldap321.xml │ ├── log4j.properties │ ├── setup_data.ldif │ ├── setup_data_multi_rdn.ldif │ └── setup_data_subtree.ldif └── with-dependencies.sh /.github/workflows/deploy-docs.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Docs 2 | on: 3 | push: 4 | branches-ignore: [ gh-pages ] 5 | tags: '**' 6 | repository_dispatch: 7 | types: request-build-reference # legacy 8 | #schedule: 9 | #- cron: '0 10 * * *' # Once per day at 10am UTC 10 | workflow_dispatch: 11 | permissions: 12 | actions: write 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | # FIXME enable when pushed to spring-projects 17 | # if: github.repository_owner == 'spring-projects' 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | with: 22 | ref: docs-build 23 | fetch-depth: 1 24 | - name: Dispatch (partial build) 25 | if: github.ref_type == 'branch' 26 | env: 27 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 28 | run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) -f build-refname=${{ github.ref_name }} 29 | - name: Dispatch (full build) 30 | if: github.ref_type == 'tag' 31 | env: 32 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) 34 | -------------------------------------------------------------------------------- /.github/workflows/pr-build-workflow.yml: -------------------------------------------------------------------------------- 1 | name: PR Build 2 | 3 | on: pull_request 4 | 5 | jobs: 6 | build: 7 | name: Build 8 | runs-on: ubuntu-latest 9 | if: github.repository == 'spring-projects/spring-ldap' 10 | strategy: 11 | matrix: 12 | jdk: [17] 13 | fail-fast: false 14 | steps: 15 | - uses: actions/checkout@v4 16 | - name: Set up JDK ${{ matrix.jdk }} 17 | uses: actions/setup-java@v4 18 | with: 19 | java-version: ${{ matrix.jdk }} 20 | distribution: 'temurin' 21 | cache: 'gradle' 22 | - name: Cache Gradle packages 23 | uses: actions/cache@v4 24 | with: 25 | path: ~/.gradle/caches 26 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} 27 | - name: Build with Gradle 28 | run: ./gradlew clean build --no-daemon --stacktrace 29 | -------------------------------------------------------------------------------- /.github/workflows/release-scheduler.yml: -------------------------------------------------------------------------------- 1 | name: Release Scheduler 2 | 3 | on: 4 | schedule: 5 | - cron: '15 16 * * THU' # Every Thursday at 16:15pm UTC 6 | workflow_dispatch: 7 | 8 | permissions: read-all 9 | 10 | jobs: 11 | dispatch_scheduled_releases: 12 | name: Dispatch scheduled releases 13 | if: ${{ github.repository_owner == 'spring-projects' }} 14 | strategy: 15 | matrix: 16 | # List of active maintenance branches. 17 | branch: [ main, 3.2.x, 2.4.x ] 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Checkout 21 | uses: actions/checkout@v4 22 | with: 23 | fetch-depth: 1 24 | - name: Dispatch 25 | env: 26 | GH_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }} 27 | run: gh workflow run update-scheduled-release-version.yml -r ${{ matrix.branch }} 28 | -------------------------------------------------------------------------------- /.github/workflows/update-scheduled-release-version.yml: -------------------------------------------------------------------------------- 1 | name: Update Scheduled Release Version 2 | 3 | on: 4 | workflow_dispatch: # Manual trigger only. Triggered by release-scheduler.yml on main. 5 | 6 | jobs: 7 | update-scheduled-release-version: 8 | name: Update Scheduled Release Version 9 | uses: spring-io/spring-security-release-tools/.github/workflows/update-scheduled-release-version.yml@v1 10 | secrets: inherit 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .project 3 | .settings 4 | .classpath 5 | bin 6 | build 7 | .git 8 | .gradle 9 | *.iml 10 | *.ipr 11 | .idea 12 | *.iws 13 | out 14 | -------------------------------------------------------------------------------- /.sdkmanrc: -------------------------------------------------------------------------------- 1 | # Use sdkman to run "sdk env" to initialize with correct JDK version 2 | # Enable auto-env through the sdkman_auto_env config 3 | # See https://sdkman.io/usage#config 4 | # A summary is to add the following to ~/.sdkman/etc/config 5 | # sdkman_auto_env=true 6 | java=17.0.3-tem 7 | -------------------------------------------------------------------------------- /.springjavaformatconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/.springjavaformatconfig -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | 3 | jdk: 4 | - openjdk8 5 | 6 | os: 7 | - linux 8 | 9 | branches: 10 | only: 11 | - master 12 | 13 | before_cache: 14 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock 15 | cache: 16 | directories: 17 | - $HOME/.gradle/caches/ 18 | - $HOME/.gradle/wrapper/ 19 | 20 | script: ./gradlew build -------------------------------------------------------------------------------- /RELEASE.adoc: -------------------------------------------------------------------------------- 1 | # Release Process 2 | 3 | ### 1. Update Dependencies 4 | 5 | Check for available updates. If available, update at least Spring Framework, Spring Data, and Spring Security. 6 | 7 | ### 2. Update Release Number 8 | 9 | Update `build.gradle`'s version property: 10 | 11 | ```bash 12 | export RELEASE=3.0.0-M4 13 | sed -i 's/version=(.*)/version=${RELEASE}/' build.gradle 14 | ``` 15 | 16 | ### 3. Build 17 | 18 | Check to ensure that everything builds: 19 | 20 | ```bash 21 | gw check 22 | ``` 23 | 24 | ### 4. Commit and Watch 25 | 26 | Commit the release: 27 | 28 | ```bash 29 | git commit -m "Release ${RELEASE}" 30 | ``` 31 | 32 | This will push a build to https://jenkins.spring.io/job/spring-ldap/job/main/. 33 | Once the build passes, proceed to the next step. 34 | 35 | ### 5. Tag 36 | 37 | Tag and push the release commit: 38 | 39 | ```bash 40 | git tag ${RELEASE} 41 | git push origin ${RELEASE} 42 | ``` 43 | 44 | ### 6. Notify on Slack 45 | 46 | Announce the release on the `#spring-release` channel: 47 | 48 | ```bash 49 | spring-ldap-announcing `3.0.0-M4` is out! 50 | ``` 51 | 52 | ### 7. Prepare for Next Development Cycle 53 | 54 | Update and commit `build.gradle`: 55 | 56 | ```bash 57 | sed -i 's/version=(.*)/version=3.0.0-SNAPSHOT' 58 | git commit -am "Next Development Version" 59 | ``` -------------------------------------------------------------------------------- /antora.yml: -------------------------------------------------------------------------------- 1 | name: ldap 2 | version: true 3 | title: Spring LDAP 4 | nav: 5 | - modules/ROOT/nav.adoc 6 | ext: 7 | collector: 8 | run: 9 | command: gradlew -q -PbuildSrc.skipTests=true "-Dorg.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError" generateAntoraYml 10 | local: true 11 | scan: 12 | dir: ./build/generated-antora-resources 13 | 14 | asciidoc: 15 | attributes: 16 | attribute-missing: 'warn' 17 | # FIXME: the copyright is not removed 18 | # FIXME: The package is not renamed 19 | chomp: 'all' -------------------------------------------------------------------------------- /buildSrc/src/main/graphql/org/springframework/security/convention/versions/CreateIssue.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateIssueInput($assigneeId: ID!, $labelIds: [ID!], $milestoneId: ID!, $repositoryId: ID!, $title: String!) { 2 | createIssue(input: {assigneeIds: [$assigneeId], labelIds: $labelIds, milestoneId: $milestoneId, projectIds: [], repositoryId: $repositoryId, title: $title}) { 3 | issue { 4 | number 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /buildSrc/src/main/graphql/org/springframework/security/convention/versions/FindCreateIssueInput.graphql: -------------------------------------------------------------------------------- 1 | query FindCreateIssueInput($owner: String!, $name: String!, $labelQuery: String, $milestoneName: String) { 2 | repository(owner: $owner, name: $name) { 3 | id 4 | labels(query: $labelQuery, first: 1) { 5 | nodes { 6 | id 7 | name 8 | } 9 | } 10 | milestones(query: $milestoneName, states: [OPEN], first: 1) { 11 | nodes { 12 | id 13 | title 14 | } 15 | } 16 | } 17 | viewer { 18 | id 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /buildSrc/src/main/graphql/org/springframework/security/convention/versions/RateLimit.graphql: -------------------------------------------------------------------------------- 1 | query RateLimit { 2 | rateLimit { 3 | limit 4 | cost 5 | remaining 6 | resetAt 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /buildSrc/src/main/groovy/io/spring/gradle/convention/JavadocOptionsPlugin.groovy: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention 2 | 3 | import org.gradle.api.Plugin 4 | import org.gradle.api.Project 5 | import org.gradle.api.tasks.javadoc.Javadoc 6 | 7 | public class JavadocOptionsPlugin implements Plugin { 8 | 9 | @Override 10 | public void apply(Project project) { 11 | project.getTasks().withType(Javadoc).all { t-> 12 | t.options.addStringOption('Xdoclint:none', '-quiet') 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /buildSrc/src/main/groovy/io/spring/gradle/convention/MavenBomPlugin.groovy: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention 2 | 3 | import org.gradle.api.Plugin 4 | import org.gradle.api.Project 5 | import org.gradle.api.plugins.JavaPlatformPlugin 6 | import org.springframework.gradle.CopyPropertiesPlugin 7 | import org.springframework.gradle.maven.SpringMavenPlugin 8 | 9 | public class MavenBomPlugin implements Plugin { 10 | static String MAVEN_BOM_TASK_NAME = "mavenBom" 11 | 12 | public void apply(Project project) { 13 | project.plugins.apply(JavaPlatformPlugin) 14 | project.plugins.apply(SpringMavenPlugin) 15 | project.plugins.apply(CopyPropertiesPlugin) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /buildSrc/src/main/groovy/io/spring/gradle/convention/SchemaPlugin.groovy: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention 2 | 3 | import org.gradle.api.Plugin 4 | import org.gradle.api.Project 5 | 6 | public class SchemaPlugin implements Plugin { 7 | 8 | @Override 9 | public void apply(Project project) { 10 | project.getPluginManager().apply(SchemaZipPlugin) 11 | project.getPluginManager().apply(SchemaDeployPlugin) 12 | } 13 | } -------------------------------------------------------------------------------- /buildSrc/src/main/groovy/io/spring/gradle/convention/SpringTestPlugin.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2016 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | 17 | package io.spring.gradle.convention 18 | 19 | import org.gradle.api.Project 20 | 21 | /** 22 | * @author Rob Winch 23 | */ 24 | public class SpringTestPlugin extends AbstractSpringJavaPlugin { 25 | 26 | @Override 27 | public void additionalPlugins(Project project) { 28 | project.plugins.withType(org.sonarqube.gradle.SonarQubePlugin) { 29 | project.sonarqube.skipProject = true 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /buildSrc/src/main/groovy/io/spring/gradle/convention/Utils.groovy: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention; 2 | 3 | import org.gradle.api.Project; 4 | 5 | public class Utils { 6 | 7 | static String getProjectName(Project project) { 8 | String projectName = project.getRootProject().getName(); 9 | if(projectName.endsWith("-build")) { 10 | projectName = projectName.substring(0, projectName.length() - "-build".length()); 11 | } 12 | return projectName; 13 | } 14 | 15 | static boolean isSnapshot(Project project) { 16 | String projectVersion = projectVersion(project) 17 | return projectVersion.matches('^.*([.-]BUILD)?-SNAPSHOT$') 18 | } 19 | 20 | static boolean isMilestone(Project project) { 21 | String projectVersion = projectVersion(project) 22 | return projectVersion.matches('^.*[.-]M\\d+$') || projectVersion.matches('^.*[.-]RC\\d+$') 23 | } 24 | 25 | static boolean isRelease(Project project) { 26 | return !(isSnapshot(project) || isMilestone(project)) 27 | } 28 | 29 | private static String projectVersion(Project project) { 30 | return String.valueOf(project.getVersion()); 31 | } 32 | 33 | private Utils() {} 34 | } 35 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/lock/GlobalLockPlugin.java: -------------------------------------------------------------------------------- 1 | package lock; 2 | 3 | import org.gradle.api.Plugin; 4 | import org.gradle.api.Project; 5 | 6 | /** 7 | * @author Rob Winch 8 | */ 9 | public class GlobalLockPlugin implements Plugin { 10 | @Override 11 | public void apply(Project project) { 12 | project.getTasks().register("writeLocks", GlobalLockTask.class, (writeAll) -> { 13 | writeAll.setDescription("Writes the locks for all projects"); 14 | }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/lock/GlobalLockTask.java: -------------------------------------------------------------------------------- 1 | package lock; 2 | 3 | import java.util.function.Consumer; 4 | 5 | import org.gradle.api.Action; 6 | import org.gradle.api.DefaultTask; 7 | import org.gradle.api.Project; 8 | import org.gradle.api.artifacts.Configuration; 9 | import org.gradle.api.tasks.TaskAction; 10 | 11 | /** 12 | * @author Rob Winch 13 | */ 14 | public class GlobalLockTask extends DefaultTask { 15 | @TaskAction 16 | public void lock() { 17 | Project taskProject = getProject(); 18 | if (!taskProject.getGradle().getStartParameter().isWriteDependencyLocks()) { 19 | throw new IllegalStateException("You just specify --write-locks argument"); 20 | } 21 | writeLocksFor(taskProject); 22 | taskProject.getSubprojects().forEach(new Consumer<>() { 23 | @Override 24 | public void accept(Project subproject) { 25 | writeLocksFor(subproject); 26 | } 27 | }); 28 | } 29 | 30 | private void writeLocksFor(Project project) { 31 | project.getConfigurations().configureEach(new Action<>() { 32 | @Override 33 | public void execute(Configuration configuration) { 34 | if (configuration.isCanBeResolved()) { 35 | configuration.resolve(); 36 | } 37 | } 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/org/springframework/gradle/CopyPropertiesPlugin.java: -------------------------------------------------------------------------------- 1 | package org.springframework.gradle; 2 | 3 | import org.gradle.api.Plugin; 4 | import org.gradle.api.Project; 5 | 6 | public class CopyPropertiesPlugin implements Plugin { 7 | @Override 8 | public void apply(Project project) { 9 | copyPropertyFromRootProjectTo("group", project); 10 | copyPropertyFromRootProjectTo("version", project); 11 | copyPropertyFromRootProjectTo("description", project); 12 | } 13 | 14 | 15 | private void copyPropertyFromRootProjectTo(String propertyName, Project project) { 16 | Project rootProject = project.getRootProject(); 17 | Object property = rootProject.findProperty(propertyName); 18 | if(property != null) { 19 | project.setProperty(propertyName, property); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/org/springframework/gradle/github/milestones/Milestone.java: -------------------------------------------------------------------------------- 1 | package org.springframework.gradle.github.milestones; 2 | 3 | public class Milestone { 4 | private String title; 5 | 6 | private long number; 7 | 8 | public String getTitle() { 9 | return title; 10 | } 11 | 12 | public void setTitle(String title) { 13 | this.title = title; 14 | } 15 | 16 | public long getNumber() { 17 | return number; 18 | } 19 | 20 | public void setNumber(long number) { 21 | this.number = number; 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return "Milestone{" + 27 | "title='" + title + '\'' + 28 | ", number=" + number + 29 | '}'; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/org/springframework/gradle/maven/PublishArtifactsPlugin.java: -------------------------------------------------------------------------------- 1 | package org.springframework.gradle.maven; 2 | 3 | import io.spring.gradle.convention.Utils; 4 | import org.gradle.api.Action; 5 | import org.gradle.api.Plugin; 6 | import org.gradle.api.Project; 7 | import org.gradle.api.Task; 8 | 9 | public class PublishArtifactsPlugin implements Plugin { 10 | @Override 11 | public void apply(Project project) { 12 | project.getTasks().register("publishArtifacts", new Action<>() { 13 | @Override 14 | public void execute(Task publishArtifacts) { 15 | publishArtifacts.setGroup("Publishing"); 16 | publishArtifacts.setDescription("Publish the artifacts to either Artifactory or Maven Central based on the version"); 17 | if (Utils.isRelease(project)) { 18 | publishArtifacts.dependsOn("publishToOssrh"); 19 | } 20 | else { 21 | publishArtifacts.dependsOn("artifactoryPublish"); 22 | } 23 | } 24 | }); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/org/springframework/gradle/maven/PublishLocalPlugin.java: -------------------------------------------------------------------------------- 1 | package org.springframework.gradle.maven; 2 | 3 | import java.io.File; 4 | 5 | import org.gradle.api.Action; 6 | import org.gradle.api.Plugin; 7 | import org.gradle.api.Project; 8 | import org.gradle.api.artifacts.repositories.MavenArtifactRepository; 9 | import org.gradle.api.publish.PublishingExtension; 10 | import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; 11 | 12 | public class PublishLocalPlugin implements Plugin { 13 | @Override 14 | public void apply(Project project) { 15 | project.getPlugins().withType(MavenPublishPlugin.class).all(new Action<>() { 16 | @Override 17 | public void execute(MavenPublishPlugin mavenPublish) { 18 | PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class); 19 | publishing.getRepositories().maven(new Action<>() { 20 | @Override 21 | public void execute(MavenArtifactRepository maven) { 22 | maven.setName("local"); 23 | maven.setUrl(new File(project.getRootProject().getBuildDir(), "publications/repos")); 24 | } 25 | }); 26 | } 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/org/springframework/gradle/maven/SpringMavenPlugin.java: -------------------------------------------------------------------------------- 1 | package org.springframework.gradle.maven; 2 | 3 | import io.spring.gradle.convention.ArtifactoryPlugin; 4 | import org.gradle.api.Plugin; 5 | import org.gradle.api.Project; 6 | import org.gradle.api.plugins.PluginManager; 7 | import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; 8 | 9 | public class SpringMavenPlugin implements Plugin { 10 | @Override 11 | public void apply(Project project) { 12 | PluginManager pluginManager = project.getPluginManager(); 13 | pluginManager.apply(MavenPublishPlugin.class); 14 | pluginManager.apply(SpringSigningPlugin.class); 15 | pluginManager.apply(MavenPublishingConventionsPlugin.class); 16 | pluginManager.apply(PublishAllJavaComponentsPlugin.class); 17 | pluginManager.apply(PublishLocalPlugin.class); 18 | pluginManager.apply(PublishArtifactsPlugin.class); 19 | pluginManager.apply(ArtifactoryPlugin.class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /buildSrc/src/main/java/trang/TrangPlugin.java: -------------------------------------------------------------------------------- 1 | package trang; 2 | 3 | import org.gradle.api.Plugin; 4 | import org.gradle.api.Project; 5 | 6 | /** 7 | * Used for converting .rnc files to .xsd files. 8 | * @author Rob Winch 9 | */ 10 | public class TrangPlugin implements Plugin { 11 | @Override 12 | public void apply(Project project) { 13 | project.getTasks().register("rncToXsd", RncToXsd.class, (rncToXsd) -> { 14 | rncToXsd.setDescription("Converts .rnc to .xsd"); 15 | rncToXsd.setGroup("Build"); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.artifactory.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.ArtifactoryPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.bom.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.MavenBomPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.checkstyle.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.CheckstylePlugin 2 | -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.docs.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.DocsPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.include-check-remote.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.IncludeCheckRemotePlugin 2 | -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.integration-test.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.IntegrationTestPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.jacoco.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.JacocoPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.javadoc-api.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.JavadocApiPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.javadoc-options.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.JavadocOptionsPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.repository.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.RepositoryConventionPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.root.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.RootProjectPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.spring-module.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.SpringModulePlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.spring-test.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.SpringTestPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/META-INF/gradle-plugins/io.spring.convention.tests-configuration.properties: -------------------------------------------------------------------------------- 1 | implementation-class=io.spring.gradle.convention.TestsConfigurationPlugin -------------------------------------------------------------------------------- /buildSrc/src/main/resources/s101/repository.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /buildSrc/src/test/java/io/spring/gradle/convention/JacocoPluginITests.java: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention; 2 | 3 | import java.io.File; 4 | import java.nio.file.Path; 5 | 6 | import org.gradle.testkit.runner.BuildResult; 7 | import org.gradle.testkit.runner.TaskOutcome; 8 | import org.junit.Test; 9 | import org.junit.jupiter.api.BeforeEach; 10 | import org.junit.jupiter.api.io.TempDir; 11 | 12 | import static org.assertj.core.api.Assertions.assertThat; 13 | 14 | public class JacocoPluginITests{ 15 | private io.spring.gradle.TestKit testKit; 16 | 17 | @BeforeEach 18 | void setup(@TempDir Path tempDir) { 19 | this.testKit = new io.spring.gradle.TestKit(tempDir.toFile()); 20 | } 21 | 22 | @Test 23 | public void checkWithJavaPlugin() throws Exception { 24 | BuildResult result = this.testKit.withProjectResource("samples/jacoco/java/") 25 | .withArguments("check") 26 | .build(); 27 | assertThat(result.task(":check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); 28 | assertThat(new File(testKit.getRootDir(), "build/jacoco")).exists(); 29 | assertThat(new File(testKit.getRootDir(), "build/reports/jacoco/test/html/")).exists(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /buildSrc/src/test/java/io/spring/gradle/convention/TestsConfigurationPluginITests.java: -------------------------------------------------------------------------------- 1 | package io.spring.gradle.convention; 2 | 3 | import java.nio.file.Path; 4 | 5 | import io.spring.gradle.TestKit; 6 | import org.gradle.testkit.runner.BuildResult; 7 | import org.gradle.testkit.runner.TaskOutcome; 8 | import org.junit.jupiter.api.BeforeEach; 9 | import org.junit.jupiter.api.Test; 10 | import org.junit.jupiter.api.io.TempDir; 11 | 12 | import static org.assertj.core.api.Assertions.assertThat; 13 | 14 | public class TestsConfigurationPluginITests { 15 | 16 | private TestKit testKit; 17 | 18 | @BeforeEach 19 | void setup(@TempDir Path tempDir) { 20 | this.testKit = new TestKit(tempDir.toFile()); 21 | } 22 | 23 | @Test 24 | public void canFindDepencency() throws Exception { 25 | BuildResult result = this.testKit.withProjectResource("samples/testsconfiguration") 26 | .withArguments("check") 27 | .build(); 28 | assertThat(result.task(":web:check").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /buildSrc/src/test/java/org/springframework/security/convention/versions/TransitiveDependencyLookupUtilsTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2020 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.security.convention.versions; 18 | 19 | 20 | import org.junit.jupiter.api.Test; 21 | 22 | import static org.assertj.core.api.Assertions.assertThat; 23 | 24 | public class TransitiveDependencyLookupUtilsTests { 25 | 26 | @Test 27 | public void lookupJwtVersionWhen93Then961() { 28 | String s = TransitiveDependencyLookupUtils.lookupJwtVersion("9.3"); 29 | assertThat(s).isEqualTo("9.6.1"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withgroovy/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.integration-test' 3 | } 4 | 5 | apply plugin: 'java' 6 | apply plugin: 'groovy' 7 | 8 | repositories { 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | testCompile 'junit:junit:4.12' 14 | testCompile 'org.spockframework:spock-core:1.0-groovy-2.4' 15 | integrationTestCompile 'org.springframework:spring-core:4.3.7.RELEASE' 16 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withgroovy/src/integration-test/groovy/sample/TheTest.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2017 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 | * use this file except in compliance with the License. You may obtain a copy of 6 | * the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations under 14 | * the License. 15 | */ 16 | package sample 17 | 18 | import org.springframework.core.Ordered 19 | import spock.lang.Specification 20 | 21 | class TheTest extends Specification { 22 | def "has Ordered"() { 23 | expect: 'Loads Ordered fine' 24 | Ordered ordered = new Ordered() { 25 | @Override 26 | int getOrder() { 27 | return 0 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withjava/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.integration-test' 3 | } 4 | 5 | apply plugin: 'java' 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | dependencies { 12 | testCompile 'junit:junit:4.12' 13 | integrationTestCompile 'org.springframework:spring-core:4.3.7.RELEASE' 14 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withjava/src/integration-test/java/sample/TheTests.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import org.junit.Test; 4 | 5 | import org.springframework.core.Ordered; 6 | 7 | public class TheTests { 8 | @Test 9 | public void compilesAndRuns() { 10 | Ordered ordered = new Ordered() { 11 | @Override 12 | public int getOrder() { 13 | return 0; 14 | } 15 | }; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withpropdeps/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.integration-test' 3 | } 4 | 5 | apply plugin: 'java' 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | dependencies { 12 | optional 'jakarta.servlet:jakarta.servlet-api:5.0.0' 13 | testCompile 'junit:junit:4.12' 14 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/integrationtest/withpropdeps/src/integration-test/java/sample/TheTests.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import jakarta.servlet.http.HttpServletRequest; 4 | import org.junit.Test; 5 | 6 | public class TheTests { 7 | @Test 8 | public void compilesAndRuns() { 9 | HttpServletRequest request = null; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/jacoco/java/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.jacoco' 3 | } 4 | 5 | apply plugin: 'java' 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | dependencies { 12 | testCompile 'junit:junit:4.12' 13 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/jacoco/java/src/main/java/sample/TheClass.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | public class TheClass { 4 | public boolean doStuff(boolean b) { 5 | if(b) { 6 | return true; 7 | } else { 8 | return false; 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/jacoco/java/src/test/java/sample/TheClassTests.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.assertFalse; 6 | import static org.junit.Assert.assertTrue; 7 | 8 | public class TheClassTests { 9 | TheClass theClass = new TheClass(); 10 | 11 | @Test 12 | public void doStuffWhenTrueThenTrue() { 13 | assertTrue(theClass.doStuff(true)); 14 | } 15 | 16 | @Test 17 | public void doStuffWhenTrueThenFalse() { 18 | assertFalse(theClass.doStuff(false)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/api/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/api/src/main/java/sample/Api.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | /** 4 | * Testing this 5 | * @author Rob Winch 6 | * 7 | */ 8 | public class Api { 9 | 10 | /** 11 | * This does stuff 12 | */ 13 | public void doStuff() {} 14 | } 15 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.javadoc-api' 3 | id 'io.spring.convention.spring-module' apply false 4 | } 5 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/impl/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/impl/src/main/java/sample/Impl.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | /** 4 | * Testing this 5 | * @author Rob Winch 6 | * 7 | */ 8 | public class Impl { 9 | 10 | /** 11 | * This does stuff 12 | */ 13 | public void otherThings() {} 14 | } 15 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/sample/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/sample/src/main/java/sample/Sample.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | /** 4 | * Testing this 5 | * @author Rob Winch 6 | * 7 | */ 8 | public class Sample { 9 | 10 | /** 11 | * This does stuff 12 | */ 13 | public void doSample() {} 14 | } 15 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/javadocapi/multimodule/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':api' 2 | include ':impl' 3 | include ':sample' -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/install-with-springio/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.spring-module' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | testCompile 'junit:junit:4.12' 11 | compile 'org.springframework:spring-core' 12 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/install-with-springio/gradle/dependency-management.gradle: -------------------------------------------------------------------------------- 1 | dependencyManagement { 2 | dependencies { 3 | dependency 'org.springframework:spring-core:3.0.0.RELEASE' 4 | } 5 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/install/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.root' 3 | } 4 | 5 | apply plugin: 'io.spring.convention.maven' 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | dependencies { 12 | testCompile 'junit:junit:4.12' 13 | optional 'aopalliance:aopalliance:1.0' 14 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/signing/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.root' 3 | } 4 | 5 | version = "1.0.0.RELEASE" 6 | 7 | apply plugin: 'io.spring.convention.maven' 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | dependencies { 14 | testCompile 'junit:junit:4.12' 15 | optional 'aopalliance:aopalliance:1.0' 16 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/signing/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'signing' -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/maven/upload/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.root' 3 | } 4 | 5 | repositories { 6 | mavenCentral() 7 | } 8 | 9 | dependencies { 10 | testCompile 'junit:junit:4.12' 11 | optional 'aopalliance:aopalliance:1.0' 12 | } 13 | 14 | uploadArchives { 15 | repositories { 16 | mavenDeployer { 17 | repository(url: "file:$buildDir/repo") 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/bom/bom.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.bom' 2 | 3 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.root' 3 | } 4 | 5 | group = "org.springframework.build.test" 6 | version = "1.0.0.BUILD-SNAPSHOT" 7 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/etc/checkstyle/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/settings.gradle: -------------------------------------------------------------------------------- 1 | import java.util.regex.Matcher 2 | 3 | rootProject.name = 'spring-gradle-build-conventions-sample' 4 | 5 | 6 | FileTree projects = fileTree(rootDir) { 7 | include '**/*.gradle' 8 | exclude '**/gradle', 'settings.gradle', 'buildSrc', '/build.gradle', '.*' 9 | } 10 | 11 | String rootDirPath = rootDir.absolutePath + File.separator 12 | projects.each { File buildFile -> 13 | String buildFilePath = buildFile.parentFile.absolutePath 14 | 15 | String projectPath = buildFilePath.replace(rootDirPath, '').replaceAll(Matcher.quoteReplacement(File.separator), ':') 16 | 17 | include projectPath 18 | 19 | def project = findProject(":${projectPath}") 20 | if(!'build.gradle'.equals(buildFile.name)) { 21 | project.name = buildFile.name.replace('.gradle','') 22 | project.buildFileName = buildFile.name 23 | } 24 | project.projectDir = buildFile.parentFile 25 | } 26 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-api/sgbcs-api.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | dependencies { 4 | api platform('org.springframework.boot:spring-boot-dependencies:3.2.2') 5 | implementation 'org.springframework:spring-web' 6 | implementation 'org.springframework:spring-core' 7 | testImplementation "org.junit.jupiter:junit-jupiter-api" 8 | testImplementation "org.junit.jupiter:junit-jupiter-engine" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-api/src/main/java/api/Api.java: -------------------------------------------------------------------------------- 1 | package api; 2 | 3 | /** 4 | * 5 | * @author Rob Winch 6 | * 7 | */ 8 | public class Api { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-api/src/test/java/api/ApiTests.java: -------------------------------------------------------------------------------- 1 | package api; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | public class ApiTests { 6 | 7 | @Test 8 | public void api() {} 9 | } 10 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/sgbcs-core.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | dependencies { 4 | api platform('org.springframework.boot:spring-boot-dependencies:3.2.2') 5 | testImplementation "org.junit.jupiter:junit-jupiter-api" 6 | testImplementation "org.junit.jupiter:junit-jupiter-engine" 7 | } 8 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/main/java/core/CoreClass.java: -------------------------------------------------------------------------------- 1 | package core; 2 | 3 | /** 4 | * 5 | * @author Rob Winch 6 | * 7 | */ 8 | public class CoreClass { 9 | 10 | public void run() { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/main/java/core/HasOptional.java: -------------------------------------------------------------------------------- 1 | package core; 2 | 3 | 4 | import org.slf4j.Logger; 5 | import org.slf4j.LoggerFactory; 6 | 7 | 8 | public class HasOptional { 9 | 10 | public static void doStuffWithOptionalDependency() { 11 | Logger logger = LoggerFactory.getLogger(HasOptional.class); 12 | logger.debug("This is optional"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/main/resources/META-INF/spring.handlers: -------------------------------------------------------------------------------- 1 | http\://www.springframework.org/schema/springgradlebuildsample=org.springframework.ldap.config.LdapNamespaceHandler -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.springframework.org/schema/springgradlebuildsample/spring-springgradlebuildsample.xsd=org/springframework/springgradlebuildsample/config/spring-springgradlebuildsample-2.2.xsd 2 | http\://www.springframework.org/schema/springgradlebuildsample/spring-springgradlebuildsample-2.0.xsd=org/springframework/springgradlebuildsample/config/spring-springgradlebuildsample-2.0.xsd 3 | http\://www.springframework.org/schema/springgradlebuildsample/spring-springgradlebuildsample-2.1.xsd=org/springframework/springgradlebuildsample/config/spring-springgradlebuildsample-2.1.xsd 4 | http\://www.springframework.org/schema/springgradlebuildsample/spring-springgradlebuildsample-2.2.xsd=org/springframework/springgradlebuildsample/config/spring-springgradlebuildsample-2.2.xsd -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/test/java/core/CoreClassTests.java: -------------------------------------------------------------------------------- 1 | package core; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | public class CoreClassTests { 6 | 7 | @Test 8 | public void test() { 9 | new CoreClass().run(); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-core/src/test/java/core/HasOptionalTests.java: -------------------------------------------------------------------------------- 1 | package core; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | public class HasOptionalTests { 6 | 7 | @Test 8 | public void test() { 9 | HasOptional.doStuffWithOptionalDependency(); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/sgbcs-docs.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | apply plugin: 'io.spring.convention.docs' 3 | 4 | version = "1.0.0.BUILD-SNAPSHOT" 5 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/docs/asciidoc/docinfo.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/docs/asciidoc/images/sunset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/docs/asciidoc/images/sunset.jpg -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/docs/asciidoc/subdir/_b.adoc: -------------------------------------------------------------------------------- 1 | content from _src/docs/asciidoc/subdir/_b.adoc_. 2 | 3 | .include::_c.adoc[] 4 | [example] 5 | -- 6 | include::_c.adoc[] 7 | -- 8 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/docs/asciidoc/subdir/_c.adoc: -------------------------------------------------------------------------------- 1 | content from _src/docs/asciidoc/subdir/c.adoc_. 2 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/showcase/sgbcs-docs/src/main/java/example/StringUtils.java: -------------------------------------------------------------------------------- 1 | package example; 2 | 3 | public class StringUtils { 4 | // tag::contains[] 5 | public boolean contains(String haystack, String needle) { 6 | return haystack.contains(needle); 7 | } 8 | // end::contains[] 9 | } 10 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.tests-configuration' 3 | id 'java' 4 | } 5 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.tests-configuration' 2 | apply plugin: 'java' // second to test ordering 3 | -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/core/src/test/java/sample/Dependency.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | public class Dependency {} -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':core' 2 | include ':web' -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/web/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | repositories { 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | testImplementation project(path: ':core', configuration: 'tests') 9 | testImplementation 'junit:junit:4.12' 10 | } -------------------------------------------------------------------------------- /buildSrc/src/test/resources/samples/testsconfiguration/web/src/test/java/sample/DependencyTests.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import org.junit.Test; 4 | 5 | public class DependencyTests { 6 | @Test 7 | public void findsDependencyOnClasspath() { 8 | new Dependency(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /core/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | .gradle 6 | bin 7 | build -------------------------------------------------------------------------------- /core/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/itest-openldap/java/conf/ldap-openldap.properties: -------------------------------------------------------------------------------- 1 | urls=ldap://127.0.0.1 2 | userDn=cn=manager,dc=jayway,dc=se 3 | password=secret 4 | base=dc=jayway,dc=se 5 | -------------------------------------------------------------------------------- /core/src/itest-openldap/java/conf/ldap.conf: -------------------------------------------------------------------------------- 1 | # 2 | # LDAP Defaults 3 | # 4 | 5 | # See ldap.conf(5) for details 6 | # This file should be world readable but not world writable. 7 | 8 | #BASE dc=example, dc=com 9 | #URI ldap://ldap.example.com ldap://ldap-main.example.com:666 10 | 11 | #SIZELIMIT 12 12 | #TIMELIMIT 15 13 | #DEREF never 14 | 15 | include "c:/Program/OpenLDAP/schema/core.schema" 16 | include "c:/Program/OpenLDAP/schema/cosine.schema" 17 | include "c:/Program/OpenLDAP/schema/inetorgperson.schema" 18 | database bdb 19 | suffix "dc=jayway,dc=se" 20 | rootdn "cn=Manager,dc=jayway,dc=se" 21 | rootpw secret 22 | directory "c:/Program/OpenLDAP/data" 23 | 24 | TLSCipherSuite HIGH:MEDIUM:+SSLv2 25 | TLSCACertificateFile /tmp/cacert.pem 26 | TLSCertificateFile /tmp/servercrt.pem 27 | TLSCertificateKeyFile /tmp/serverkey.pem 28 | TLSVerifyClient never 29 | -------------------------------------------------------------------------------- /core/src/itest-openldap/java/conf/ldapTemplateTestContext-openldap.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/AttributeInUseException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI AttributeInUseException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.AttributeInUseException 25 | */ 26 | public class AttributeInUseException extends NamingException { 27 | 28 | public AttributeInUseException(javax.naming.directory.AttributeInUseException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/AttributeModificationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI AttributeModificationException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.AttributeModificationException 25 | */ 26 | public class AttributeModificationException extends NamingException { 27 | 28 | public AttributeModificationException(javax.naming.directory.AttributeModificationException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI AuthenticationException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.AuthenticationException 25 | */ 26 | public class AuthenticationException extends NamingSecurityException { 27 | 28 | public AuthenticationException(javax.naming.AuthenticationException cause) { 29 | super(cause); 30 | } 31 | 32 | public AuthenticationException() { 33 | this(null); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/AuthenticationNotSupportedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI AuthenticationNotSupportedException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.AuthenticationNotSupportedException 25 | */ 26 | public class AuthenticationNotSupportedException extends NamingSecurityException { 27 | 28 | public AuthenticationNotSupportedException(javax.naming.AuthenticationNotSupportedException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/CannotProceedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI CannotProceedException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.CannotProceedException 25 | */ 26 | public class CannotProceedException extends NamingException { 27 | 28 | public CannotProceedException(javax.naming.CannotProceedException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/CommunicationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI CommunicationException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.CommunicationException 25 | */ 26 | public class CommunicationException extends NamingException { 27 | 28 | public CommunicationException(javax.naming.CommunicationException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/ConfigurationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI ConfigurationException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.ConfigurationException 25 | */ 26 | public class ConfigurationException extends NamingException { 27 | 28 | public ConfigurationException(javax.naming.ConfigurationException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/ContextNotEmptyException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI ContextNotEmptyException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.ContextNotEmptyException 25 | */ 26 | public class ContextNotEmptyException extends NamingException { 27 | 28 | public ContextNotEmptyException(javax.naming.ContextNotEmptyException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InsufficientResourcesException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InsufficientResourcesException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.InsufficientResourcesException 25 | */ 26 | public class InsufficientResourcesException extends NamingException { 27 | 28 | public InsufficientResourcesException(javax.naming.InsufficientResourcesException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InterruptedNamingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InterruptedNamingException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.InterruptedNamingException 25 | */ 26 | public class InterruptedNamingException extends NamingException { 27 | 28 | public InterruptedNamingException(javax.naming.InterruptedNamingException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidAttributeIdentifierException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidAttributeIdentifierException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.InvalidAttributeIdentifierException 25 | */ 26 | public class InvalidAttributeIdentifierException extends NamingException { 27 | 28 | public InvalidAttributeIdentifierException(javax.naming.directory.InvalidAttributeIdentifierException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidAttributeValueException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidAttributeValueException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.InvalidAttributeValueException 25 | */ 26 | public class InvalidAttributeValueException extends NamingException { 27 | 28 | public InvalidAttributeValueException(javax.naming.directory.InvalidAttributeValueException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidAttributesException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidAttributesException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.InvalidAttributesException 25 | */ 26 | public class InvalidAttributesException extends NamingException { 27 | 28 | public InvalidAttributesException(javax.naming.directory.InvalidAttributesException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidNameException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidNameException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.InvalidNameException 25 | */ 26 | public class InvalidNameException extends NamingException { 27 | 28 | public InvalidNameException(javax.naming.InvalidNameException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidSearchControlsException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidSearchControlsException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.InvalidSearchControlsException 25 | */ 26 | public class InvalidSearchControlsException extends NamingException { 27 | 28 | public InvalidSearchControlsException(javax.naming.directory.InvalidSearchControlsException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/InvalidSearchFilterException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI InvalidSearchFilterException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.InvalidSearchFilterException 25 | */ 26 | public class InvalidSearchFilterException extends NamingException { 27 | 28 | public InvalidSearchFilterException(javax.naming.directory.InvalidSearchFilterException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/LimitExceededException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI LimitExceededException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.LimitExceededException 25 | */ 26 | public class LimitExceededException extends NamingException { 27 | 28 | public LimitExceededException(javax.naming.LimitExceededException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/LinkException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI LinkException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.LinkException 25 | */ 26 | public class LinkException extends NamingException { 27 | 28 | public LinkException(javax.naming.LinkException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/LinkLoopException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI LinkLoopException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.LinkLoopException 25 | */ 26 | public class LinkLoopException extends LinkException { 27 | 28 | public LinkLoopException(javax.naming.LinkLoopException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/MalformedLinkException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI MalformedLinkException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.MalformedLinkException 25 | */ 26 | public class MalformedLinkException extends LinkException { 27 | 28 | public MalformedLinkException(javax.naming.MalformedLinkException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NameAlreadyBoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NameAlreadyBoundException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NameAlreadyBoundException 25 | */ 26 | public class NameAlreadyBoundException extends NamingException { 27 | 28 | public NameAlreadyBoundException(javax.naming.NameAlreadyBoundException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NameNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NameNotFoundException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NameNotFoundException 25 | */ 26 | public class NameNotFoundException extends NamingException { 27 | 28 | public NameNotFoundException(String msg) { 29 | super(msg); 30 | } 31 | 32 | public NameNotFoundException(javax.naming.NameNotFoundException cause) { 33 | super(cause); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NamingSecurityException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NamingSecurityException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NamingSecurityException 25 | */ 26 | public class NamingSecurityException extends NamingException { 27 | 28 | public NamingSecurityException(javax.naming.NamingSecurityException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NoInitialContextException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NoInitialContextException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NoInitialContextException 25 | */ 26 | public class NoInitialContextException extends NamingException { 27 | 28 | public NoInitialContextException(javax.naming.NoInitialContextException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NoPermissionException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NoPermissionException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NoPermissionException 25 | */ 26 | public class NoPermissionException extends NamingSecurityException { 27 | 28 | public NoPermissionException(javax.naming.NoPermissionException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NoSuchAttributeException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NoSuchAttributeException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.NoSuchAttributeException 25 | */ 26 | public class NoSuchAttributeException extends NamingException { 27 | 28 | public NoSuchAttributeException(String message) { 29 | super(message); 30 | } 31 | 32 | public NoSuchAttributeException(javax.naming.directory.NoSuchAttributeException cause) { 33 | super(cause); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/NotContextException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI NotContextException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.NotContextException 25 | */ 26 | public class NotContextException extends NamingException { 27 | 28 | public NotContextException(javax.naming.NotContextException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/OperationNotSupportedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI OperationNotSupportedException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.OperationNotSupportedException 25 | */ 26 | public class OperationNotSupportedException extends NamingException { 27 | 28 | public OperationNotSupportedException(javax.naming.OperationNotSupportedException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/PartialResultException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI PartialResultException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.PartialResultException 25 | */ 26 | public class PartialResultException extends NamingException { 27 | 28 | public PartialResultException(javax.naming.PartialResultException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/ReferralException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI ReferralException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.ReferralException 25 | */ 26 | public class ReferralException extends NamingException { 27 | 28 | public ReferralException(javax.naming.ReferralException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/SchemaViolationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI SchemaViolationException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.directory.SchemaViolationException 25 | */ 26 | public class SchemaViolationException extends NamingException { 27 | 28 | public SchemaViolationException(javax.naming.directory.SchemaViolationException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/ServiceUnavailableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI ServiceUnavailableException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.ServiceUnavailableException 25 | */ 26 | public class ServiceUnavailableException extends NamingException { 27 | 28 | public ServiceUnavailableException(javax.naming.ServiceUnavailableException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/SizeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI SizeLimitExceededException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.SizeLimitExceededException 25 | */ 26 | public class SizeLimitExceededException extends LimitExceededException { 27 | 28 | public SizeLimitExceededException(javax.naming.SizeLimitExceededException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/TimeLimitExceededException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | /** 20 | * Runtime exception mirroring the JNDI TimeLimitExceededException. 21 | * 22 | * @author Ulrik Sandberg 23 | * @since 1.2 24 | * @see javax.naming.TimeLimitExceededException 25 | */ 26 | public class TimeLimitExceededException extends LimitExceededException { 27 | 28 | public TimeLimitExceededException(javax.naming.TimeLimitExceededException cause) { 29 | super(cause); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/authentication/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Support classes for custom authentication. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/control/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Support classes for custom request control context processors. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/core/DirContextProxy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.core; 18 | 19 | import javax.naming.directory.DirContext; 20 | 21 | /** 22 | * Helper interface to be able to get hold of the target DirContext from 23 | * proxies created by ContextSource proxies. 24 | * 25 | * @author Mattias Hellborg Arthursson 26 | * @since 1.2 27 | */ 28 | public interface DirContextProxy { 29 | 30 | /** 31 | * Get the target DirContext of the proxy. 32 | * @return the target DirContext. 33 | */ 34 | DirContext getTargetContext(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/core/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Core package of the JNDI/LDAP support. 5 | Provides a LdapTemplate class and various callback interfaces. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/core/support/BaseLdapPathContextSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.core.support; 18 | 19 | import org.springframework.ldap.core.ContextSource; 20 | 21 | /** 22 | * Interface to be implemented by ContextSources that are capable of 23 | * providing the base LDAP path. 24 | * 25 | * @author Mattias Hellborg Arthursson 26 | */ 27 | public interface BaseLdapPathContextSource extends ContextSource, BaseLdapPathSource { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/core/support/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Support classes for the core Spring LDAP package. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/filter/AbsoluteFalseFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.filter; 18 | 19 | /** 20 | * A filter that will always evaluate to false, as specified in RFC4526. 21 | * 22 | * @author Mattias Hellborg Arthursson 23 | * @since 1.3.2 24 | * @see RFC4526 25 | */ 26 | public class AbsoluteFalseFilter extends AbstractFilter { 27 | 28 | public StringBuffer encode(StringBuffer buff) { 29 | return buff.append("(|)"); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/filter/AbsoluteTrueFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.filter; 18 | 19 | /** 20 | * A filter that will always evaluate to true, as specified in RFC4526. 21 | * 22 | * @author Mattias Hellborg Arthursson 23 | * @since 1.3.2 24 | * @see RFC4526 25 | */ 26 | public class AbsoluteTrueFilter extends AbstractFilter { 27 | 28 | public StringBuffer encode(StringBuffer buff) { 29 | buff.append("(&)"); 30 | return buff; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/filter/FilterEditor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.filter; 18 | 19 | import java.beans.PropertyEditorSupport; 20 | 21 | /** 22 | * Property editor for {@link Filter} instances. Creates {@link HardcodedFilter} 23 | * instances. 24 | * 25 | * @author Mathieu Larchet 26 | */ 27 | public class FilterEditor extends PropertyEditorSupport { 28 | 29 | public void setAsText(String text) throws IllegalArgumentException { 30 | setValue(new HardcodedFilter(text)); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/filter/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Utility classes for dynamically building LDAP 5 | filters. Filters can be nested and wrapped around each other: 6 |
 7 | AndFilter andFilter = new AndFilter();
 8 | andFilter.and(new EqualsFilter("objectclass", "person");
 9 | andFilter.and(new EqualsFilter("cn", "Some CN");
10 | OrFilter orFilter = new OrFilter();
11 | orFilter.or(andFilter);
12 | orFilter.or(new EqualsFilter("objectclass", "organizationalUnit));
13 | System.out.println(orFilter.encode());
14 | 
15 | would result in: 16 | 17 |
(|(&(objectclass=person)(cn=Some CN))(objectclass=organizationalUnit))
18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/annotations/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides a set of annotations to describe the mapping of a Java class to an LDAP entry. 19 | *

20 | * These annotations are for use with 21 | * OdmManager. 22 | * 23 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 24 | */ 25 | 26 | package org.springframework.ldap.odm.annotations; 27 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/core/OdmException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.odm.core; 18 | 19 | import org.springframework.ldap.NamingException; 20 | 21 | /** 22 | * The root of the Spring LDAP ODM exception hierarchy. 23 | * 24 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 25 | * 26 | */ 27 | @SuppressWarnings("serial") 28 | public class OdmException extends NamingException { 29 | 30 | public OdmException(String message) { 31 | super(message); 32 | } 33 | 34 | public OdmException(String message, Throwable e) { 35 | super(message, e); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/core/impl/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides a single public class which implements 19 | * OdmManager. 20 | *

21 | * The OdmManager implementation works in conjunction with 22 | * {@link org.springframework.ldap.odm.typeconversion} to provide conversion between the 23 | * representation of attributes in LDAP and in Java. 24 | * 25 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 26 | */ 27 | package org.springframework.ldap.odm.core.impl; 28 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/core/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides an OdmManager interface for interaction with an LDAP directory. 19 | *

20 | * Implementations of this interface are intended to be used in conjunction with classes 21 | * annotated with {@link org.springframework.ldap.odm.annotations}. 22 | * 23 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 24 | */ 25 | 26 | package org.springframework.ldap.odm.core; 27 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/StringConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.odm.typeconversion.impl; 18 | 19 | /** 20 | * @author Mattias Hellborg Arthursson 21 | */ 22 | @Deprecated 23 | public class StringConverter { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/converters/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides some basic implementations of the 19 | * {@link org.springframework.ldap.odm.typeconversion.impl.Converter} interface. 20 | * 21 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 22 | */ 23 | 24 | package org.springframework.ldap.odm.typeconversion.impl.converters; 25 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/typeconversion/impl/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides an implementation of the 19 | * {@link org.springframework.ldap.odm.typeconversion.ConverterManager} interface. 20 | * 21 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 22 | */ 23 | 24 | package org.springframework.ldap.odm.typeconversion.impl; 25 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/odm/typeconversion/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides an interface to be implemented to create a type conversion framework. 19 | *

20 | * This is used to convert between the LDAP and Java representations of attributes. 21 | * 22 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 23 | */ 24 | 25 | package org.springframework.ldap.odm.typeconversion; 26 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Base package of Spring LDAP, containing an unchecked mirror of the JNDI NamingException hierarchy. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool/FailureAwareContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.pool; 18 | 19 | /** 20 | * @author Mattias Hellborg Arthursson 21 | */ 22 | public interface FailureAwareContext { 23 | 24 | boolean hasFailed(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool/PoolExhaustedAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.pool; 18 | 19 | /** 20 | * @author Mattias Hellborg Arthursson 21 | */ 22 | public enum PoolExhaustedAction { 23 | 24 | FAIL((byte) 0), BLOCK((byte) 1), GROW((byte) 2); 25 | 26 | private final byte value; 27 | 28 | PoolExhaustedAction(byte value) { 29 | this.value = value; 30 | } 31 | 32 | public byte getValue() { 33 | return this.value; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool/factory/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Core classes for the pooling library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Base classes for the pooling library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool/validation/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Connection validation support for the pooling library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool2/FailureAwareContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.pool2; 18 | 19 | /** 20 | * @author Mattias Hellborg Arthursson 21 | */ 22 | public interface FailureAwareContext { 23 | 24 | boolean hasFailed(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool2/factory/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Core classes for the pooling library based on commons-pool2 library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool2/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Base classes for the pooling library based on commons-pool2 library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/pool2/validation/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Connection validation support for the pooling library. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/query/AppendableContainerCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.query; 18 | 19 | import org.springframework.ldap.filter.Filter; 20 | 21 | /** 22 | * @author Mattias Hellborg Arthursson 23 | */ 24 | interface AppendableContainerCriteria extends ContainerCriteria { 25 | 26 | ContainerCriteria append(Filter filter); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/support/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Support classes for Spring-LDAP. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/transaction/compensating/manager/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The core implementation classes for client-side LDAP transactions. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/transaction/compensating/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LDAP specific implementations of the Compensating Transaction interfaces. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/ldap/transaction/compensating/support/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Useful helper implementations for client side Compensating LDAP Transactions. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/transaction/compensating/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Interface definitions for a general Compensating Transaction framework 5 | based on PlatformTransactionManager. 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /core/src/main/java/org/springframework/transaction/compensating/support/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Support package for general Compensating Transaction Framework. 5 | Contains default implementations of core interfaces as well as useful 6 | helper classes. 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /core/src/main/java/overview.html: -------------------------------------------------------------------------------- 1 | 2 | This document is the API specification for the Spring LDAP Framework. 3 | -------------------------------------------------------------------------------- /core/src/main/resources/META-INF/spring.handlers: -------------------------------------------------------------------------------- 1 | http\://www.springframework.org/schema/ldap=org.springframework.ldap.config.LdapNamespaceHandler -------------------------------------------------------------------------------- /core/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.springframework.org/schema/ldap/spring-ldap.xsd=org/springframework/ldap/config/spring-ldap-2.2.xsd 2 | http\://www.springframework.org/schema/ldap/spring-ldap-2.0.xsd=org/springframework/ldap/config/spring-ldap-2.0.xsd 3 | http\://www.springframework.org/schema/ldap/spring-ldap-2.1.xsd=org/springframework/ldap/config/spring-ldap-2.1.xsd 4 | http\://www.springframework.org/schema/ldap/spring-ldap-2.2.xsd=org/springframework/ldap/config/spring-ldap-2.2.xsd -------------------------------------------------------------------------------- /core/src/main/resources/META-INF/spring/aot.factories: -------------------------------------------------------------------------------- 1 | org.springframework.aot.hint.RuntimeHintsRegistrar=\ 2 | org.springframework.ldap.aot.hint.LdapCoreRuntimeHints 3 | -------------------------------------------------------------------------------- /core/src/test/java/org/springframework/ldap/config/DummyAuthenticationSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.config; 18 | 19 | import org.springframework.ldap.core.AuthenticationSource; 20 | 21 | /** 22 | * @author Mattias Hellborg Arthursson 23 | */ 24 | public class DummyAuthenticationSource implements AuthenticationSource { 25 | 26 | @Override 27 | public String getPrincipal() { 28 | throw new UnsupportedOperationException(); 29 | } 30 | 31 | @Override 32 | public String getCredentials() { 33 | throw new UnsupportedOperationException(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/test/java/org/springframework/ldap/core/TestDirContextAdapters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2024 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.core; 18 | 19 | import javax.naming.Name; 20 | 21 | final class TestDirContextAdapters { 22 | 23 | private TestDirContextAdapters() { 24 | 25 | } 26 | 27 | static DirContextAdapter forUpdate(Name dn) { 28 | return forUpdate(dn, TestNameAwareAttributes.attributes()); 29 | } 30 | 31 | static DirContextAdapter forUpdate(Name dn, NameAwareAttributes attributes) { 32 | DirContextAdapter adapter = new DirContextAdapter(attributes, dn); 33 | adapter.setUpdateMode(true); 34 | return adapter; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /core/src/test/java/org/springframework/ldap/filter/ProximityFilterTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.filter; 18 | 19 | import org.junit.Test; 20 | 21 | import static org.assertj.core.api.Assertions.assertThat; 22 | 23 | /** 24 | * @author Moritz Kobel 25 | */ 26 | public class ProximityFilterTests { 27 | 28 | @Test 29 | public void testEncode() { 30 | 31 | CompareFilter eqq = new ProximityFilter("foo", "*bar(fie)"); 32 | 33 | StringBuffer buff = new StringBuffer(); 34 | eqq.encode(buff); 35 | 36 | assertThat(buff.toString()).isEqualTo("(foo~=\\2abar\\28fie\\29)"); 37 | 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-annotation-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-anonymous-read-only-and-transactions.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-anonymous-read-only.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-missing-password.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-missing-username.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-multiurls.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pool2-with-native.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pool2-with-pool1.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pooling-configured-poolsize.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pooling-defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pooling-with-native.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-pooling2-defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-spel-multiurls.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 15 | ldap://a.localhost:389,ldap://b.localhost:389 16 | 17 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-spel.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 16 | ldap://localhost:389 17 | uid=admin 18 | apassword 19 | dc=261consulting,dc=com 20 | 21 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-transactional-defaults-with-suffix.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-transactional-defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap-namespace-config-transactional-different-subtree.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /core/src/test/resources/ldap.properties: -------------------------------------------------------------------------------- 1 | ldap.eviction.run.internal.milis=10 2 | ldap.min.evictable.time.milis=20 3 | ldap.maxWait=10 4 | ldap.maxTotal=11 5 | ldap.minIdlePerKey=12 6 | ldap.maxIdlePerKey=13 7 | ldap.maxTotalPerKey=14 8 | ldap.maxActive=15 9 | ldap.minIdle=16 10 | ldap.maxIdle=17 11 | ldap.testsPerEvictionRun=18 12 | ldap.testOnBorrow=true 13 | ldap.testOnReturn=true 14 | ldap.testWhileIdle=true 15 | -------------------------------------------------------------------------------- /core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=warn, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout.ConversionPattern=%r [%t] %-5p\: %-15c{2} - %m%n 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | -------------------------------------------------------------------------------- /core/src/test/resources/query-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /etc/checkstyle/header.txt: -------------------------------------------------------------------------------- 1 | ^\Q/*\E$ 2 | ^\Q * Copyright \E20\d\d-20\d\d the original author or authors.$ 3 | ^\Q *\E$ 4 | ^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$ 5 | ^\Q * you may not use this file except in compliance with the License.\E$ 6 | ^\Q * You may obtain a copy of the License at\E$ 7 | ^\Q *\E$ 8 | ^\Q * https://www.apache.org/licenses/LICENSE-2.0\E$ 9 | ^\Q *\E$ 10 | ^\Q * Unless required by applicable law or agreed to in writing, software\E$ 11 | ^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$ 12 | ^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$ 13 | ^\Q * See the License for the specific language governing permissions and\E$ 14 | ^\Q * limitations under the License.\E$ 15 | ^\Q */\E$ 16 | ^$ 17 | -------------------------------------------------------------------------------- /etc/ec2/spring-ldap-ad-keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/ec2/spring-ldap-ad-keystore -------------------------------------------------------------------------------- /etc/nohttp/allowlist.lines: -------------------------------------------------------------------------------- 1 | ^http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd 2 | ^http://www.w3.org/2000/svg -------------------------------------------------------------------------------- /etc/nohttp/checkstyle.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /etc/s101/repository/repository.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/actions.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/actions.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/arch.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/arch.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/package-slice.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/package-slice.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/settings.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/settings.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/spec.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/spec.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/summary.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/summary.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/violations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/xb.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/xb.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/xblite.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/xblite.hsx -------------------------------------------------------------------------------- /etc/s101/repository/snapshots/baseline/xs-offenders.hsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/etc/s101/repository/snapshots/baseline/xs-offenders.hsx -------------------------------------------------------------------------------- /etc/snapshotzipbuilds/1.3-snapshot-download.php: -------------------------------------------------------------------------------- 1 | '; 7 | echo ''; 8 | echo substr($xml, 39); 9 | ?> 10 | -------------------------------------------------------------------------------- /etc/snapshotzipbuilds/dist-download.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: arial, sans-serif; 3 | background-color: #eeeef5; 4 | } 5 | 6 | .name { 7 | padding-right: 3px; 8 | padding-left: 3px; 9 | width: 75%; 10 | text-align: left; 11 | } 12 | 13 | .size { 14 | padding-right: 3px; 15 | padding-left: 3px; 16 | width: 25%; 17 | text-align: right; 18 | } 19 | 20 | .title { 21 | color: #395726; 22 | } 23 | 24 | a { 25 | color: #728c22; 26 | text-decoration: none; 27 | } 28 | 29 | a:hover { 30 | color: #ff5c00; 31 | text-decoration: underline; 32 | } 33 | 34 | table { 35 | color: #728c22; 36 | margin-right: 0px; 37 | margin-left: 4px; 38 | margin-bottom: 0px; 39 | margin-top: 4px; 40 | border-collapse: collapse; 41 | } 42 | 43 | table tr th { 44 | color: #395726; 45 | border-bottom-style: double; 46 | border-bottom-width: 3px; 47 | border-bottom-color: #395726; 48 | padding-bottom: 5px; 49 | padding-top: 5px; 50 | } 51 | 52 | table tr td { 53 | font-weight: bold; 54 | font-size: 75%; 55 | } 56 | 57 | -------------------------------------------------------------------------------- /etc/snapshotzipbuilds/readme.txt: -------------------------------------------------------------------------------- 1 | The page containing snapshot zip builds is actually a PHP page which takes the 2 | XML listing from S3, and transforms it into links using a XSLT. The required 3 | files should be placed on the following location: 4 | 5 | https://docs.spring.io/spring-ldap/downloads/1.3-snapshot-download.php 6 | 7 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | version=3.3.1-SNAPSHOT 2 | springJavaformatVersion=0.0.38 3 | org.gradle.caching=true 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /ldif/ldif-core/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /ldif/ldif-core/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ldif/ldif-core/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.spring-module' 3 | } 4 | 5 | dependencies { 6 | management platform(project(":spring-ldap-dependencies")) 7 | api project(":spring-ldap-core") 8 | 9 | testImplementation platform('org.junit:junit-bom') 10 | testImplementation "org.junit.vintage:junit-vintage-engine" 11 | testImplementation "junit:junit" 12 | testImplementation "org.assertj:assertj-core" 13 | testImplementation ("log4j:log4j:1.2.17") { 14 | exclude group: 'javax.jms' 15 | exclude group: 'com.sun.jdmk' 16 | exclude group: 'com.sun.jmx' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/org/springframework/ldap/ldif/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The base package for Spring LDAPs LDIF parser implementation. 5 |

6 | Classes declared in this package include the new base types for 7 | LDAP objects as well as exception types for the LDIF parser. 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/org/springframework/ldap/ldif/parser/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This package contains the parser classes and interfaces. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/org/springframework/ldap/ldif/support/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Provides the necessary auxiliary classes utilized by the LDIFParser. 5 |

6 | Notable classes in this package include: 7 |

    8 |
  • AttributeValidationPolicy - specifies the proper format valid attributes must adhere to.
  • 9 |
  • SeparatorPolicy - translates lines read from the resource into attributes.
  • 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/org/springframework/ldap/schema/Specification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.schema; 18 | 19 | import javax.naming.NamingException; 20 | 21 | /** 22 | * The specification interface is implemented to declare rules that a record must conform 23 | * to. The motivation behind this class was to provide a mechanism to enable schema 24 | * validations. 25 | * 26 | * @param 27 | * @author Keith Barlow 28 | */ 29 | public interface Specification { 30 | 31 | boolean isSatisfiedBy(T record) throws NamingException; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/org/springframework/ldap/schema/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This package is aimed at providing a mechanism to implement LDAP schemas. 5 |

6 | Utilized by the LDIFParser to validate object composition post assembly, these 7 | classes may also be referenced by other utilities where seen fit. 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/main/java/overview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Insert title here 6 | 7 | 8 | This document is the API specification for the Spring LDAP LDIF Parser and its associated utilities. 9 |

10 | This series of packages provides an LDIF parser utility compliant with 11 | "RFC 2849 : The LDAP Data Interchange Format (LDIF) - Technical Specification". 12 | 13 | -------------------------------------------------------------------------------- /ldif/ldif-core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=INFO, console 2 | 3 | log4j.appender.console=org.apache.log4j.ConsoleAppender 4 | log4j.appender.console.layout=org.apache.log4j.PatternLayout 5 | log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 6 | 7 | log4j.logger.org.apache.directory=ERROR -------------------------------------------------------------------------------- /lib/ldapbp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/lib/ldapbp.jar -------------------------------------------------------------------------------- /modules/ROOT/nav.adoc: -------------------------------------------------------------------------------- 1 | * xref:index.adoc[] 2 | * xref:preface.adoc[] 3 | * xref:introduction.adoc[] 4 | * xref:spring-ldap-basic-usage.adoc[] 5 | * xref:dirobjectfactory.adoc[] 6 | * xref:odm.adoc[] 7 | * xref:query-builder-advanced.adoc[] 8 | * xref:configuration.adoc[] 9 | * xref:repositories.adoc[] 10 | * xref:pooling.adoc[] 11 | * xref:adding-missing-overloaded-api-methods.adoc[] 12 | * xref:processing-the-dircontext.adoc[] 13 | * xref:transaction-support.adoc[] 14 | * xref:user-authentication.adoc[] 15 | * xref:ldif-parsing.adoc[] 16 | * xref:utilities.adoc[] 17 | * xref:testing.adoc[] 18 | * xref:faq.adoc[] 19 | -------------------------------------------------------------------------------- /modules/ROOT/pages/faq.adoc: -------------------------------------------------------------------------------- 1 | [[spring-ldap-faq]] 2 | = Spring LDAP FAQ 3 | :page-section-summary-toc: 1 4 | 5 | [[operational-attributes]] 6 | == Operational Attributes 7 | 8 | [[how-do-i-remove-an-operational-attribute-by-using-context-removeattributevalue]] 9 | === How do I remove an operational attribute by using `context.removeAttributeValue()`? 10 | 11 | By default, the `DirContextAdapter` reads only the visible attributes. This is because the operational attributes are returned by the server only if explicitly asked for, and there is no way for Spring LDAP to know the attributes for which to ask. This means that the `DirContextAdapter` is not populated with the operational attributes. Consequently, the `removeAttributeValue` does not have any effect (since, from the point of view of the `DirContextAdapter`, it was not there in the first place). 12 | 13 | There are basically two ways to do this: 14 | 15 | * Use a search or lookup method that takes the attribute names as an argument, such as `LdapTemplate#lookup(Name, String[], ContextMapper)`. Then use a `ContextMapper` implementation that returns the supplied `DirContextAdapter` in `mapFromContext()`. 16 | 17 | * Use `LdapTemplate#modifyAttributes(Name, ModificationItem[])` directly, manually building the `ModificationItem` array. 18 | -------------------------------------------------------------------------------- /modules/ROOT/pages/index.adoc: -------------------------------------------------------------------------------- 1 | [[spring-ldap-reference]] 2 | = Spring LDAP Reference 3 | :page-section-summary-toc: 1 4 | Mattias Hellborg Arthursson; Ulrik Sandberg; Eric Dalquist; Keith Barlow; Rob Winch 5 | 6 | Spring LDAP makes it easier to build Spring-based applications that use the Lightweight Directory Access Protocol. 7 | 8 | _Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically._ 9 | 10 | -------------------------------------------------------------------------------- /modules/ROOT/pages/modules.adoc: -------------------------------------------------------------------------------- 1 | // FIXME: This might make sense in Getting Spring Security along with the artifact information 2 | 3 | [[modules]] 4 | = Project Modules 5 | Spring LDAP is broken up into the following separate modules: 6 | 7 | * spring-ldap-core - the xref:spring-ldap-basic-usage.adoc[core] Spring LDAP library, including xref:odm.adoc[the ODM framework] 8 | * spring-ldap-test - support classes that help LDAP with xref:testing.adoc[integration testing] 9 | * spring-ldap-ldif-core - the Spring LDAP xref:ldif-parsing.adoc[LDIF parsing library] 10 | * spring-ldap-ldif-batch - the Spring Batch integration layer for the LDIF parsing library 11 | 12 | Also of interest is https://docs.spring.io/spring-data/ldap/reference[spring-data-ldap], Spring Data's integration with Spring LDAP. -------------------------------------------------------------------------------- /modules/ROOT/pages/preface.adoc: -------------------------------------------------------------------------------- 1 | [[preface]] 2 | = Preface 3 | :page-section-summary-toc: 1 4 | 5 | The Java Naming and Directory Interface (JNDI) is to LDAP programming what Java Database Connectivity (JDBC) is to SQL programming. There are several similarities between JDBC and JNDI/LDAP (Java LDAP). Despite being two completely different APIs with different pros and cons, they share a number of less flattering characteristics: 6 | 7 | * They require extensive plumbing code, even to perform the simplest of tasks. 8 | * All resources need to be correctly closed, no matter what happens. 9 | * Exception handling is difficult. 10 | 11 | 12 | These points often lead to massive code duplication in common use cases of the APIs. As we all know, code duplication is one of the worst "`code smells`". All in all, it boils down to this: JDBC and LDAP programming in Java are both incredibly dull and repetitive. 13 | 14 | Spring JDBC, a core component of Spring Framework, provides excellent utilities for simplifying SQL programming. We need a similar framework for Java LDAP programming. 15 | 16 | -------------------------------------------------------------------------------- /notice.txt: -------------------------------------------------------------------------------- 1 | ====================================================================== 2 | == NOTICE file corresponding to section 4 d of the Apache License, == 3 | == Version 2.0, for the Spring LDAP distribution. == 4 | ====================================================================== 5 | 6 | This product includes software developed by 7 | the Apache Software Foundation (https://www.apache.org). 8 | 9 | The end-user documentation included with a redistribution, if any, 10 | must include the following acknowledgement: 11 | 12 | "This product includes software developed by the Spring LDAP 13 | Project (https://www.springframework.org/ldap)." 14 | 15 | Alternately, this acknowledgement may appear in the software itself, 16 | if and wherever such third-party acknowledgements normally appear. 17 | -------------------------------------------------------------------------------- /odm/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /odm/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /odm/src/main/java/org/springframework/ldap/odm/tools/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Provides a tool to create a Java class representation of a set of LDAP object classes 19 | * and a simple tool to view LDAP schema. 20 | * 21 | * @author Paul Harvey <paul.at.pauls-place.me.uk> 22 | */ 23 | 24 | package org.springframework.ldap.odm.tools; 25 | -------------------------------------------------------------------------------- /odm/src/main/resources/org/springframework/ldap/odm/tools/binary-attributes.txt: -------------------------------------------------------------------------------- 1 | # List of syntaxes that will be returned by the JNDI provider as byte[], taken from 2 | # https://java.sun.com/products/jndi/tutorial/ldap/misc/attrs.html 3 | # See all https://www.ietf.org/rfc/rfc2256.txt for attribute names with ;binary suffix 4 | 5 | # Syntax Used by Attributes 6 | # ------ ------------------ 7 | 8 | 1.3.6.1.4.1.1466.115.121.1.23 photo, personalSignature 9 | 1.3.6.1.4.1.1466.115.121.1.4 audio 10 | 1.3.6.1.4.1.1466.115.121.1.28 jpegPhoto 11 | 1.3.6.1.4.1.1466.115.121.1.40 javaSerializedData 12 | 1.3.6.1.4.1.1466.115.121.1.40 userPassword 13 | 1.3.6.1.4.1.1466.115.121.1.8 userCertificate, cACertificate 14 | 1.3.6.1.4.1.1466.115.121.1.9 authorityRevocationList, certificateRevocationList 15 | 1.3.6.1.4.1.1466.115.121.1.10 crossCertificatePair 16 | 1.3.6.1.4.1.1466.115.121.1.6 x500UniqueIdentifier 17 | -------------------------------------------------------------------------------- /odm/src/test/java/org/springframework/ldap/odm/test/utils/RunnableTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.odm.test.utils; 18 | 19 | // Interface to implement for tests to be run by ExecuteRunnable 20 | public interface RunnableTests { 21 | 22 | void runTest(T testData) throws Exception; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /odm/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=error, stdout 2 | log4j.logger.org.springframework.ldap.odm=error 3 | log4j.logger.org.springframework=error 4 | 5 | # Messages to the console 6 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 7 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 8 | 9 | log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 10 | 11 | # Message to a log file 12 | log4j.appender.log=org.apache.log4j.RollingFileAppender 13 | log4j.appender.log.File=jndi.log 14 | 15 | log4j.appender.log.MaxFileSize=100KB 16 | log4j.appender.log.MaxBackupIndex=1 17 | 18 | log4j.appender.log.layout=org.apache.log4j.PatternLayout 19 | log4j.appender.log.layout.ConversionPattern=%p %t %c - %m%n 20 | -------------------------------------------------------------------------------- /odm/src/test/resources/syntax-to-class-map.txt: -------------------------------------------------------------------------------- 1 | # List of attribute syntax to java class mappings 2 | 3 | # Syntax Java class 4 | # ------ ---------- 5 | 6 | 1.3.6.1.4.1.1466.115.121.1.50, java.lang.Integer 7 | 1.3.6.1.4.1.1466.115.121.1.40, [B 8 | -------------------------------------------------------------------------------- /parent/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /samples/readme.md: -------------------------------------------------------------------------------- 1 | ## Spring LDAP Samples 2 | 3 | Refer to these sample projects for some examples on using Spring LDAP 4 | 5 | * plain - demonstrates 'plain' usage of Spring LDAP 6 | * odm - demonstrates the Object-Directory mapping functionality 7 | * user-admin - a fully functional user admin application implemented using Spring LDAP -------------------------------------------------------------------------------- /sandbox/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sandbox/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.spring-module' 3 | } 4 | 5 | dependencies { 6 | management platform(project(":spring-ldap-dependencies")) 7 | api project(":spring-ldap-core") 8 | 9 | provided "com.sun:ldapbp:1.0" 10 | 11 | testImplementation platform('org.junit:junit-bom') 12 | testImplementation "org.junit.vintage:junit-vintage-engine" 13 | testImplementation "junit:junit" 14 | testImplementation "org.mockito:mockito-core" 15 | testImplementation "gsbase:gsbase" 16 | testImplementation "org.assertj:assertj-core" 17 | } 18 | 19 | compileTestJava { 20 | doFirst { 21 | options.compilerArgs = [ 22 | '--add-exports', 'java.naming/com.sun.jndi.ldap=ALL-UNNAMED' 23 | ] 24 | } 25 | } 26 | 27 | test { 28 | jvmArgs '--add-exports', 'java.naming/com.sun.jndi.ldap=ALL-UNNAMED' 29 | } 30 | -------------------------------------------------------------------------------- /scripts/release/release-notes-sections.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | repository: spring-projects/spring-ldap 3 | issues: 4 | exclude: 5 | labels: ["status: duplicate", "status: invalid", "status: declined"] 6 | sections: 7 | - title: "New Features" 8 | emoji: ":star:" 9 | labels: ["type: enhancement"] 10 | - title: "Bug Fixes" 11 | emoji: ":beetle:" 12 | labels: ["type: bug", "type: regression"] 13 | - title: "Dependency Upgrades" 14 | emoji: ":hammer:" 15 | labels: ["type: dependency-upgrade"] 16 | - title: "Non-passive" 17 | emoji: ":rewind:" 18 | labels: ["type: breaks-passivity"] 19 | contributors: 20 | title: ":heart: Contributors" 21 | exclude: 22 | names: ["jzheaux", "dependabot[bot]"] 23 | -------------------------------------------------------------------------------- /scripts/release/wait-for-done.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | type cowsay >/dev/null 2>&1 || cowsay() { :; } 4 | 5 | VERSION=$1 6 | until http -h --check-status --ignore-stdin https://repo1.maven.org/maven2/org/springframework/ldap/spring-ldap-core/$VERSION/; do sleep 10; clear; done; spd-say "It is now uploaded" && cowsay "It is now uploaded" 7 | -------------------------------------------------------------------------------- /scripts/update-dependencies.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm -f build/updates.txt 3 | ./gradlew dependencyUpdate -Drevision=release 4 | find -name report.txt | xargs cat > build/updates.txt 5 | echo "Updates...." 6 | cat build/updates.txt | fgrep ' ->' | sort | uniq 7 | -------------------------------------------------------------------------------- /src/docs/asciidoc/Guardfile: -------------------------------------------------------------------------------- 1 | require 'asciidoctor' 2 | require 'erb' 3 | 4 | guard 'shell' do 5 | watch(/^.*\.adoc$/) {|m| 6 | Asciidoctor.render_file(m[0], :to_dir => "build/", :safe => Asciidoctor::SafeMode::UNSAFE, :attributes=> {'idprefix' => '', 'numbered'=>'', 'idseparator' => '-', 'copycss' => '', 'icons' => 'font', 'source-highlighter' => 'prettify', 'sectanchors' => '', 'doctype' => 'book','toc2' => '', 'spring-ldap-version' => '2.0.0.CI-SNAPSHOT', 'revnumber' => '2.0.0.CI-SNAPSHOT' }) 7 | } 8 | end 9 | 10 | guard 'livereload' do 11 | watch(%r{build/.+\.(css|js|html)$}) 12 | end 13 | -------------------------------------------------------------------------------- /src/main/javadoc/overview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This document is the API specification for the Spring LDAP Framework 4 |


5 |
6 |

7 | For further API reference and developer documentation, see the 8 | Spring 9 | LDAP reference documentation. 10 | That documentation contains more detailed, developer-targeted 11 | descriptions, with conceptual overviews, definitions of terms, 12 | workarounds, and working code examples. 13 |

14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /src/site/apt/reference.apt: -------------------------------------------------------------------------------- 1 | ---------------- 2 | Reference Manual 3 | ---------------- 4 | 5 | Reference Manual 6 | 7 | The reference manual is available as HTML, and as PDF. 8 | 9 | * View the {{{./reference/html/index.html}HTML version}} 10 | 11 | * Download the {{{./reference/pdf/spring-ldap-reference.pdf}PDF version}} 12 | -------------------------------------------------------------------------------- /src/site/apt/resources.apt: -------------------------------------------------------------------------------- 1 | ------------------- 2 | Resources and Tools 3 | ------------------- 4 | 5 | Resources 6 | 7 | On this page, we give some general resources related to LDAP. Note that these 8 | resources are generic, and not tied to Spring LDAP. 9 | 10 | * LDAP 11 | 12 | 13 | ** RFCs 14 | 15 | * {{{https://www.ietf.org/rfc/rfc2251.txt}RFC 2251}}, LDAPv3 spec 16 | 17 | * {{{https://www.ietf.org/rfc/rfc2252.txt}RFC 2252}}, Attribute Syntax Definitions 18 | 19 | * {{{https://www.ietf.org/rfc/rfc2253.txt}RFC 2253}}, Distinguished Names 20 | 21 | * {{{https://www.ietf.org/rfc/rfc2254.txt}RFC 2254}}, LDAP Search Filters 22 | 23 | * {{{https://www.ietf.org/rfc/rfc2255.txt}RFC 2255}}, LDAP URL Format 24 | 25 | * {{{https://www.ietf.org/rfc/rfc2256.txt}RFC 2256}}, X.500 User Schema for use with LDAPv3 26 | 27 | * {{{https://www.ietf.org/rfc/rfc2696.txt}RFC 2696}}, LDAP Control Extension for Simple Paged Results 28 | 29 | -------------------------------------------------------------------------------- /src/site/fml/faq.fml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/src/site/fml/faq.fml -------------------------------------------------------------------------------- /src/site/resources/images/external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/src/site/resources/images/external.png -------------------------------------------------------------------------------- /src/site/resources/images/spring-ldap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-ldap/84f64324b2091e757a79aa78171a7588ed7248d1/src/site/resources/images/spring-ldap.png -------------------------------------------------------------------------------- /test-support/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /test-support/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test-support/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'io.spring.convention.spring-module' 3 | } 4 | 5 | dependencies { 6 | management platform(project(":spring-ldap-dependencies")) 7 | api project(":spring-ldap-core") 8 | api project(":spring-ldap-ldif-core") 9 | api "org.springframework:spring-core" 10 | api "org.springframework:spring-beans" 11 | api "org.springframework:spring-context" 12 | api "org.springframework:spring-test" 13 | 14 | implementation "com.google.code.typica:typica" 15 | 16 | optional "org.apache.directory.server:apacheds-core-entry" 17 | optional "org.apache.directory.server:apacheds-core" 18 | optional "org.apache.directory.server:apacheds-protocol-ldap" 19 | optional "org.apache.directory.server:apacheds-protocol-shared" 20 | optional "org.apache.directory.server:apacheds-server-jndi" 21 | optional "org.apache.directory.shared:shared-ldap" 22 | optional "com.unboundid:unboundid-ldapsdk" 23 | 24 | provided "junit:junit" 25 | testImplementation platform('org.junit:junit-bom') 26 | testImplementation "org.junit.vintage:junit-vintage-engine" 27 | testImplementation "org.assertj:assertj-core" 28 | } 29 | -------------------------------------------------------------------------------- /test-support/src/main/java/org/springframework/ldap/test/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Utilities to simplify integration testing against LDAP targets. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test-support/src/test/resources/applicationContext-testContextSource.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/integration-tests-ad/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | dependencies { 4 | management platform(project(":spring-ldap-dependencies")) 5 | implementation project(":spring-ldap-test") 6 | implementation project(":spring-ldap-odm") 7 | implementation project(":spring-ldap-core") 8 | 9 | provided "org.springframework:spring-jdbc" 10 | provided "org.springframework:spring-orm" 11 | 12 | testImplementation platform('org.junit:junit-bom') 13 | testImplementation "org.junit.vintage:junit-vintage-engine" 14 | testImplementation "org.springframework:spring-test" 15 | testImplementation "junit:junit" 16 | testImplementation "org.slf4j:slf4j-log4j12" 17 | testImplementation "org.assertj:assertj-core" 18 | 19 | } 20 | 21 | test.enabled = false // TODO this should be enabled depending on build parameter -------------------------------------------------------------------------------- /test/integration-tests-openldap/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /test/integration-tests-openldap/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests-openldap/README-EC2-tests.txt: -------------------------------------------------------------------------------- 1 | To run the automatic open LDAP EC2 instance launching tests, do: 2 | mvn -Daws.key= -Daws.secret.key= test 3 | 4 | You can optionally tune the EC2 launch using the following parameters: 5 | -Daws.ami= 6 | -Daws.key= 7 | -Daws.security.group= 8 | -------------------------------------------------------------------------------- /test/integration-tests-openldap/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | dependencies { 4 | management platform(project(":spring-ldap-dependencies")) 5 | implementation project(":spring-ldap-core") 6 | implementation project(":spring-ldap-test") 7 | implementation "commons-lang:commons-lang" 8 | implementation "commons-logging:commons-logging" 9 | implementation "commons-codec:commons-codec" 10 | 11 | provided "org.springframework:spring-jdbc" 12 | 13 | testImplementation platform('org.junit:junit-bom') 14 | testImplementation "org.junit.vintage:junit-vintage-engine" 15 | 16 | testImplementation "org.springframework:spring-aop" 17 | testImplementation "org.springframework:spring-test" 18 | testImplementation "gsbase:gsbase" 19 | testImplementation "junit:junit" 20 | testImplementation "com.sun:ldapbp:1.0" 21 | testImplementation "org.slf4j:slf4j-log4j12" 22 | testImplementation "org.assertj:assertj-core" 23 | 24 | } 25 | 26 | test.enabled = false // TODO this should be enabled depending on build parameter -------------------------------------------------------------------------------- /test/integration-tests-openldap/etc/springldap-openldap.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC7zCCAligAwIBAgIJAOH38yMEhSixMA0GCSqGSIb3DQEBBQUAMFkxCzAJBgNVBAYTAlNFMRMw 3 | EQYDVQQIEwpTb21lLVN0YXRlMQ8wDQYDVQQKEwZKYXl3YXkxJDAiBgNVBAMTG3NwcmluZy1sZGFw 4 | LXRlc3QuZHluZG5zLm9yZzAeFw0wODA4MTgxNzIxMTdaFw0xODA4MTYxNzIxMTdaMFkxCzAJBgNV 5 | BAYTAlNFMRMwEQYDVQQIEwpTb21lLVN0YXRlMQ8wDQYDVQQKEwZKYXl3YXkxJDAiBgNVBAMTG3Nw 6 | cmluZy1sZGFwLXRlc3QuZHluZG5zLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA+dPi 7 | lDPyRXg/y3ZfOpW3wiuw/8SDIE745Uu4jJGxrmnCjwOh8v34HP7s3M5Rq3pscR7aixTx8NETNV51 8 | Tgwonb7H3s+Qb8CSXzI1DpdfvbgtW+GnJQVXq/T6GX/hgoohhESJAQRTQ1It2RJNQiQVpMH0oFc1 9 | KSFlnc0qo1FqaoUCAwEAAaOBvjCBuzAdBgNVHQ4EFgQU+hnNbnZicrfV+h8Meg29AOZobqcwgYsG 10 | A1UdIwSBgzCBgIAU+hnNbnZicrfV+h8Meg29AOZobqehXaRbMFkxCzAJBgNVBAYTAlNFMRMwEQYD 11 | VQQIEwpTb21lLVN0YXRlMQ8wDQYDVQQKEwZKYXl3YXkxJDAiBgNVBAMTG3NwcmluZy1sZGFwLXRl 12 | c3QuZHluZG5zLm9yZ4IJAOH38yMEhSixMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA 13 | DmTZYF1taD79zaB9UbpAQ+aLQKF0cqR4tM/GAJ5nRC00nLl93MGyutmHGzSHjgjaBjUXVPL2tTjl 14 | DNHQLalvmrHkhAO+CW4oKoynIHc7LPHs/RmVfCyg8jKbMWa9K4ngZCBfFNAB4hrVvSEAOKeloaCN 15 | ek343bH2axD1jmnfow0= 16 | -----END CERTIFICATE----- 17 | -------------------------------------------------------------------------------- /test/integration-tests-openldap/src/main/java/org/springframework/ldap/AllMatchHostnameVerifier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap; 18 | 19 | import javax.net.ssl.HostnameVerifier; 20 | import javax.net.ssl.SSLSession; 21 | 22 | /** 23 | * @author Mattias Hellborg Arthursson 24 | */ 25 | public class AllMatchHostnameVerifier implements HostnameVerifier { 26 | 27 | @Override 28 | public boolean verify(String s, SSLSession sslSession) { 29 | return true; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /test/integration-tests-openldap/src/test/resources/conf/ldap.properties: -------------------------------------------------------------------------------- 1 | itest.openldap.url=ldap://localhost:389 2 | itest.openldap.user.dn=cn=admin,dc=261consulting,dc=com 3 | itest.openldap.user.password=secret 4 | itest.openldap.base=dc=261consulting,dc=com -------------------------------------------------------------------------------- /test/integration-tests-openldap/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=INFO, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout.ConversionPattern=%r [%t] %-5p\: %-15c{2} - %m%n 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | 6 | log4j.logger.org.apache.directory.server.schema.registries.DefaultSyntaxRegistry=WARN -------------------------------------------------------------------------------- /test/integration-tests-sunone/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | -------------------------------------------------------------------------------- /test/integration-tests-sunone/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests-sunone/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | dependencies { 4 | management platform(project(":spring-ldap-dependencies")) 5 | implementation project(":spring-ldap-test") 6 | implementation project(":spring-ldap-integration-tests") 7 | implementation project(":spring-ldap-sandbox") 8 | implementation project(":spring-ldap-core") 9 | implementation "commons-pool:commons-pool" 10 | 11 | provided "org.springframework:spring-jdbc" 12 | provided "com.sun:ldapbp:1.0" 13 | 14 | testImplementation platform('org.junit:junit-bom') 15 | testImplementation "org.junit.vintage:junit-vintage-engine" 16 | 17 | testImplementation "junit:junit" 18 | testImplementation "org.springframework:spring-aop" 19 | testImplementation "org.springframework:spring-aop" 20 | testImplementation "gsbase:gsbase" 21 | testImplementation "org.slf4j:slf4j-log4j12" 22 | testImplementation "org.assertj:assertj-core" 23 | 24 | } 25 | 26 | test.enabled = false // TODO this should be enabled depending on build parameter -------------------------------------------------------------------------------- /test/integration-tests-sunone/src/test/resources/conf/ldap.properties: -------------------------------------------------------------------------------- 1 | itest.sunone.serverAddress=spring-ldap-test.dyndns.org 2 | userDn=cn=admin,o=Ace Industry,c=us 3 | password=secret 4 | base=o=Ace Industry,c=us 5 | -------------------------------------------------------------------------------- /test/integration-tests-sunone/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=warn, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout.ConversionPattern=%r [%t] %-5p\: %-15c{2} - %m%n 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | 6 | log4j.logger.org.apache.directory.server.schema.registries.DefaultSyntaxRegistry=WARN -------------------------------------------------------------------------------- /test/integration-tests/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .classpath 3 | .project 4 | .settings 5 | /.settings 6 | /target 7 | /.classpath 8 | /.project 9 | -------------------------------------------------------------------------------- /test/integration-tests/.springBeans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests/readme.itest.config.md: -------------------------------------------------------------------------------- 1 | ## Spring LDAP Integration Test Configuration 2 | 3 | By default, the Spring LDAP integration tests run against an in-process ApacheDS instance. 4 | To configure the tests to run against an external LDAP server, use the following system properties: 5 | 6 | * `-Dspring.profiles.active=no-apacheds` (required to run against external LDAP server) 7 | * `-Durl=` (defaults to ldap://127.0.0.1:389) 8 | * `-DuserDn=` 9 | * `-Dpassword=` 10 | * `-Dbase=` - note that the base node MUST exist and that it will be completely cleared by the tests. 11 | * `-Dadtest` - A number of integration tests uses specific LDAP functionality which is not supported or very hard 12 | to configure for Active Directory. Use this flag to disable these tests. 13 | -------------------------------------------------------------------------------- /test/integration-tests/src/main/java/org/springframework/ldap/itest/NoAdTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2013 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.itest; 18 | 19 | /** 20 | * @author Mattias Hellborg Arthursson 21 | */ 22 | public interface NoAdTests { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /test/integration-tests/src/main/java/org/springframework/ldap/itest/filter/DummyFilterConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2005-2010 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.itest.filter; 18 | 19 | import org.springframework.ldap.filter.Filter; 20 | 21 | /** 22 | * Dummy class to test Filter property editor. 23 | * 24 | * @author Mattias Hellborg Arthursson 25 | */ 26 | public class DummyFilterConsumer { 27 | 28 | private Filter filter; 29 | 30 | public Filter getFilter() { 31 | return this.filter; 32 | } 33 | 34 | public void setFilter(Filter filter) { 35 | this.filter = filter; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /test/integration-tests/src/main/java/org/springframework/ldap/itest/transaction/compensating/manager/DummyException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2007 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.itest.transaction.compensating.manager; 18 | 19 | public class DummyException extends RuntimeException { 20 | 21 | public DummyException(String message) { 22 | super(message); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /test/integration-tests/src/main/java/org/springframework/ldap/itest/transaction/compensating/manager/DummyServiceImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2007 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.itest.transaction.compensating.manager; 18 | 19 | public class DummyServiceImpl { 20 | 21 | private DummyDao dummyDaoImpl; 22 | 23 | public void setDummyDaoImpl(DummyDao dummyDaoImpl) { 24 | this.dummyDaoImpl = dummyDaoImpl; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/java/org/springframework/ldap/itest/ldap321/RoleRepo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2002-2015 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.ldap.itest.ldap321; 18 | 19 | import java.util.HashMap; 20 | import java.util.Map; 21 | 22 | import org.springframework.transaction.annotation.Transactional; 23 | 24 | /** 25 | * @author Rob Winch 26 | */ 27 | public class RoleRepo { 28 | 29 | @Transactional 30 | public Map queryRoleMap() { 31 | return new HashMap<>(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/OrgPerson.hbm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/baseLdapPathPostProcessorNamespaceTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 13 | 14 | 16 | 17 | 18 | 19 | 21 | 22 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/baseLdapPathPostProcessorNoContextSourceTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 10 | 11 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/baseLdapPathPostProcessorPoolingNamespaceTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 24 | 25 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/commonContextSourceConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/commonNoNamespaceContextSourceConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/commonTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/distinguishedNameEditorTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/hardcodedFilterTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldap.properties: -------------------------------------------------------------------------------- 1 | url=ldap://127.0.0.1:1888 2 | userDn=uid=admin,ou=system 3 | password=secret 4 | base=dc=261consulting,dc=com 5 | testRoot= 6 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldapClientTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldapContextSourceTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldapTemplateNamespaceTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldapTemplateNamespaceTransactionTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/ldapTemplateTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/repositoryScanAnnotationTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/repositoryScanTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/conf/simpleLdapTemplateTestContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/integration-tests/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=WARN, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.layout.ConversionPattern=%r [%t] %-5p\: %-15c{2} - %m%n 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | 6 | # Enable info on Spring LDAP 7 | #log4j.logger.org.springframework.ldap=INFO 8 | 9 | log4j.logger.org.apache.directory.server.schema.registries.DefaultSyntaxRegistry=WARN 10 | log4j.logger.org.apache.directory.server.core.schema.bootstrap=ERROR 11 | log4j.logger.org.apache.directory.server.core.partition.impl.btree=ERROR 12 | log4j.logger.org.apache.directory.shared.ldap.ldif=ERROR 13 | -------------------------------------------------------------------------------- /with-dependencies.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export MAVEN_OPTS=-Xmx512m 3 | mvn -DskipTests -P release clean javadoc:javadoc docbkx:generate-html docbkx:generate-pdf install 4 | --------------------------------------------------------------------------------