Hammond, Steven wrote: > This is how I did it back in 1.5.3 (which I am still on until we get budget to move to the present) > > A warning, at first I just had getAddress, but this caused a reverseDNS lookup and noticeable slowness. > > In core\src\main\java\org\apache\directory\server\core\jndi\ServerContext.java I added client_host and client_port: > > > protected NamingEnumeration doSearchOperation( LdapDN dn, AliasDerefMode aliasDerefMode, > ExprNode filter, SearchControls searchControls, InetSocketAddress clientAddress, > DirContext dirCtx) throws NamingException > { > // setup the op context and populate with request controls > SearchOperationContext opCtx = new SearchOperationContext( registries, dn, aliasDerefMode, filter, > searchControls ); > > opCtx.put( "client_host", clientAddress.getAddress().getHostAddress() ); > opCtx.put( "client_port", String.valueOf( clientAddress.getPort() ) ); > opCtx.put( "client_JNDI_CXN", dirCtx ); > opCtx.addRequestControls( requestControls ); > > // execute search operation > NamingEnumeration results = nexusProxy.search( opCtx ); > > // clear the request controls and set the response controls > requestControls = EMPTY_CONTROLS; > responseControls = opCtx.getResponseControls(); > > return results; > } > > > > Then in the my partition inside public NamingEnumeration search(SearchOperationContext arg0) I have: > > ob = opContext.get("client_host"); > if (ob != null) > { > String hostname = (String) ob; > ob = opContext.get("client_port"); > String clientPort = (String) ob; > > Thanks for letting me know your approach. It looks like thngs have changed a lot since then, the SearchOperationContext doesn't have a put method. It seems that with Apache DS a minor point release means a big internal code change. :) My approach has worked *OK* ... but it's not passing the connections details down to the authentication layer so I can use it in the bind operation. I'll need to dig further to see if I can get this working. I'll update the Jira issue as I progress. Matt