Hari ini saya menulis sistem sederhana menggunakan SSH2 dan menemukan masalah. Sistem saya harus masuk dengan sukses sebelum saya dapat memasuki halaman beranda. Namun, saya langsung memasukkan alamat beranda di browser dan menemukan bahwa saya juga bisa masuk. Ini jelas tidak baik dan tidak memiliki keamanan sama sekali. Setelah memeriksa informasi, saya menemukan bahwa saya perlu masuk ke filter. Saya mencobanya dan menemukan bahwa itu memang dapat menghindari bahaya memasuki halaman beranda tanpa masuk. Di bawah ini adalah langkah -langkah terperinci yang telah saya kumpulkan:
1. Pertama tulis kelas filter izin untuk mengimplementasikan antarmuka filter
Impor java.io.ioException; impor javax.servlet.filter; impor javax.servlet.filterchain; impor javax.servlet.filterconfig; import javax.servlet.servletException; impor javax.servlet.servletequest; impor javax.servlet javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; Metode Loginfilter Javax.servlet.http.httpsession; Filterfilter publiccept {@override public init (filterconfig publiccepte. } @Override public void dofilter (permintaan servletRequest, respons servletResponse, rantai filterchain) melempar ioException, servletException {// Dapatkan permintaan, respons, objek sesi untuk digunakan dalam kode berikut ini permintaan httpservletrequest; (httpservlete) berikut; HttpservletResponse servletResponse = (httpservletResponse); Httpsession sesi = servletRequest.getSession (); // Dapatkan URI yang diminta oleh Path String User = ServletRequest.GetRequesturi (); //System.out.println(path); // Dapatkan informasi nomor kerja karyawan dari string sesi empid = (string) session.getAttribute ("empid"); /*Buat kelas Constants.java, yang mengatakan halaman tanpa memfilter untuk (int i = 0; i <constants.nofilter_pages.length; i ++) {if (path.indexof (constants.nofilter_pages [i])> -1) {chain.dofilter (servletRequest, servletResponse); kembali; }}*/ // Tidak diperlukan pemfilteran untuk halaman login if (path.indexof ("/ login.jsp")> -1) {rantai.dofilter (servletRequest, servletResponse); kembali; } // Penilaian: Jika tidak ada informasi karyawan yang diambil, lompat ke halaman login jika (empid == null || "" .Equals (empid)) {// Lompat ke halaman login servletResponse.sendredirect ("/jingxing_oa/login.jsp"); } else {// login, lanjutkan rantai permintaan ini. Dofilter (permintaan, respons); }} @Override public void dashar () {// TODO Metode yang dihasilkan otomatis Stub}}2. Kemudian konfigurasikan file JSP yang memerlukan verifikasi izin login di web.xml:
A. Jika ini adalah file JSP tertentu (seperti A.JSP), Anda perlu masuk dan memverifikasi
<!-- Configure login filter--><filter> <filter-name>login</filter-name> <filter-class>com.jingxing.oa.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
B. Jika itu adalah direktori (seperti A/ Direktori), file di seluruh direktori perlu masuk dan diverifikasi:
<!-- Configure login filter--> <filter> <filter-name>login</filter-name> <filter-class>com.jingxing.oa.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login</filter-name> <url-pattern>/a/*</url-pattern> </filter-mapping>
Di atas adalah login verifikasi filter web Java untuk mencegah login memasuki antarmuka yang saya perkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!