Bonjour,
En injectant des données incorrectes dans le viewState de notre application à l'aide d'un logiciel d'altération de données (TamperData), le mécanisme de filtre de l'application plante (NullPointerE), ce qui n'est pas un problème en soit.
Suite à cela, les erreurs générées dans le code ne sont plus prises en compte et l'application n'affiche plus les pages d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 springSecurityFilterChain.doFilter(httpRequest, httpResponse, chain); -->> NPE
Le problème est que l'utilisateur se voit présenté la stack-trace de l'erreur Java (ici un NPE), et nous ne voulons pas qu'il y ait accès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10<error-page> <error-code>500</error-code> <location>/error.xhtml</location> </error-page> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error.xhtml</location> </error-page>
En faisant un try/catch sur l'erreur on n'a bien sur plus la stack-trace d'affichée, mais je recherche une solution plus élégante, à savoir renvoyer la personne vers une page de type "404"...
J'ai essayé d'envoyer une erreur, sans résultat :
Avez vous une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 httpResponse.sendError(HttpServletResponse.SC_NOT_FOUND); chain.doFilter(httpRequest, httpResponse);
Je vous remercie pour votre temps.
PS : j'ai testé d'autres erreurs que NPE, pensant que le "runtime" était la cause, mais non.
Partager