We now continue the menu processing pipeline even if the Menu parameter(s) is/are non-Full. When we get to the point of rendering the template, if there is no rendered early response and the Menu parameter is non-Full, we render the usual 404. If there is a value, we do the usual template processing. As such, everything except for template processing will run even if the request parameter could not be deserialized properly. Note that the request path will still need to match.
ThreadLocalRandom turns out not to be a secure RNG, so using it compromises our XSS and other protections for field names. This reverts commit f2de993.
…(44)` message to the actor
…ound to Scala regression SI-7612
This was previously implemented using "1", but it does the same thing - allows us to change things on the top level element on whatever NodeSeq the transform is applied to. So, "^ [href]" would target the href param of that element, for example.
…hanges to top-level attributes
Allows any class extending the Mailer trait to accept the same instances of From(), To(), Subject(), etc.
… added doco.