Viele Leute fragen, wie man de IP von der Client-Seite ändern kann, aber ich muss es tun (wenn es möglich ist) von der Server-Seite.Wie kann ich IP in HttpServletRequest von der Serverseite ändern?
Die Sache ist, dass ich die IP von der HttpServletRequest.getRemoteAddr(), aber jetzt, dass wir einen Proxy vor unserem IHS verwenden, kommt diese IP immer mit der Proxy-IP, nicht die echte Client-IP.
Der Proxy stellt die reale IP in einem neuen spezifischen Header in der Anforderung bereit.
Ok, ich weiß, dass es einfach klingt, ich ändere nur die Art und Weise, wie ich die IP bekomme und bekomme es aus dem spezifischen Header, den der Proxy bietet. Es ist eine gute Lösung, das Problem ist, dass wir viele Klassen ändern müssen und ich denke auf eine andere mögliche Art, zum Beispiel, diese IP einmal mit der echten in der Anfrage in einer BaseClass zu ändern und dann alle (wer erweitert die BaseClass) erhält die IP korrekt aktualisiert.
Also, kann ich das irgendwie machen?
es wahrscheinlich die Servlet-Spezifikation verletzen würde, aber man konnte es wih ein 'Filter' tun und ein' HttpServletRequestWrapper' die 'getRemoteAddr()' overrode. Die eigentliche Frage ist, warum haben Sie so viel Code, der an der Client-IP-Adresse interessiert ist? Es geht um eine Web-App. Sie sollten versuchen, diese Abhängigkeit auf längere Sicht zu beseitigen. – EJP