package org.apereo.cas.util.cipher; import org.apereo.cas.CipherExecutor; import org.apereo.cas.util.EncodingUtils; import java.io.Serializable; import java.nio.charset.StandardCharsets; /** * A cipher executor that does compression/base64. * * @author Misagh Moayyed * @since 5.1 */ public class Base64CipherExecutor extends AbstractCipherExecutor<Serializable, String> { private static CipherExecutor<Serializable, String> INSTANCE; protected Base64CipherExecutor() { } /** * Gets instance. * * @return the instance */ public static CipherExecutor<Serializable, String> getInstance() { if (INSTANCE == null) { INSTANCE = new Base64CipherExecutor(); } return INSTANCE; } @Override public String encode(final Serializable value) { return EncodingUtils.encodeBase64(value.toString().getBytes(StandardCharsets.UTF_8)); } @Override public String decode(final Serializable value) { final byte[] decoded = EncodingUtils.decodeBase64(value.toString()); return new String(decoded, StandardCharsets.UTF_8); } @Override public String getName() { return null; } }