diff --git a/src/main/java/com/cloudbees/plugins/credentials/impl/UsernamePasswordCredentialsSnapshotTaker.java b/src/main/java/com/cloudbees/plugins/credentials/impl/UsernamePasswordCredentialsSnapshotTaker.java new file mode 100644 index 000000000..d429ff916 --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/impl/UsernamePasswordCredentialsSnapshotTaker.java @@ -0,0 +1,32 @@ +package com.cloudbees.plugins.credentials.impl; + +import com.cloudbees.plugins.credentials.CredentialsSnapshotTaker; +import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials; + +import hudson.Extension; +import hudson.util.Secret; + +@Extension +public class UsernamePasswordCredentialsSnapshotTaker extends CredentialsSnapshotTaker { + + /** + * {@inheritDoc} + */ + @Override + public Class type() { + return StandardUsernamePasswordCredentials.class; + } + + /** + * {@inheritDoc} + */ + @Override + public StandardUsernamePasswordCredentials snapshot(StandardUsernamePasswordCredentials credentials) { + if (credentials instanceof UsernamePasswordCredentialsImpl) { + return credentials; + } + UsernamePasswordCredentialsImpl snapshot = new UsernamePasswordCredentialsImpl(credentials.getScope(), credentials.getId(), credentials.getDescription(), credentials.getUsername(), Secret.toString(credentials.getPassword())); + snapshot.setUsernameSecret(credentials.isUsernameSecret()); + return snapshot; + } +} \ No newline at end of file