private ClientMessage prepareSerializationVersionMismatchClientMessage() { return encodeAuth(AuthenticationStatus.SERIALIZATION_VERSION_MISMATCH.getId(), null, null, null, serializationService.getVersion(), null); }
private ClientMessage prepareSerializationVersionMismatchClientMessage() { return encodeAuth(SERIALIZATION_VERSION_MISMATCH.getId(), null, null, null, serializationService.getVersion(), null); }
private ClientMessage prepareUnauthenticatedClientMessage() { Connection connection = endpoint.getConnection(); logger.warning("Received auth from " + connection + " with principal " + principal + ", authentication failed"); byte status = CREDENTIALS_FAILED.getId(); return encodeAuth(status, null, null, null, serializationService.getVersion(), null); }
private ClientMessage prepareUnauthenticatedClientMessage() { Connection connection = endpoint.getConnection(); ILogger logger = clientEngine.getLogger(getClass()); logger.warning("Received auth from " + connection + " with principal " + principal + ", authentication failed"); byte status = AuthenticationStatus.CREDENTIALS_FAILED.getId(); return encodeAuth(status, null, null, null, serializationService.getVersion(), null); }
private AuthenticationStatus authenticate() { if (clientSerializationVersion != serializationService.getVersion()) { return SERIALIZATION_VERSION_MISMATCH; } if (!isOwnerConnection() && !isMember(principal)) { logger.warning("Member having UUID " + principal.getOwnerUuid() + " is not part of the cluster. Client Authentication rejected."); return CREDENTIALS_FAILED; } else if (credentials == null) { logger.severe("Could not retrieve Credentials object!"); return CREDENTIALS_FAILED; } else if (clientEngine.getSecurityContext() != null) { return authenticate(clientEngine.getSecurityContext()); } else if (credentials instanceof UsernamePasswordCredentials) { UsernamePasswordCredentials usernamePasswordCredentials = (UsernamePasswordCredentials) credentials; return authenticate(usernamePasswordCredentials); } else { logger.severe("Hazelcast security is disabled.\nUsernamePasswordCredentials or cluster " + "group-name and group-password should be used for authentication!\n" + "Current credentials type is: " + credentials.getClass().getName()); return CREDENTIALS_FAILED; } }
private ClientMessage encodeAuthenticationRequest() { InternalSerializationService ss = client.getSerializationService(); byte serializationVersion = ss.getVersion(); String uuid = null; String ownerUuid = null; ClientPrincipal principal = getPrincipal(); if (principal != null) { uuid = principal.getUuid(); ownerUuid = principal.getOwnerUuid(); } Credentials credentials = credentialsFactory.newCredentials(); lastCredentials = credentials; if (credentials.getClass().equals(UsernamePasswordCredentials.class)) { UsernamePasswordCredentials cr = (UsernamePasswordCredentials) credentials; return ClientAuthenticationCodec .encodeRequest(cr.getUsername(), cr.getPassword(), uuid, ownerUuid, asOwner, ClientTypes.JAVA, serializationVersion, BuildInfoProvider.getBuildInfo().getVersion(), client.getName(), attributes.entrySet()); } else { Data data = ss.toData(credentials); return ClientAuthenticationCustomCodec.encodeRequest(data, uuid, ownerUuid, asOwner, ClientTypes.JAVA, serializationVersion, BuildInfoProvider.getBuildInfo().getVersion(), client.getName(), attributes.entrySet()); } }
private ClientMessage prepareAuthenticatedClientMessage() { Connection connection = endpoint.getConnection(); ILogger logger = clientEngine.getLogger(getClass()); endpoint.authenticated(principal, credentials, isOwnerConnection(), clientVersion, clientMessage.getCorrelationId()); setConnectionType(); logger.info("Received auth from " + connection + ", successfully authenticated" + ", principal: " + principal + ", owner connection: " + isOwnerConnection() + ", client version: " + clientVersion); if (endpointManager.registerEndpoint(endpoint)) { clientEngine.bind(endpoint); } final Address thisAddress = clientEngine.getThisAddress(); byte status = AuthenticationStatus.AUTHENTICATED.getId(); return encodeAuth(status, thisAddress, principal.getUuid(), principal.getOwnerUuid(), serializationService.getVersion(), Collections.<Member>emptyList()); }
private ClientMessage encodeAuthenticationRequest(boolean asOwner, SerializationService ss, ClientPrincipal principal) { byte serializationVersion = ((InternalSerializationService) ss).getVersion(); String uuid = null; String ownerUuid = null; if (principal != null) { uuid = principal.getUuid(); ownerUuid = principal.getOwnerUuid(); } ClientMessage clientMessage; Credentials credentials = credentialsFactory.newCredentials(); lastCredentials = credentials; if (credentials.getClass().equals(UsernamePasswordCredentials.class)) { UsernamePasswordCredentials cr = (UsernamePasswordCredentials) credentials; clientMessage = ClientAuthenticationCodec .encodeRequest(cr.getUsername(), cr.getPassword(), uuid, ownerUuid, asOwner, ClientTypes.JAVA, serializationVersion, BuildInfoProvider.getBuildInfo().getVersion()); } else { Data data = ss.toData(credentials); clientMessage = ClientAuthenticationCustomCodec.encodeRequest(data, uuid, ownerUuid, asOwner, ClientTypes.JAVA, serializationVersion, BuildInfoProvider.getBuildInfo().getVersion()); } return clientMessage; }
private ClientMessage prepareAuthenticatedClientMessage() { Connection connection = endpoint.getConnection(); endpoint.authenticated(principal, credentials, isOwnerConnection(), clientVersion, clientMessage.getCorrelationId(), clientName, attributes); setConnectionType(); logger.info("Received auth from " + connection + ", successfully authenticated" + ", principal: " + principal + ", owner connection: " + isOwnerConnection() + ", client version: " + clientVersion); if (endpointManager.registerEndpoint(endpoint)) { clientEngine.bind(endpoint); } final Address thisAddress = clientEngine.getThisAddress(); byte status = AUTHENTICATED.getId(); return encodeAuth(status, thisAddress, principal.getUuid(), principal.getOwnerUuid(), serializationService.getVersion(), Collections.<Member>emptyList()); }
@Override public void processMessage() throws Throwable { byte serializationServiceVersion = serializationService.getVersion(); AuthenticationStatus authenticationStatus; if (clientSerializationVersion != serializationServiceVersion) { sendClientMessage(prepareSerializationVersionMismatchClientMessage()); return; } authenticationStatus = authenticate(); if (authenticationStatus == AuthenticationStatus.CREDENTIALS_FAILED) { sendClientMessage(prepareUnauthenticatedClientMessage()); return; } if (!isOwnerConnection()) { prepareAndSendResponse(authenticationStatus); return; } String uuid = getUuid(); String localMemberUUID = clientEngine.getThisUuid(); principal = new ClientPrincipal(uuid, localMemberUUID); if (logger.isFineEnabled()) { logger.fine("Processing owner authentication with principal " + principal); } super.processMessage(); }