2016-11-23 21 views
0

Es gibt verschiedene Orte APPScan wirft Validation.required Fehler in meinem Code, wo ich ein Objekt einstellen. Nun Objekt wird auf zwei Arten eingestellt:Validieren Sie ein Objekt

A)

ExceptionBldr excepBuilder = (ExceptionBldr) session.getAttribute(SN_EXCEPBLDR); 

das ich zu lösen habe, indem einfach eine NULL-Prüfung für das Objekt zu tun Ich bin von Sitzung zu bekommen.

B)

PageManager pm; 
    HttpServletRequest request = modelContext.getHttpServletRequest(); 
    ResourceBundle resourceBundle = documentContext.getResourceBundle(); 
    if (request.getAttribute("PageManager") == null) { 
     pm = new PageManager(modelContext, documentContext); 
     String title = resourceBundle.getString("Workbench.title"); 
     if (title == null) 
      title = ""; 
     pm.setPageTitle(title + " " + getInstance(request));    
     pm.setInstanceName(getInstance(modelContext.getHttpServletRequest())); 
     pm.setListingName(getListingName()); 
     request.setAttribute("PageManager", pm); 

ich eine NULL-Prüfung für die ganze Argument tun und dann eine Nullprüfung für das gesamte Objekt tun es, bevor Sie (I donno, ob das Problem behoben wird) aber gibt es eine bessere Art, es zu tun? Ich möchte eine generische Klasse für alle diese Instanzen schreiben.

Teil Idee:

a) überprüfen, ob das Objekt eine gültige Klasse gehört.

b) Holen Sie sich die Methoden der Klasse und iterieren.

Aber wie überprüfe ich die Argumente, die ich einstelle?

Jede andere Art von Vorschlag ist ebenfalls willkommen.

+0

Was möchten Sie tun, wenn null ist? auf leere Zeichenfolge gesetzt? – developer

+0

Wird elegant sein, wenn Sie vollständige Probe oder so zur Verfügung stellen können, um Ihnen besser zu helfen. – varra

+0

Vielleicht möchten Sie diesen Post lesen: [Vermeiden! = Null-Anweisungen] (http://StackOverflow.com/Q/271526/2815219) –

Antwort

0

Anstatt (oder zusätzlich) eine Null-Überprüfung durchzuführen, besteht das Hauptziel der Validierung von Validatoin.erquired find in der Validierung gegen böswillige Eingaben. Checken Sie Ihren Code ein, wenn eine Variable auf einen Wert gesetzt werden kann, der von einem böswilligen Benutzer kontrolliert werden kann. Jede Eingabe von außerhalb Ihres Systems sollte mit einem weißen Eintrag validiert werden: https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet#White_List_Input_Validation