diff --git a/src/main/groovy/gldapo/GldapoDirectory.groovy b/src/main/groovy/gldapo/GldapoDirectory.groovy index 60a9aec..bed94a0 100644 --- a/src/main/groovy/gldapo/GldapoDirectory.groovy +++ b/src/main/groovy/gldapo/GldapoDirectory.groovy @@ -143,7 +143,7 @@ class GldapoDirectory implements SearchProvider { ContextMapper mapper = new GldapoContextMapper(schemaRegistration: schemaRegistration, directory: this) ContextMapperCallbackHandler handler = new ContextMapperCallbackHandler(mapper) - javax.naming.directory.SearchControls jndiControls = controls as javax.naming.directory.SearchControls + javax.naming.directory.SearchControls jndiControls = controls.asJavaxSearchControls() jndiControls.returningAttributes = schemaRegistration.attributeMappings*.value.attributeName if (controls.pageSize == null || controls.pageSize < 1) { diff --git a/src/main/groovy/gldapo/search/SearchControls.groovy b/src/main/groovy/gldapo/search/SearchControls.groovy index 17ad5cf..cf66533 100644 --- a/src/main/groovy/gldapo/search/SearchControls.groovy +++ b/src/main/groovy/gldapo/search/SearchControls.groovy @@ -81,16 +81,20 @@ class SearchControls implements SearchControlProvider, Cloneable { def asType(Class c) { if (c.equals(javax.naming.directory.SearchControls)) { - def controls = new javax.naming.directory.SearchControls() - if (this.countLimit != null) controls.countLimit = this.countLimit - if (this.derefLinkFlag != null) controls.derefLinkFlag = this.derefLinkFlag - if (this.searchScope != null) controls.searchScope = this.searchScopeAsInteger - if (this.timeLimit != null) controls.timeLimit = this.timeLimit - controls.returningObjFlag = true - return controls + return asJavaxSearchControls() } else { super(c) } } + + def asJavaxSearchControls() { + def controls = new javax.naming.directory.SearchControls() + if (this.countLimit != null) controls.countLimit = this.countLimit + if (this.derefLinkFlag != null) controls.derefLinkFlag = this.derefLinkFlag + if (this.searchScope != null) controls.searchScope = this.searchScopeAsInteger + if (this.timeLimit != null) controls.timeLimit = this.timeLimit + controls.returningObjFlag = true + controls + } } \ No newline at end of file