<html><body bgcolor="#FFFFFF"><div>Mike,</div><div><br></div><div>I use the ValidationGroup class to ensure that each validation attempt for each field still&nbsp;<span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.289062); -webkit-composition-fill-color: rgba(175, 192, 227, 0.222656); -webkit-composition-frame-color: rgba(77, 128, 180, 0.222656); ">fires even if the first one fails. Then I check if that list is empty and act accordingly. I pass error messages from the controller to the UI via a request attribute - so that the header tile of my app will list the error messages. I also access the error list at my body tile so I can highlight certain fields that are in error.</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.285156); -webkit-composition-fill-color: rgba(175, 192, 227, 0.21875); -webkit-composition-frame-color: rgba(77, 128, 180, 0.21875);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.289062); -webkit-composition-fill-color: rgba(175, 192, 227, 0.222656); -webkit-composition-frame-color: rgba(77, 128, 180, 0.222656); ">This is the "full lifecycle" of validation and I think ESAPI covers it well.<span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.28125); -webkit-composition-fill-color: rgba(175, 192, 227, 0.214844); -webkit-composition-frame-color: rgba(77, 128, 180, 0.214844); "></span></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.285156); -webkit-composition-fill-color: rgba(175, 192, 227, 0.21875); -webkit-composition-frame-color: rgba(77, 128, 180, 0.21875);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.28125); -webkit-composition-fill-color: rgba(175, 192, 227, 0.214844); -webkit-composition-frame-color: rgba(77, 128, 180, 0.214844);">Most validation errors are just honest user mistakes - missing a required field or adding a bad character that breaks a regex. &nbsp;</span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.277344); -webkit-composition-fill-color: rgba(175, 192, 227, 0.210938); -webkit-composition-frame-color: rgba(77, 128, 180, 0.210938);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.289062); -webkit-composition-fill-color: rgba(175, 192, 227, 0.222656); -webkit-composition-frame-color: rgba(77, 128, 180, 0.222656); "><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.28125); -webkit-composition-fill-color: rgba(175, 192, 227, 0.214844); -webkit-composition-frame-color: rgba(77, 128, 180, 0.214844); ">But for validation errors that are extrodinary - I just use the IntrusionDetector.</span></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.277344); -webkit-composition-fill-color: rgba(175, 192, 227, 0.210938); -webkit-composition-frame-color: rgba(77, 128, 180, 0.210938);"><br></span></div><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.289062); -webkit-composition-fill-color: rgba(175, 192, 227, 0.222656); -webkit-composition-frame-color: rgba(77, 128, 180, 0.222656); "><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.28125); -webkit-composition-fill-color: rgba(175, 192, 227, 0.214844); -webkit-composition-frame-color: rgba(77, 128, 180, 0.214844); ">Forgive me if I'm missing something sir. :) Can you explain to me just one more time were this proposal fits into the validation lifecycle?&nbsp;</span></span></div><div><br>Jim Manico</div><div><br>On Apr 26, 2010, at 7:56 AM, "Boberski, Michael [USA]" &lt;<a href="mailto:boberski_michael@bah.com">boberski_michael@bah.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div>

<div class="Section1">

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">… that triggers on failures, regardless of IntrusionDetector
use/configuration?<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">E.g., to wrap HTTP 500 error message generation, or e.g. to do a
lookup for some kind of context-specific error to display on a user form, and
hook this up to other ESAPI controls?<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">E.g.,<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:8.0pt;
font-family:&quot;Courier New&quot;;color:black">if( !validator.isValidXX() ) {<o:p></o:p></span></p>

<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:8.0pt;
font-family:&quot;Courier New&quot;;color:black">&nbsp;&nbsp;&nbsp; ESAPI.effect().rejectUserInput();
//maybe, generate an HTTP 500, cause a form error, ?<o:p></o:p></span></p>

<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:8.0pt;
font-family:&quot;Courier New&quot;;color:black">}<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">This would be towards the end of standardizing how e.g. user input
validation failures (ESAPI isWhatever failures and failures causing exceptions to
be thrown more generally) should be handled. I think by adding an interface to
ESAPI might help proactively answer (and promote the wrapping and
standardization of security-relevant behaviors inside of ESAPI) what is one of
the first questions dev teams ask me on how to use ESAPI. <o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">If I’m missing something obvious, please be kind, and
explain what the/a preferred approach <i>using ESAPI</i> is, to wrap and
standardize such things for an application, generally/according to best
practices.<o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">Best,</span><span style="font-size:12.0pt;color:black"><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Book Antiqua&quot;,&quot;serif&quot;;
color:black">Mike B.<o:p></o:p></span></p>

</div>




</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Esapi-user mailing list</span><br><span><a href="mailto:Esapi-user@lists.owasp.org">Esapi-user@lists.owasp.org</a></span><br><span><a href="https://lists.owasp.org/mailman/listinfo/esapi-user">https://lists.owasp.org/mailman/listinfo/esapi-user</a></span><br></div></blockquote></body></html>