Hoy escribí un sistema simple usando SSH2 y encontré un problema. Mi sistema debe iniciarse correctamente antes de poder ingresar a la página de inicio. Sin embargo, ingresé directamente a la dirección de la página de inicio en el navegador y descubrí que también podría ingresar. Esto definitivamente no es bueno y no tiene seguridad en absoluto. Después de revisar la información, descubrí que necesitaba iniciar sesión en el filtro. Lo intenté y descubrí que de hecho puede evitar el peligro de ingresar a la página de inicio sin iniciar sesión. A continuación se muestran los pasos detallados que he compilado:
1. Primero escriba una clase de filtro de permiso para implementar la interfaz de filtro
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.servletRetResponse; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } @Override public void dofilter (solicitud de servletRequest, respuesta de servicio de servicio, cadena de filtro de filtro) lanza ioexception, servletException {// obtenga la solicitud, respuesta y el objeto de sesión que se utilizará en el siguiente código httpservletRequest ServletRest = (htttpserveRequest) solicitud; HttpServletResponse ServLetResponse = (httpservletResponse) respuesta; Httpsession Session = ServLetRequest.getSession (); // Obtenga el URI solicitado por la ruta de cadena del usuario = ServLetRequest.getRequesturi (); //System.out.println(path); // Obtener la información del número de trabajo del empleado de la sesión String Empid = (String) Session.getAttribute ("Empid"); /*Crear la clase constants.java, que dice página sin filtrar para (int i = 0; i <constants.nofilter_pages.length; i ++) {if (path.indexof (constants.nofilter_pages [i])> -1) {chain.dofilter (servletRequest, servletResponse); devolver; }}*/ // no se requiere filtrado para la página de inicio de sesión if (path.indexof ("/ login.jsp")> -1) {chain.dofilter (servletRequest, servletResponse); devolver; } // juicio: si no se recupera la información del empleado, salte a la página de inicio de sesión if (empid == null || "" .equals (empid)) {// salta a la página de inicio de sesión servletResponse.sendedirect ("/jingxing_oa/login.jsp"); } else {// Iniciar sesión, continuar esta solicitud Chain.dofilter (solicitud, respuesta); }} @Override public void Destro () {// TODO Auto Generado Método STUB}}2. Luego, configure el archivo JSP que requiere verificación de permiso de inicio de sesión en Web.xml:
a. Si es un archivo JSP específico (como A.JSP), debe iniciar sesión y verificar
<!-Configurar el filtro de inicio de sesión-> <filter> <filter-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filtre> <filter-mapping> <filter-name> login </filtre-name> <url-pattern>/*</ url-pattern> <//filtrepapping>
b. Si se trata de un directorio (como A/ Directory), los archivos en todo el directorio deben iniciarse y verificarse:
<!-Configurar el filtro de inicio de sesión-> <filter> <filter-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filtre> <filter-mapping> <filter-name> login </filtre-name> <url-pattern>/a/*</ url-pattern> <//mapping>
Lo anterior es el inicio de sesión de verificación del filtro web Java para evitar que el inicio de sesión ingrese la interfaz que le presenté. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!