|
@@ -75,10 +75,11 @@ public class AuthenticateResponseTests extends ESTestCase {
|
|
|
final String authenticationRealmType = randomFrom("file", "native", "ldap", "active_directory", "saml", "kerberos");
|
|
|
final String lookupRealmName = randomAlphaOfLength(5);
|
|
|
final String lookupRealmType = randomFrom("file", "native", "ldap", "active_directory", "saml", "kerberos");
|
|
|
+ final String authenticationType = randomFrom("realm", "api_key", "token", "anonymous", "internal");
|
|
|
return new AuthenticateResponse(
|
|
|
new User(username, roles, metadata, fullName, email), enabled,
|
|
|
new AuthenticateResponse.RealmInfo(authenticationRealmName, authenticationRealmType),
|
|
|
- new AuthenticateResponse.RealmInfo(lookupRealmName, lookupRealmType));
|
|
|
+ new AuthenticateResponse.RealmInfo(lookupRealmName, lookupRealmType), authenticationType);
|
|
|
}
|
|
|
|
|
|
private void toXContent(AuthenticateResponse response, XContentBuilder builder) throws IOException {
|
|
@@ -103,6 +104,7 @@ public class AuthenticateResponseTests extends ESTestCase {
|
|
|
builder.field(AuthenticateResponse.REALM_NAME.getPreferredName(), response.getLookupRealm().getName());
|
|
|
builder.field(AuthenticateResponse.REALM_TYPE.getPreferredName(), response.getLookupRealm().getType());
|
|
|
builder.endObject();
|
|
|
+ builder.field(AuthenticateResponse.AUTHENTICATION_TYPE.getPreferredName(), response.getAuthenticationType());
|
|
|
builder.endObject();
|
|
|
}
|
|
|
|
|
@@ -111,48 +113,56 @@ public class AuthenticateResponseTests extends ESTestCase {
|
|
|
final User copyUser = new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail());
|
|
|
return new AuthenticateResponse(copyUser, response.enabled(), response.getAuthenticationRealm(),
|
|
|
- response.getLookupRealm());
|
|
|
+ response.getLookupRealm(), response.getAuthenticationType());
|
|
|
}
|
|
|
|
|
|
private AuthenticateResponse mutate(AuthenticateResponse response) {
|
|
|
final User originalUser = response.getUser();
|
|
|
- switch (randomIntBetween(1, 8)) {
|
|
|
+ switch (randomIntBetween(1, 9)) {
|
|
|
case 1:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername() + "wrong", originalUser.getRoles(),
|
|
|
originalUser.getMetadata(), originalUser.getFullName(), originalUser.getEmail()), response.enabled(),
|
|
|
- response.getAuthenticationRealm(), response.getLookupRealm());
|
|
|
+ response.getAuthenticationRealm(), response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 2:
|
|
|
final List<String> wrongRoles = new ArrayList<>(originalUser.getRoles());
|
|
|
wrongRoles.add(randomAlphaOfLengthBetween(1, 4));
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), wrongRoles, originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail()), response.enabled(), response.getAuthenticationRealm(),
|
|
|
- response.getLookupRealm());
|
|
|
+ response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 3:
|
|
|
final Map<String, Object> wrongMetadata = new HashMap<>(originalUser.getMetadata());
|
|
|
wrongMetadata.put("wrong_string", randomAlphaOfLengthBetween(0, 4));
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), wrongMetadata,
|
|
|
originalUser.getFullName(), originalUser.getEmail()), response.enabled(), response.getAuthenticationRealm(),
|
|
|
- response.getLookupRealm());
|
|
|
+ response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 4:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName() + "wrong", originalUser.getEmail()), response.enabled(),
|
|
|
- response.getAuthenticationRealm(), response.getLookupRealm());
|
|
|
+ response.getAuthenticationRealm(), response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 5:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail() + "wrong"), response.enabled(),
|
|
|
- response.getAuthenticationRealm(), response.getLookupRealm());
|
|
|
+ response.getAuthenticationRealm(), response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 6:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail()), !response.enabled(), response.getAuthenticationRealm(),
|
|
|
- response.getLookupRealm());
|
|
|
+ response.getLookupRealm(), response.getAuthenticationType());
|
|
|
case 7:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail()), response.enabled(), response.getAuthenticationRealm(),
|
|
|
- new AuthenticateResponse.RealmInfo(randomAlphaOfLength(5), randomAlphaOfLength(5)));
|
|
|
+ new AuthenticateResponse.RealmInfo(randomAlphaOfLength(5), randomAlphaOfLength(5)),
|
|
|
+ response.getAuthenticationType());
|
|
|
case 8:
|
|
|
return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
originalUser.getFullName(), originalUser.getEmail()), response.enabled(),
|
|
|
- new AuthenticateResponse.RealmInfo(randomAlphaOfLength(5), randomAlphaOfLength(5)), response.getLookupRealm());
|
|
|
+ new AuthenticateResponse.RealmInfo(randomAlphaOfLength(5), randomAlphaOfLength(5)), response.getLookupRealm(),
|
|
|
+ response.getAuthenticationType());
|
|
|
+ case 9:
|
|
|
+ return new AuthenticateResponse(new User(originalUser.getUsername(), originalUser.getRoles(), originalUser.getMetadata(),
|
|
|
+ originalUser.getFullName(), originalUser.getEmail()), response.enabled(), response.getAuthenticationRealm(),
|
|
|
+ response.getLookupRealm(),
|
|
|
+ randomValueOtherThan(response.getAuthenticationType(),
|
|
|
+ () -> randomFrom("realm", "api_key", "token", "anonymous", "internal")));
|
|
|
}
|
|
|
throw new IllegalStateException("Bad random number");
|
|
|
}
|