package io.cattle.platform.host.api; import io.cattle.platform.iaas.api.request.handler.ScriptsHandler; import io.cattle.platform.token.impl.RSAKeyProvider; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import java.io.IOException; import java.security.cert.Certificate; import javax.inject.Inject; import javax.servlet.http.HttpServletResponse; public class HostApiPublicCAScriptHandler implements ScriptsHandler { public static final String FILENAME = "ca.pem"; @Inject RSAKeyProvider rsaKeyProvider; @Override public boolean handle(ApiRequest request) throws IOException { String id = request.getId(); if (!FILENAME.equals(id)) { return false; } Certificate cert = rsaKeyProvider.getCACertificate(); byte[] content = rsaKeyProvider.toBytes(cert); HttpServletResponse response = request.getServletContext().getResponse(); response.setContentLength(content.length); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=" + FILENAME); response.setHeader("Cache-Control", "private"); response.setHeader("Pragma", "private"); response.setHeader("Expires", "Wed 24 Feb 1982 18:42:00 GMT"); response.getOutputStream().write(content); return true; } }