J'ai suivi le fichier esapi4java-core-2.0-install-guide.pdf pour Eclipse et je l'ai appliqué dans un environnement Websphere 7.5.'esapi' n'est pas défini dans Websphere 7
Étape 1 - J'ai ajouté le fichier esapi.jar dans les bibliothèques (Projet> Propriétés> Chemin de compilation Java> onglet Bibliothèques> Ajouter des fichiers JAR externes). Étape 2 - J'ai localisé les fichiers de validation .properties dans un dossier sur ma machine. Étape 3 - J'ai choisi d'ajouter esapi pour toutes les configurations d'exécution (Windows> Préférences> Java> JRE installés). J'ai sélectionné WebSphere Application Server v7.0 JRE, sélectionné "Modifier" et ajouté esapi.jar à cette liste de bibliothèques. Sur ce même formulaire, j'ai ajouté l'argument -Dorg.owasp.esapi.resources = "/ path/to/.esapi" à l'invite Default VM Arguments, le chemin d'accès à mes fichiers de validation .properties & esapi.
Voici le code sur la page JSP qui échoue:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ page import="java.net.*" %>
<script type="text/javascript" language="javascript">
function validateForm()
{
var userURL = "http://www.google.com";
var isValidURL = ESAPI.validator().isValidInput("URLContext", userURL, "URL", 255, false);
if (isValidURL) {
alert("true");
} else {
alert("false");
}
}
</script>
Lors de l'exécution de ce morceau de code, je reçois l'erreur: 'ESAPI' est pas défini (ce qui se passe sur l'instruction var isValidURL).
Qu'est-ce qui me manque?
J'ai ajouté la déclaration d'importation - merci - mais j'obtiens toujours la même erreur. Parce que les instructions d'installation ne sont pas claires (à propos de JRE pour assigner les arguments VM, dont j'ai arbitrairement à WebSphere Application Server v7.0 JRE), j'ai également essayé de définir l'argument VM générique dans Admin Console> Serveurs d'applications> (mon serveur)> Java et la gestion des processus> Définition de processus> Java Virtual Machine. Cela aussi n'a fait aucune différence. J'ai essayé d'ajouter systemproperties dans le fichier server.xml pour pointer sur les deux fichiers .properties - ne fonctionnant toujours pas. Des idées? – Mark
Obtenez-vous une trace de pile ou une erreur de navigateur? Si c'est une trace de pile, ajoutez-la à la question. Si c'est à partir du navigateur, modifiez votre affectation à 'isValidURL' – avgvstvs
avgvstvs - vos corrections ont répondu à mon problème signalé - merci. Maintenant j'ai un nouveau problème. ESAPI.properties est trouvé, mais je reçois l'exception "Uncaught" créée dans l'une des méthodes de service du servlet/WEB-INF/tiles-components/frm/main.jsp dans l'application (myapp) EAR. Exception créée: com.ibm.websphere.servlet.error.ServletErrorReport: java.lang.NoClassDefFoundError: org.apache.commons.fileupload.ProgressListener "J'ai téléchargé et ajouté org.apache.commons.fileupload.jar aux dépendances de mon EAR – Mark