1010import io .jenkins .plugins .casc .ConfigurationContext ;
1111import io .jenkins .plugins .casc .ConfiguratorException ;
1212import io .jenkins .plugins .casc .RootElementConfigurator ;
13+ import io .jenkins .plugins .casc .SecretSourceResolver ;
1314import io .jenkins .plugins .casc .model .CNode ;
1415import io .jenkins .plugins .casc .model .Mapping ;
1516import io .jenkins .plugins .casc .model .Scalar ;
@@ -56,7 +57,10 @@ public String getDisplayName() {
5657 protected AdvisorGlobalConfiguration instance (Mapping mapping , ConfigurationContext configurationContext )
5758 throws ConfiguratorException {
5859 // Scalar values
59- final String email = (mapping .get (EMAIL_ATTR ) != null ? mapping .getScalarValue (EMAIL_ATTR ) : StringUtils .EMPTY );
60+ final String email = configurationContext
61+ .getSecretSourceResolver ()
62+ .resolve ((mapping .get (EMAIL_ATTR ) != null ? mapping .getScalarValue (EMAIL_ATTR ) : StringUtils .EMPTY ));
63+
6064 final boolean nagDisabled = (mapping .get (NAG_DISABLED_ATTR ) != null
6165 && BooleanUtils .toBoolean (mapping .getScalarValue (NAG_DISABLED_ATTR )));
6266 final boolean acceptToS = (mapping .get (ACCEPT_TOS_ATTR ) != null
@@ -69,7 +73,9 @@ protected AdvisorGlobalConfiguration instance(Mapping mapping, ConfigurationCont
6973 if (ccCN instanceof Sequence ) {
7074 Sequence s = (Sequence ) ccCN ;
7175 for (CNode cNode : s ) {
72- cc .add (new Recipient (cNode .asScalar ().getValue ()));
76+ cc .add (new Recipient (configurationContext
77+ .getSecretSourceResolver ()
78+ .resolve (cNode .asScalar ().getValue ())));
7379 }
7480 // We don't want to process it anymore because the mapping in YAML
7581 // doesn't map the objects model (List<String> vs List<Recipient>
@@ -151,13 +157,15 @@ public CNode describe(AdvisorGlobalConfiguration instance, ConfigurationContext
151157 mapping .put (ACCEPT_TOS_ATTR , attribute .describe (instance , context ));
152158 break ;
153159 case EMAIL_ATTR :
154- mapping .put (EMAIL_ATTR , attribute .describe (instance , context ));
160+ mapping .put (EMAIL_ATTR , String . valueOf ( attribute .describe (instance , context ) ));
155161 break ;
156162 case CCS_ATTR :
157163 // We build it manually because we don't want to expose the Bean model
164+ SecretSourceResolver r = context .getSecretSourceResolver ();
158165 Sequence ccs = new Sequence ();
159166 instance .getCcs ().stream ()
160167 .map (Recipient ::getEmail )
168+ .map (r ::encode )
161169 .map (Scalar ::new )
162170 .forEach (ccs ::add );
163171 if (!ccs .isEmpty ()) {
0 commit comments