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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
springSecurityFilterChain.doFilter(httpRequest, httpResponse, chain);
-->> NPE
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
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>
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.
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
httpResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
chain.doFilter(httpRequest, httpResponse);
Avez vous une idée?

Je vous remercie pour votre temps.

PS : j'ai testé d'autres erreurs que NPE, pensant que le "runtime" était la cause, mais non.