package io.cattle.platform.iaas.api.filter.secret; import io.cattle.platform.core.constants.SecretConstants; import io.cattle.platform.core.model.Secret; import io.cattle.platform.iaas.api.filter.common.AbstractDefaultResourceManagerFilter; import io.github.ibuildthecloud.gdapi.exception.ValidationErrorException; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import io.github.ibuildthecloud.gdapi.request.resource.ResourceManager; import org.apache.commons.codec.binary.Base64; public class SecretValidationFilter extends AbstractDefaultResourceManagerFilter { @Override public Object create(String type, ApiRequest request, ResourceManager next) { Secret s = request.proxyRequestObject(Secret.class); if (!Base64.isBase64(s.getValue())) { throw new ValidationErrorException("InvalidBase64", "value", "Invalid base64 content"); }; Base64.decodeBase64(s.getValue()); return super.create(type, request, next); } @Override public String[] getTypes() { return new String[] { SecretConstants.TYPE }; } }