/** * Digests the supplied credential using the supplied algorithm. * * @param credential to digest * @param algorithm type of digest to use * * @return digested credential * * @throws LdapException if the supplied algorithm cannot be found */ protected byte[] digestCredential(final Credential credential, final String algorithm) throws LdapException { try { final MessageDigest md = MessageDigest.getInstance(algorithm); md.update(credential.getBytes()); return md.digest(); } catch (NoSuchAlgorithmException e) { throw new LdapException(e); } }
/** * Digests the supplied credential using the supplied algorithm. * * @param credential to digest * @param algorithm type of digest to use * * @return digested credential * * @throws LdapException if the supplied algorithm cannot be found */ protected byte[] digestCredential(final Credential credential, final String algorithm) throws LdapException { try { final MessageDigest md = MessageDigest.getInstance(algorithm); md.update(credential.getBytes()); return md.digest(); } catch (NoSuchAlgorithmException e) { throw new LdapException(e); } }
@Override protected AuthenticationHandlerResponse authenticateInternal( final Connection c, final AuthenticationCriteria criteria) throws LdapException { byte[] hash; try { final MessageDigest md = MessageDigest.getInstance(passwordScheme); md.update(criteria.getCredential().getBytes()); hash = md.digest(); } catch (NoSuchAlgorithmException e) { throw new LdapException(e); } final LdapAttribute la = new LdapAttribute( "userPassword", String.format("{%s}%s", passwordScheme, LdapUtils.base64Encode(hash)).getBytes()); final CompareOperation compare = new CompareOperation(c); final CompareRequest request = new CompareRequest(criteria.getDn(), la); request.setControls(getAuthenticationControls()); final Response<Boolean> compareResponse = compare.execute(request); return new AuthenticationHandlerResponse( compareResponse.getResult(), compareResponse.getResultCode(), c, compareResponse.getMessage(), compareResponse.getControls(), compareResponse.getMessageId()); }
context.addToEnvironment(PRINCIPAL, request.getDn()); if (request.getCredential() != null) { context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes());
context.addToEnvironment(PRINCIPAL, request.getDn()); if (request.getCredential() != null) { context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes());
context.addToEnvironment(PRINCIPAL, request.getDn()); if (request.getCredential() != null) { context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes());
/** * Performs a simple bind. * * @param request to bind with * * @return bind response * * @throws LdapException if an error occurs */ protected Response<Void> simpleBind(final BindRequest request) throws LdapException { Response<Void> response = null; try { context.addToEnvironment(AUTHENTICATION, "simple"); context.addToEnvironment(PRINCIPAL, request.getDn()); context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes()); context.reconnect(config.getControlProcessor().processRequestControls(request.getControls())); response = createResponse(request, null, ResultCode.SUCCESS, null, context); } catch (ReferralException e) { final String[] refUrls = e.getReferralInfo() != null ? new String[] {(String) e.getReferralInfo()} : null; response = createResponse(request, null, ResultCode.REFERRAL, refUrls, context); } catch (NamingException e) { processNamingException(request, e, null, context); } return response; }
request.setCredentials(credential.getBytes());
request.setCredentials(credential.getBytes());
/** * Performs a simple bind. * * @param request to bind with * * @return bind response * * @throws LdapException if an error occurs */ protected Response<Void> simpleBind(final BindRequest request) throws LdapException { Response<Void> response = null; try { context.addToEnvironment(AUTHENTICATION, "simple"); context.addToEnvironment(PRINCIPAL, request.getDn()); context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes()); context.reconnect(config.getControlProcessor().processRequestControls(request.getControls())); response = createResponse(request, null, ResultCode.SUCCESS, null, context); } catch (ReferralException e) { final String[] refUrls = e.getReferralInfo() != null ? new String[] {(String) e.getReferralInfo()} : null; response = createResponse(request, null, ResultCode.REFERRAL, refUrls, context); } catch (NamingException e) { processNamingException(request, e, null, context); } return response; }
/** * Performs a simple bind. * * @param request to bind with * * @return bind response * * @throws LdapException if an error occurs */ protected Response<Void> simpleBind(final BindRequest request) throws LdapException { Response<Void> response = null; try { context.addToEnvironment(AUTHENTICATION, "simple"); context.addToEnvironment(PRINCIPAL, request.getDn()); context.addToEnvironment(CREDENTIALS, request.getCredential().getBytes()); context.reconnect(config.getControlProcessor().processRequestControls(request.getControls())); response = createResponse(request, null, ResultCode.SUCCESS, null, context); } catch (ReferralException e) { final String[] refUrls = e.getReferralInfo() != null ? new String[] {(String) e.getReferralInfo()} : null; response = createResponse(request, null, ResultCode.REFERRAL, refUrls, context); } catch (NamingException e) { processNamingException(request, e, null, context); } return response; }
request.setCredentials(credential.getBytes());
bri.setSimple(true); bri.setDn(new Dn(request.getDn())); bri.setCredentials(request.getCredential().getBytes());