@GET
@Path("sshkey")
@Produces({ TEXT_PLAIN })
public String getSshPublicKey() throws RepositoryException, OpsException, IOException {
final ServiceProvider serviceProvider = getServiceProvider();
if (serviceProvider == null) {
raiseNotFound();
}
OpsContextBuilder opsContextBuilder = opsContextBuilderFactory.get();
final OpsContext opsContext = opsContextBuilder.buildTemporaryOpsContext(serviceProvider.getServiceType(),
getProjectAuthorization());
PublicKey publicKey = OpsContext.runInContext(opsContext, new CheckedCallable<PublicKey, Exception>() {
@Override
public PublicKey call() throws Exception {
PublicKey publicKey = serviceProvider.getSshPublicKey();
return publicKey;
}
});
if (publicKey == null) {
throw new WebApplicationException(404);
}
String description = "platformlayer://" + getProject().getKey() + "/"
+ serviceProvider.getServiceType().getKey();
return OpenSshUtils.serialize(publicKey, description);
}