package com.cloudbees.plugins.credentials.impl; import com.cloudbees.plugins.credentials.BaseCredentials; import com.cloudbees.plugins.credentials.CredentialsResolver; import com.cloudbees.plugins.credentials.CredentialsScope; import com.cloudbees.plugins.credentials.ResolveWith; import com.cloudbees.plugins.credentials.common.UsernamePasswordCredentials; import edu.umd.cs.findbugs.annotations.NonNull; import hudson.util.Secret; import org.kohsuke.stapler.DataBoundConstructor; /** * @author stephenc * @since 02/08/2013 12:54 */ @ResolveWith(DummyLegacyCredentials.ResolverImpl.class) public class DummyLegacyCredentials extends BaseCredentials implements UsernamePasswordCredentials { private final String username; private final Secret password; @DataBoundConstructor public DummyLegacyCredentials(CredentialsScope scope, String username, String password) { super(scope); this.username = username; this.password = Secret.fromString(password); } public String getUsername() { return username; } @NonNull public Secret getPassword() { return password; } private Object readResolve() { return new DummyCredentials(getScope(), username, password.getEncryptedValue()); } public static class ResolverImpl extends CredentialsResolver<UsernamePasswordCredentials, DummyLegacyCredentials> { public ResolverImpl() { super(UsernamePasswordCredentials.class); } @NonNull @Override protected DummyLegacyCredentials doResolve(@NonNull UsernamePasswordCredentials original) { return new DummyLegacyCredentials(original.getScope(), original.getUsername(), original.getPassword().getEncryptedValue()); } } }