Skip to content

Commit 006092b

Browse files
lav023Lav Mishra
andauthored
Adding support for un-exploded deployments (#99)
Co-authored-by: Lav Mishra <[email protected]>
1 parent 3d95ca8 commit 006092b

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

csrfguard/src/main/java/org/owasp/csrfguard/CsrfGuardServletContextListener.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,14 @@ public void contextDestroyed(final ServletContextEvent event) {
142142

143143
private InputStream getResourceStream(final String resourceName, final ServletContext context, final boolean failIfNotFound) throws IOException {
144144
InputStream inputStream;
145+
146+
/* In case of Unexplored war, read file from the context path */
147+
inputStream = context.getResourceAsStream(resourceName);
145148

146149
/* try classpath */
147-
inputStream = getClass().getClassLoader().getResourceAsStream(resourceName);
150+
if (inputStream == null) {
151+
inputStream = getClass().getClassLoader().getResourceAsStream(resourceName);
152+
}
148153

149154
/* try web context */
150155
if (inputStream == null) {

csrfguard/src/main/java/org/owasp/csrfguard/config/PropertiesConfigurationProvider.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@
4646
import org.slf4j.LoggerFactory;
4747

4848
import javax.servlet.ServletConfig;
49+
4950
import java.io.IOException;
51+
import java.io.InputStream;
52+
import java.net.MalformedURLException;
5053
import java.security.*;
5154
import java.time.Duration;
5255
import java.util.*;
@@ -563,13 +566,28 @@ private void javascriptInitParamsIfNeeded() {
563566
} else if (servletConfig.getServletContext().getRealPath(this.javascriptSourceFile) != null) {
564567
this.javascriptTemplateCode = CsrfGuardUtils.readFileContent(servletConfig.getServletContext().getRealPath(this.javascriptSourceFile));
565568
} else {
566-
throw new IllegalStateException("getRealPath failed for file " + this.javascriptSourceFile);
569+
try( final InputStream inputStream = getResourceStream(this.javascriptSourceFile, servletConfig)){
570+
this.javascriptTemplateCode = CsrfGuardUtils.readInputStreamContent(inputStream);
571+
} catch (final Exception e) {
572+
throw new IllegalStateException("getRealPath failed for file " + this.javascriptSourceFile);
573+
}
567574
}
568575

569576
this.javascriptParamsInitialized = true;
570577
}
571578
}
572579
}
580+
581+
private InputStream getResourceStream(final String resourcePath, final ServletConfig servletConfig) throws MalformedURLException {
582+
InputStream inputStream = null;
583+
584+
if(servletConfig.getServletContext().getResource("/" + this.javascriptSourceFile) != null) {
585+
inputStream = servletConfig.getServletContext().getResourceAsStream("/" + this.javascriptSourceFile);
586+
}
587+
588+
return inputStream;
589+
}
590+
573591

574592
private <T> T getProperty(final JsConfigParameter<T> jsConfigParameter, final ServletConfig servletConfig) {
575593
return jsConfigParameter.getProperty(servletConfig, this.propertiesCache);

csrfguard/src/main/java/org/owasp/csrfguard/util/CsrfGuardUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public static String normalizeResourceURI(final String resourceURI) {
138138
return resourceURI.startsWith("/") ? resourceURI : '/' + resourceURI;
139139
}
140140

141-
private static String readInputStreamContent(final InputStream inputStream) {
141+
public static String readInputStreamContent(final InputStream inputStream) {
142142
try {
143143
return IOUtils.toString(inputStream, Charset.defaultCharset());
144144
} catch (final IOException ioe) {

0 commit comments

Comments
 (0)