Wie die Rückkehr der HTTP-Fehler-code vom servlet filter?
Habe ich die Seiten in meinem web-Anwendung, die zugänglich sind nur durch den administrator. Ich schrieb-filter, aber ich verstehe nicht, wie die Rückkehr der HTTP-Fehlercode(403) aus dem filter, wenn der Benutzer nicht der admin.
public class AdminFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
String username = servletRequest.getParameter("username");
String password = servletRequest.getParameter("password");
UserDao userDaoImpl = new UserDaoImpl();
if(userDaoImpl.findByUsername(username).getPassword().equals(password)) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
//respond with 403
}
}
}
Verstehe ich, dass ich die Umleitung auf meine custom 403 Seite, aber ich Frage mich wie die Rückkehr der HTTP-Fehlercode.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie gegossen
servletResponse
zuHttpServletResponse
erste:Verwenden Sie den
sendError()
Methode:SC_FORBIDDEN
steht für code 403.Durch die Art und Weise, die Sie nicht redirect 403 Seite, die Sie nur reagieren mit diesem status. Wenn Sie das tun, wird der servlet-container dienen werden, eine Besondere 403-Seite an den Benutzer. Sie können konfigurieren, dass die Seite in Ihrem
web.xml
:Dies weist der Behälter zu dienen, Ihre benutzerdefinierte Seite
/error-403.htm
wenn Sie 403 status.Wenn Sie möchten, eine Umleitung, die Sie nutzen könnten
response.sendRedirect()
(es gibt eine 302-Weiterleitung).Habe ich gelöst: