Browse Source

Merge remote-tracking branch 'origin/master'

Jason Rivard 7 years ago
parent
commit
480a7728fc

+ 1 - 0
.gitignore

@@ -7,3 +7,4 @@
 pwm-parent.iml
 pwmconfig/
 ssprconfig/
+/server/src/main/webapp/public/resources/webjars

+ 1 - 1
client/package.json

@@ -13,7 +13,7 @@
     "test": "karma start --NODE_ENV=test",
     "test-single-run": "karma start --NODE_ENV=test --singleRun --no-auto-watch",
     "start": "webpack-dev-server --config=webpack.dev.js --NODE_ENV=dev --colors",
-    "sync": "webpack --config=webpack.build.js --NODE_ENV=production --output-path=../webapp/public/resources/app --watch --colors"
+    "sync": "webpack --config=webpack.build.js --NODE_ENV=production --output-path=../server/src/main/webapp/public/resources/webjars/pwm-client --watch --colors"
   },
   "author": "",
   "license": "ISC",

+ 6 - 0
server/src/main/java/password/pwm/http/servlet/resource/ResourceFileServlet.java

@@ -552,6 +552,12 @@ public class ResourceFileServlet extends HttpServlet implements PwmServlet {
             throws PwmUnrecoverableException
     {
         if (resourcePathUri.startsWith(WEBJAR_BASE_URL_PATH)) {
+            // This allows us to override a webjar file, if needed.  Mostly helpful during development.
+            final File file = new File(servletContext.getRealPath(resourcePathUri));
+            if (file.exists()) {
+                return new RealFileResource(file);
+            }
+
             final String remainingPath = resourcePathUri.substring(WEBJAR_BASE_URL_PATH.length(), resourcePathUri.length());
 
             final String webJarName;

+ 15 - 0
server/src/main/webapp/WEB-INF/jsp/fragment/form.jsp

@@ -15,6 +15,7 @@
 <%@ page import="password.pwm.http.PwmRequestAttribute" %>
 <%@ page import="java.util.Collections" %>
 <%@ page import="password.pwm.config.CustomLinkConfiguration" %>
+<%@ page import="org.apache.commons.lang3.StringEscapeUtils" %>
 
 <%--
   ~ Password Management Servlets (PWM)
@@ -141,6 +142,20 @@
         </script>
     </pwm:script>
     <% } %>
+    <% if (loopConfiguration.getRegexError(formLocale) != null && loopConfiguration.getRegexError(formLocale).length() > 0) { %>
+    <pwm:script>
+        <script type="text/javascript">
+            PWM_GLOBAL['startupFunctions'].push(function(){
+                PWM_MAIN.addEventHandler('<%=loopConfiguration.getName()%>', 'input', function (event) {
+                    event.target.setCustomValidity("");
+                });
+                PWM_MAIN.addEventHandler('<%=loopConfiguration.getName()%>', 'invalid', function (event) {
+                    event.target.setCustomValidity('<%=StringEscapeUtils.escapeEcmaScript(loopConfiguration.getRegexError(formLocale))%>');
+                });
+            });
+        </script>
+    </pwm:script>
+    <% } %>
     <pwm:script>
         <script type="text/javascript">
             PWM_GLOBAL['startupFunctions'].push(function(){