public String get(MultivaluedMap<String, String> headers) { final Map<String, Object> model = ImmutableMap.<String, Object>builder() .put("title", "Graylog Web Interface") .put("cssFiles", cssFiles) .put("jsFiles", sortedJsFiles) .put("appPrefix", RestTools.buildExternalUri(headers, httpConfiguration.getHttpExternalUri())) .build(); return templateEngine.transform(template, model); } }
@GET @Produces(MediaType.TEXT_HTML) @Path("index.html") public String index(@Context HttpHeaders httpHeaders) throws IOException { final URL templateUrl = this.getClass().getResource("/swagger/index.html.template"); final String template = Resources.toString(templateUrl, StandardCharsets.UTF_8); final Map<String, Object> model = ImmutableMap.of( "baseUri", RestTools.buildExternalUri(httpHeaders.getRequestHeaders(), httpConfiguration.getHttpExternalUri()).resolve(HttpConfiguration.PATH_API).toString()); return templateEngine.transform(template, model); }
@Override public String generate(Request request, int status, String reasonPhrase, String description, Throwable exception) { final ImmutableMap.Builder<String, Object> modelBuilder = ImmutableMap.builder(); modelBuilder.put("reason", StringEscapeUtils.escapeHtml4(reasonPhrase)); if (description != null) { modelBuilder.put("description", StringEscapeUtils.escapeHtml4(description)); } if (exception != null) { String stacktrace = ""; try (final StringWriter stringWriter = new StringWriter(); final PrintWriter printWriter = new PrintWriter(stringWriter)) { exception.printStackTrace(printWriter); printWriter.flush(); stringWriter.flush(); stacktrace = stringWriter.toString(); } catch (IOException ignored) { // Ignore } modelBuilder .put("exception", StringEscapeUtils.escapeHtml4(exception.getMessage())) .put("stacktrace", StringEscapeUtils.escapeHtml4(stacktrace)); } return engine.transform(template, modelBuilder.build()); } }
@GET @Produces(MoreMediaTypes.APPLICATION_JAVASCRIPT) public String get(@Context HttpHeaders headers) { final URL templateUrl = this.getClass().getResource("/web-interface/config.js.template"); final String template; try { template = Resources.toString(templateUrl, StandardCharsets.UTF_8); } catch (IOException e) { throw new RuntimeException("Unable to read AppConfig template while generating web interface configuration: ", e); } final URI baseUri = RestTools.buildExternalUri(headers.getRequestHeaders(), httpConfiguration.getHttpExternalUri()); final Map<String, Object> model = ImmutableMap.of( "rootTimeZone", configuration.getRootTimeZone(), "serverUri", baseUri.resolve(HttpConfiguration.PATH_API), "appPathPrefix", baseUri.getPath()); return templateEngine.transform(template, model); } }
@VisibleForTesting String buildBody(Stream stream, AlertCondition.CheckResult checkResult, List<Message> backlog) { final String template; if (pluginConfig == null || pluginConfig.getString("body") == null) { template = bodyTemplate; } else { template = pluginConfig.getString("body"); } Map<String, Object> model = getModel(stream, checkResult, backlog); return this.templateEngine.transform(template, model); }
@VisibleForTesting String buildSubject(Stream stream, AlertCondition.CheckResult checkResult, List<Message> backlog) { final String template; if (pluginConfig == null || pluginConfig.getString("subject") == null) { template = "Graylog alert for stream: ${stream.title}: ${check_result.resultDescription}"; } else { template = pluginConfig.getString("subject"); } Map<String, Object> model = getModel(stream, checkResult, backlog); return templateEngine.transform(template, model); }
final String urlString = templateEngine.transform(config.url(), ImmutableMap.of("key", encodedKey)); final HttpUrl url = HttpUrl.parse(urlString);
@Override public String render(Node node, Locale locale) { HashMap<String, Object> model = new HashMap<>(); model.put("node", node); return engine.transform(template, model); } }
@GET @Produces(MediaType.TEXT_HTML) @Path("index.html") public String index() throws IOException { final URL templateUrl = this.getClass().getResource("/swagger/index.html.template"); final String template = Resources.toString(templateUrl, StandardCharsets.UTF_8); final Map<String, Object> model = ImmutableMap.of("apiPrefix", apiPrefix); return templateEngine.transform(template, model); }
/** * Load a template, expand the variables in it. * * @param tmplFile * file, relative to TMPLDIR. * @param model * A string to object mapping for expanding variables. * @return template with expanded variables. */ public static String transform(String tmplFile, HashMap<String, Object> model) { String tmpl = getTemplate(TMPLDIR + tmplFile); return engine.transform(tmpl, model); }
private String buildCustomMessage(Stream stream, Message msg, String template) { Map<String, Object> model = getModel(stream, msg); try { return templateEngine.transform(template, model); } catch (Exception ex) { return ex.toString(); } }
@Inject public IndexHtmlGenerator(PluginAssets pluginAssets, Configuration configuration, Engine templateEngine) throws IOException { final URL templateUrl = this.getClass().getResource("/web-interface/index.html.template"); final String template = Resources.toString(templateUrl, StandardCharsets.UTF_8); final Map<String, Object> model = ImmutableMap.<String, Object>builder() .put("title", title) .put("cssFiles", pluginAssets.cssFiles()) .put("jsFiles", pluginAssets.sortedJsFiles()) .put("appPrefix", configuration.getWebPrefix()) .build(); this.content = requireNonNull(templateEngine, "templateEngine").transform(template, model); }
private String buildCustomMessage(Stream stream, AlertCondition.CheckResult result, String template) { List<Message> backlog = getAlarmBacklog(result); Map<String, Object> model = getModel(stream, result, backlog); try { return templateEngine.transform(template, model); } catch (Exception ex) { return ex.toString(); } }
@Override public String format(Locale locale) { final ResourceBundle messages = ResourceBundle.getBundle(baseName, locale); final String frameTemplate = getTemplate(messages, frameCode, "${prefix} ${location}: ${message}"); final String prefixTemplate = getTemplate(messages, prefixCode, ""); final String locationTemplate = getTemplate(messages, locationCode, ""); final String messageTemplate = getTemplate(messages, messageCode, ""); Engine engine = new Engine(); engine.setErrorHandler(new InternalErrorHandler()); argumentModel.put("prefix", engine.transform(prefixTemplate, argumentModel)); argumentModel.put("location", engine.transform(locationTemplate, argumentModel)); argumentModel.put("message", engine.transform(messageTemplate, argumentModel)); String transformed = engine.transform(frameTemplate, argumentModel); return transformed; }
@Override public String format(Locale locale) { final ResourceBundle messages = ResourceBundle.getBundle(baseName, locale); final String frameTemplate = getTemplate(messages, frameCode, "${prefix} ${location}: ${message}"); final String prefixTemplate = getTemplate(messages, prefixCode, ""); final String locationTemplate = getTemplate(messages, locationCode, ""); final String messageTemplate = getTemplate(messages, messageCode, ""); Engine engine = new Engine(); engine.setErrorHandler(new InternalErrorHandler()); argumentModel.put("prefix", engine.transform(prefixTemplate, argumentModel)); argumentModel.put("location", engine.transform(locationTemplate, argumentModel)); argumentModel.put("message", engine.transform(messageTemplate, argumentModel)); String transformed = engine.transform(frameTemplate, argumentModel); return transformed; }
@VisibleForTesting String buildBody(Stream stream, AlertCondition.CheckResult checkResult, List<Message> backlog) { final String template; if (pluginConfig == null || pluginConfig.getString("body") == null) { template = bodyTemplate; } else { template = pluginConfig.getString("body"); } Map<String, Object> model = getModel(stream, checkResult, backlog); return this.templateEngine.transform(template, model); }
@VisibleForTesting String buildSubject(Stream stream, AlertCondition.CheckResult checkResult, List<Message> backlog) { final String template; if (pluginConfig == null || pluginConfig.getString("subject") == null) { template = "Graylog alert for stream: ${stream.title}: ${check_result.resultDescription}"; } else { template = pluginConfig.getString("subject"); } Map<String, Object> model = getModel(stream, checkResult, backlog); return templateEngine.transform(template, model); }
/** * {@inheritDoc} * * @see org.audit4j.core.layout.Layout#format(org.audit4j.core.dto.AuditEvent) */ @Override public String format(AuditEvent event) { Map<String, Object> model = new HashMap<String, Object>(); model.put("eventDate", event.getTimestamp()); model.put("uuid", event.getUuid()); model.put("action", event.getAction()); model.put("origin", event.getOrigin()); model.put("actor", event.getActor()); model.put("fields", event.getFields()); return engine.transform(template, model); }
@Override public String formatPlain(Locale locale) { final ResourceBundle messages = ResourceBundle.getBundle(baseName, locale); final String messageTemplate = getTemplate(messages, messageCode, ""); Engine engine = new Engine(); engine.setErrorHandler(new InternalErrorHandler()); String transformed = engine.transform(messageTemplate, argumentModel); return transformed; } }
@Override public String formatPlain(Locale locale) { final ResourceBundle messages = ResourceBundle.getBundle(baseName, locale); final String messageTemplate = getTemplate(messages, messageCode, ""); Engine engine = new Engine(); engine.setErrorHandler(new InternalErrorHandler()); String transformed = engine.transform(messageTemplate, argumentModel); return transformed; } }