25
25
import org .wso2 .carbon .identity .api .server .idp .v1 .model .AuthenticationType ;
26
26
import org .wso2 .carbon .identity .api .server .idp .v1 .model .Endpoint ;
27
27
import org .wso2 .carbon .identity .api .server .idp .v1 .model .FederatedAuthenticator ;
28
+ import org .wso2 .carbon .identity .api .server .idp .v1 .model .FederatedAuthenticatorListItem ;
28
29
import org .wso2 .carbon .identity .api .server .idp .v1 .model .FederatedAuthenticatorPUTRequest ;
29
30
import org .wso2 .carbon .identity .application .common .ApplicationAuthenticatorService ;
30
31
import org .wso2 .carbon .identity .application .common .model .FederatedAuthenticatorConfig ;
38
39
import org .wso2 .carbon .idp .mgt .IdentityProviderManagementServerException ;
39
40
40
41
import java .nio .charset .StandardCharsets ;
42
+ import java .util .ArrayList ;
41
43
import java .util .Arrays ;
42
44
import java .util .Base64 ;
43
45
import java .util .List ;
@@ -118,17 +120,10 @@ public static FederatedAuthenticator build(FederatedAuthenticatorConfig config)
118
120
119
121
federatedAuthenticator .setName (config .getName ());
120
122
federatedAuthenticator .setIsEnabled (config .isEnabled ());
121
-
122
- FederatedAuthenticatorConfig federatedAuthenticatorConfig =
123
- ApplicationAuthenticatorService .getInstance ().getFederatedAuthenticatorByName (
124
- config .getName ());
125
- if (federatedAuthenticatorConfig != null ) {
126
- String [] tags = federatedAuthenticatorConfig .getTags ();
127
- if (ArrayUtils .isNotEmpty (tags )) {
128
- federatedAuthenticator .setTags (Arrays .asList (tags ));
129
- }
123
+ String [] tags = resolveAuthenticatorTags (config );
124
+ if (ArrayUtils .isNotEmpty (tags )) {
125
+ federatedAuthenticator .setTags (Arrays .asList (tags ));
130
126
}
131
-
132
127
if (DefinedByType .SYSTEM == config .getDefinedByType ()) {
133
128
federatedAuthenticator .setDefinedBy (FederatedAuthenticator .DefinedByEnum .SYSTEM );
134
129
List <org .wso2 .carbon .identity .api .server .idp .v1 .model .Property > properties =
@@ -141,6 +136,32 @@ public static FederatedAuthenticator build(FederatedAuthenticatorConfig config)
141
136
142
137
return federatedAuthenticator ;
143
138
}
139
+
140
+ /**
141
+ * Builds a list of FederatedAuthenticatorListItem instances based on the given array of
142
+ * FederatedAuthenticatorConfig.
143
+ *
144
+ * @param fedAuthConfigs Array of FederatedAuthenticatorConfig instances.
145
+ * @return List of FederatedAuthenticatorListItem instances.
146
+ */
147
+ public static List <FederatedAuthenticatorListItem > build (FederatedAuthenticatorConfig [] fedAuthConfigs ) {
148
+
149
+ List <FederatedAuthenticatorListItem > authenticators = new ArrayList <>();
150
+ for (FederatedAuthenticatorConfig config : fedAuthConfigs ) {
151
+ FederatedAuthenticatorListItem authenticatorListItem = new FederatedAuthenticatorListItem ();
152
+ authenticatorListItem .setName (config .getName ());
153
+ authenticatorListItem .setIsEnabled (config .isEnabled ());
154
+ authenticatorListItem .definedBy (FederatedAuthenticatorListItem .DefinedByEnum .valueOf (
155
+ config .getDefinedByType ().toString ()));
156
+ String [] tags = resolveAuthenticatorTags (config );
157
+ if (ArrayUtils .isNotEmpty (tags )) {
158
+ authenticatorListItem .setTags (Arrays .asList (tags ));
159
+ }
160
+ authenticators .add (authenticatorListItem );
161
+ }
162
+
163
+ return authenticators ;
164
+ }
144
165
145
166
private static FederatedAuthenticatorConfig createFederatedAuthenticatorConfig (Config config )
146
167
throws IdentityProviderManagementClientException {
@@ -435,6 +456,20 @@ private static void resolveEndpointConfiguration(FederatedAuthenticator authenti
435
456
}
436
457
}
437
458
459
+ private static String [] resolveAuthenticatorTags (FederatedAuthenticatorConfig config ) {
460
+
461
+ if (DefinedByType .USER == config .getDefinedByType ()) {
462
+ return config .getTags ();
463
+
464
+ }
465
+ FederatedAuthenticatorConfig federatedAuthenticatorConfig =
466
+ ApplicationAuthenticatorService .getInstance ().getFederatedAuthenticatorByName (config .getName ());
467
+ if (federatedAuthenticatorConfig != null ) {
468
+ return federatedAuthenticatorConfig .getTags ();
469
+ }
470
+ return new String [0 ];
471
+ }
472
+
438
473
/**
439
474
* Config class to build FederatedAuthenticatorConfig.
440
475
*/
0 commit comments