Heute habe ich ein einfaches System mit SSH2 geschrieben und ein Problem gefunden. Mein System muss erfolgreich angemeldet werden, bevor ich die Startseite betreten kann. Ich habe jedoch direkt die Homepagesadresse im Browser eingegeben und festgestellt, dass ich auch eingeben konnte. Das ist definitiv nicht gut und hat überhaupt keine Sicherheit. Nachdem ich die Informationen überprüft hatte, stellte ich fest, dass ich mich beim Filter anmelden musste. Ich habe es ausprobiert und festgestellt, dass es tatsächlich die Gefahr vermeiden kann, die Startseite einzugeben, ohne sich anzumelden. Im Folgenden finden Sie die detaillierten Schritte, die ich zusammengestellt habe:
1. Schreiben Sie zuerst eine Berechtigungsfilterklasse, um die Filterschnittstelle zu implementieren
import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.httpServletRequest; import javax.servlet.http.httpserletResponse; import Javax.servlet.http.httpSession; Public Class LoginFilter implements filter iverride public void Init Automatisch generierte Methode Stub} @Override public void dofilter (ServletRequest Request, ServletResponse-Antwort, Filterchain-Kette) löst IOException, ServletException aus {// die Anfrage abrufen, Antwort, Sitzungsobjekt, das in der folgenden Code-HTTPServletRequest-Servletrequest-Anfrage verwendet werden soll. HttpServletResponse ServletResponse = (httpServletResponse) Antwort; HttpSession Session = servletRequest.getSession (); // Erhalten Sie den von dem Benutzer String path = ServletRequest.getRequesturi () angeforderten URI; //System.out.println(path); // Die Mitarbeiter -Arbeitsnummerinformationen aus der Sitzungsstring -String empid = (String) Sitzung.GetAttribute ("empid") erhalten; /*Erstellen Sie die Klasse Constants.java, die Seite ohne Filtern für (int i = 0; i <constants.nofilter_pages.length; i ++) {if (path.indexof (Constants.nofilter_pages [i])> -1) {chain.dofilter (servletrequest, servletResponse); zurückkehren; }}*/ // keine Filterung für die Anmeldeseite erforderlich if (path.indexof ("/ login.jsp")> -1) {chain.dofilter (servletRequest, servletResponse); zurückkehren; } // Urteil: Wenn keine Mitarbeiterinformationen abgerufen werden, springen Sie zur Anmeldeseite, wenn (empid == null || "" .Equals (empid)) {// zur Anmeldeseite servletResponse.sendredirect ("/jingxing_oa/login.jsp"); } else {// Login, fordere diese Anforderungskette fort. }} @Override public void Destroy () {// Todo automatisch generierte Methode Stub}}2. Konfigurieren Sie dann die JSP -Datei, für die die Anmeldemittel -Berechtigungsüberprüfung in web.xml erforderlich ist:
A. Wenn es sich um eine bestimmte JSP -Datei (z. B. A.JSP) handelt, müssen Sie sich anmelden und überprüfen
<!-Login-Filter konfigurieren-> <Filter> <Filter-name> Login </filter-name> <Filterklasse> com.jingxing.oa.filter.Loginfilter </Filter-Class> </filter> <Filter-Mapping> <Filter-name> login </filter-name> <urllpattern>/*</*/*/*/*/*/*/Ull-Pols-NAME> <Url-pattern>/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
B. Wenn es sich um ein Verzeichnis (z. B. A/ Verzeichnis) handelt, müssen Dateien im gesamten Verzeichnis angemeldet und verifiziert werden:
<!-Login-Filter konfigurieren-> <Filter> <Filter-name> Login </filter-name> <Filterklasse> com.jingxing.oa.filter.loginfilter </filterklasse> </filter> <Filter-Maping> <Filter-name> login </filter-name> <url-passtern>/a/a/a.
Das obige ist das Java -Web -Filter -Überprüfungsanmeldung, um zu verhindern, dass sich die Anmeldung in die Schnittstelle eingeht, die ich Ihnen vorgestellt habe. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!