@@ -70,7 +70,14 @@ protected AuthenticateResponse createTestInstance() {
70
70
final String fullName = randomFrom (random (), null , randomAlphaOfLengthBetween (0 , 4 ));
71
71
final String email = randomFrom (random (), null , randomAlphaOfLengthBetween (0 , 4 ));
72
72
final boolean enabled = randomBoolean ();
73
- return new AuthenticateResponse (new User (username , roles , metadata , fullName , email ), enabled );
73
+ final String authenticationRealmName = randomAlphaOfLength (5 );
74
+ final String authenticationRealmType = randomFrom ("file" , "native" , "ldap" , "active_directory" , "saml" , "kerberos" );
75
+ final String lookupRealmName = randomAlphaOfLength (5 );
76
+ final String lookupRealmType = randomFrom ("file" , "native" , "ldap" , "active_directory" , "saml" , "kerberos" );
77
+ return new AuthenticateResponse (
78
+ new User (username , roles , metadata , fullName , email ), enabled ,
79
+ new AuthenticateResponse .RealmInfo (authenticationRealmName , authenticationRealmType ),
80
+ new AuthenticateResponse .RealmInfo (lookupRealmName , lookupRealmType ));
74
81
}
75
82
76
83
private void toXContent (AuthenticateResponse response , XContentBuilder builder ) throws IOException {
@@ -87,41 +94,64 @@ private void toXContent(AuthenticateResponse response, XContentBuilder builder)
87
94
builder .field (AuthenticateResponse .EMAIL .getPreferredName (), user .getEmail ());
88
95
}
89
96
builder .field (AuthenticateResponse .ENABLED .getPreferredName (), enabled );
97
+ builder .startObject (AuthenticateResponse .AUTHENTICATION_REALM .getPreferredName ());
98
+ builder .field (AuthenticateResponse .REALM_NAME .getPreferredName (), response .getAuthenticationRealm ().getName ());
99
+ builder .field (AuthenticateResponse .REALM_TYPE .getPreferredName (), response .getAuthenticationRealm ().getType ());
100
+ builder .endObject ();
101
+ builder .startObject (AuthenticateResponse .LOOKUP_REALM .getPreferredName ());
102
+ builder .field (AuthenticateResponse .REALM_NAME .getPreferredName (), response .getLookupRealm ().getName ());
103
+ builder .field (AuthenticateResponse .REALM_TYPE .getPreferredName (), response .getLookupRealm ().getType ());
104
+ builder .endObject ();
90
105
builder .endObject ();
91
106
}
92
107
93
108
private AuthenticateResponse copy (AuthenticateResponse response ) {
94
109
final User originalUser = response .getUser ();
95
110
final User copyUser = new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
96
111
originalUser .getFullName (), originalUser .getEmail ());
97
- return new AuthenticateResponse (copyUser , response .enabled ());
112
+ return new AuthenticateResponse (copyUser , response .enabled (), response .getAuthenticationRealm (),
113
+ response .getLookupRealm ());
98
114
}
99
115
100
116
private AuthenticateResponse mutate (AuthenticateResponse response ) {
101
117
final User originalUser = response .getUser ();
102
- switch (randomIntBetween (1 , 6 )) {
118
+ switch (randomIntBetween (1 , 8 )) {
103
119
case 1 :
104
120
return new AuthenticateResponse (new User (originalUser .getUsername () + "wrong" , originalUser .getRoles (),
105
- originalUser .getMetadata (), originalUser .getFullName (), originalUser .getEmail ()), response .enabled ());
121
+ originalUser .getMetadata (), originalUser .getFullName (), originalUser .getEmail ()), response .enabled (),
122
+ response .getAuthenticationRealm (), response .getLookupRealm ());
106
123
case 2 :
107
124
final Collection <String > wrongRoles = new ArrayList <>(originalUser .getRoles ());
108
125
wrongRoles .add (randomAlphaOfLengthBetween (1 , 4 ));
109
126
return new AuthenticateResponse (new User (originalUser .getUsername (), wrongRoles , originalUser .getMetadata (),
110
- originalUser .getFullName (), originalUser .getEmail ()), response .enabled ());
127
+ originalUser .getFullName (), originalUser .getEmail ()), response .enabled (), response .getAuthenticationRealm (),
128
+ response .getLookupRealm ());
111
129
case 3 :
112
130
final Map <String , Object > wrongMetadata = new HashMap <>(originalUser .getMetadata ());
113
131
wrongMetadata .put ("wrong_string" , randomAlphaOfLengthBetween (0 , 4 ));
114
132
return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), wrongMetadata ,
115
- originalUser .getFullName (), originalUser .getEmail ()), response .enabled ());
133
+ originalUser .getFullName (), originalUser .getEmail ()), response .enabled (), response .getAuthenticationRealm (),
134
+ response .getLookupRealm ());
116
135
case 4 :
117
136
return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
118
- originalUser .getFullName () + "wrong" , originalUser .getEmail ()), response .enabled ());
137
+ originalUser .getFullName () + "wrong" , originalUser .getEmail ()), response .enabled (),
138
+ response .getAuthenticationRealm (), response .getLookupRealm ());
119
139
case 5 :
120
140
return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
121
- originalUser .getFullName (), originalUser .getEmail () + "wrong" ), response .enabled ());
141
+ originalUser .getFullName (), originalUser .getEmail () + "wrong" ), response .enabled (),
142
+ response .getAuthenticationRealm (), response .getLookupRealm ());
122
143
case 6 :
123
144
return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
124
- originalUser .getFullName (), originalUser .getEmail ()), !response .enabled ());
145
+ originalUser .getFullName (), originalUser .getEmail ()), !response .enabled (), response .getAuthenticationRealm (),
146
+ response .getLookupRealm ());
147
+ case 7 :
148
+ return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
149
+ originalUser .getFullName (), originalUser .getEmail ()), response .enabled (), response .getAuthenticationRealm (),
150
+ new AuthenticateResponse .RealmInfo (randomAlphaOfLength (5 ), randomAlphaOfLength (5 )));
151
+ case 8 :
152
+ return new AuthenticateResponse (new User (originalUser .getUsername (), originalUser .getRoles (), originalUser .getMetadata (),
153
+ originalUser .getFullName (), originalUser .getEmail ()), response .enabled (),
154
+ new AuthenticateResponse .RealmInfo (randomAlphaOfLength (5 ), randomAlphaOfLength (5 )), response .getLookupRealm ());
125
155
}
126
156
throw new IllegalStateException ("Bad random number" );
127
157
}
0 commit comments