From dd54c4db7ffd5458ba4aca7a96f7488a2fb909d5 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 30 Apr 2018 15:42:39 +0200 Subject: [PATCH] OO-3415: cut long uri (longer than 1024 characters) --- .../services/csp/manager/CSPManagerImpl.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/core/commons/services/csp/manager/CSPManagerImpl.java b/src/main/java/org/olat/core/commons/services/csp/manager/CSPManagerImpl.java index 8110a539833..592c710cab0 100644 --- a/src/main/java/org/olat/core/commons/services/csp/manager/CSPManagerImpl.java +++ b/src/main/java/org/olat/core/commons/services/csp/manager/CSPManagerImpl.java @@ -49,22 +49,22 @@ public class CSPManagerImpl implements CSPManager { public CSPLog log(CSPReport report, Identity identity) { CSPLogImpl log = new CSPLogImpl(); log.setCreationDate(new Date()); - log.setBlockedUri(report.getBlockedUri()); + log.setBlockedUri(cut(report.getBlockedUri(), 1024)); if(StringHelper.isLong(report.getColumnNumber())) { log.setColumnNumber(Long.parseLong(report.getColumnNumber())); } log.setDisposition(report.getDisposition()); - log.setDocumentUri(report.getDocumentUri()); + log.setDocumentUri(cut(report.getDocumentUri(), 1024)); log.setEffectiveDirective(report.getEffectiveDirective()); if(StringHelper.isLong(report.getLineNumber())) { log.setLineNumber(Long.parseLong(report.getLineNumber())); } log.setOriginalPolicy(report.getOriginalPolicy()); - log.setReferrer(report.getReferrer()); + log.setReferrer(cut(report.getReferrer(), 1024)); log.setScriptSample(report.getScriptSample()); - log.setSourceFile(report.getSourceFile()); - log.setStatusCode(report.getStatusCode()); - log.setViolatedDirective(report.getViolatedDirective()); + log.setSourceFile(cut(report.getSourceFile(), 1024)); + log.setStatusCode(cut(report.getStatusCode(), 1024)); + log.setViolatedDirective(cut(report.getViolatedDirective(), 1024)); if(identity != null) { log.setIdentityKey(identity.getKey()); } @@ -72,6 +72,13 @@ public class CSPManagerImpl implements CSPManager { dbInstance.getCurrentEntityManager().persist(log); return log; } + + private String cut(String value, int length) { + if(StringHelper.containsNonWhitespace(value) && value.length() > length) { + value = value.substring(0, length - 10); + } + return value; + } @Override public int countLog() { -- GitLab