/** * {@inheritDoc} */ @Override public boolean compare( CompareRequest compareRequest ) throws LdapException { CompareOperationContext compareContext = new CompareOperationContext( this, compareRequest ); OperationManager operationManager = directoryService.getOperationManager(); boolean result = false; try { result = operationManager.compare( compareContext ); } catch ( LdapException e ) { compareRequest.getResultResponse().addAllControls( compareContext.getResponseControls() ); throw e; } compareRequest.getResultResponse().addAllControls( compareContext.getResponseControls() ); return result; }
/** * {@inheritDoc} */ public void handle( LdapSession session, CompareRequest req ) { LOG.debug( "Handling compare request while ignoring referrals: {}", req ); LdapResult result = req.getResultResponse().getLdapResult(); try { if ( session.getCoreSession().compare( req ) ) { result.setResultCode( ResultCodeEnum.COMPARE_TRUE ); } else { result.setResultCode( ResultCodeEnum.COMPARE_FALSE ); } result.setMatchedDn( req.getName() ); session.getIoSession().write( req.getResultResponse() ); } catch ( Exception e ) { handleException( session, req, e ); } } }