Merge branch 'master' into fix/skip-ssl-warning
Original commit: elastic/x-pack-elasticsearch@2a8dd47b6b
This commit is contained in:
commit
b2d72a4fb3
|
@ -11,12 +11,14 @@ import org.elasticsearch.client.ElasticsearchClient;
|
|||
import org.elasticsearch.common.Nullable;
|
||||
import org.elasticsearch.common.ParseFieldMatcher;
|
||||
import org.elasticsearch.common.Strings;
|
||||
import org.elasticsearch.common.ValidationException;
|
||||
import org.elasticsearch.common.bytes.BytesReference;
|
||||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
import org.elasticsearch.shield.User;
|
||||
import org.elasticsearch.shield.authc.support.Hasher;
|
||||
import org.elasticsearch.shield.authc.support.SecuredString;
|
||||
import org.elasticsearch.shield.support.Validation;
|
||||
import org.elasticsearch.xpack.common.xcontent.XContentUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -46,7 +48,17 @@ public class PutUserRequestBuilder extends ActionRequestBuilder<PutUserRequest,
|
|||
}
|
||||
|
||||
public PutUserRequestBuilder password(@Nullable char[] password) {
|
||||
request.passwordHash(password == null ? null : hasher.hash(new SecuredString(password)));
|
||||
if (password != null) {
|
||||
Validation.Error error = Validation.ESUsers.validatePassword(password);
|
||||
if (error != null) {
|
||||
ValidationException validationException = new ValidationException();
|
||||
validationException.addValidationError(error.toString());
|
||||
throw validationException;
|
||||
}
|
||||
request.passwordHash(hasher.hash(new SecuredString(password)));
|
||||
} else {
|
||||
request.passwordHash(null);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import org.elasticsearch.ElasticsearchSecurityException;
|
|||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.common.Strings;
|
||||
import org.elasticsearch.common.ValidationException;
|
||||
import org.elasticsearch.common.bytes.BytesArray;
|
||||
import org.elasticsearch.rest.RestStatus;
|
||||
import org.elasticsearch.shield.ShieldTemplateService;
|
||||
|
@ -386,4 +387,14 @@ public class ESNativeTests extends NativeRealmIntegTestCase {
|
|||
.admin().cluster().prepareHealth().get();
|
||||
assertFalse(response.isTimedOut());
|
||||
}
|
||||
|
||||
public void testCannotCreateUserWithShortPassword() throws Exception {
|
||||
SecurityClient client = securityClient();
|
||||
try {
|
||||
client.preparePutUser("joe", randomAsciiOfLengthBetween(0, 5).toCharArray(), "admin_role").get();
|
||||
fail("cannot create a user without a password < 6 characters");
|
||||
} catch (ValidationException v) {
|
||||
assertThat(v.getMessage().contains("password"), is(true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue