Сегодня я написал простую систему с использованием SSH2 и нашел проблему. Моя система должна быть успешно войти в систему, прежде чем я смогу ввести домашнюю страницу. Тем не менее, я непосредственно ввел адрес домашней страницы в браузере и обнаружил, что могу также войти. Это определенно не очень хорошо и вообще не имеет безопасности. После проверки информации я обнаружил, что мне нужно войти в фильтр. Я попробовал это и обнаружил, что это действительно может избежать опасности входа на домашнюю страницу без входа в систему. Ниже приведены подробные шаги, которые я составил:
1. Сначала напишите класс фильтра разрешения для реализации интерфейса фильтра
Импорт java.io.ioexception; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterConfig; импорт javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; public class loginfilter внедряет Filter {@override public init inite-generfige filterconfigg Метод stub} @Override public void dofilter (запрос ServletRequest, ответ ServletResponse, цепочка FilterChain), выбросы IOException, ServletException {// Получить запрос, ответ, объект сеанса, который будет использоваться в следующем коде httpservletrequest servletRequest = (httpsErvletRequest); Httpservletresponse servletresponse = (httpservletresponse) ответ; Httpsession session = servletrequest.getsession (); // Получить URI, запрошенный пользовательским путем строки = servletrequest.getRequesturi (); //System.out.println(path); // Получить информацию о рабочем номере сотрудника из строки сеанса empid = (string) session.getattribute ("empid"); /*Создать константы класса. Java, в которой говорится, что страница без фильтрации для (int i = 0; i <constants.nofilter_pages.length; i ++) {if (path.indexof (constants.nofilter_pages [i])> -1) {chain.dofilter (ServletRequest, servletresponse); возвращаться; }}*/ // Нет фильтрации, требуемой для страницы входа в систему if (path.indexof ("/ login.jsp")> -1) {chain.dofilter (servletrequest, servletresponse); возвращаться; } // Суждение: если не получена информация о сотруднике, перейдите на страницу входа в систему if (empid == null || ". } else {// login, продолжить эту цепочку запросов. dofilter (запрос, ответ); }} @Override public void destress () {// todo Автопогенерированный метод stub}}2. Затем настройте файл JSP, который требует проверки разрешений в систему в web.xml:
а Если это конкретный файл JSP (например, A.JSP), вам нужно войти в систему и проверить
<!-Настроить фильтр для входа-> <Filter> <Filter-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <Filter-MAPPIN
беременный Если это каталог (например, A/ Directory), файлы во всем каталоге должны регистрироваться и проверить:
<!-Настроить фильтр входа в систему-> <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/*</*</filter-patern> </url-pattern> </url-pattern> </url-pattern> </url-pattern> </url-pattern> </filter-pattern> </filter> </url-pattern> </filter-pattern>
Выше представлено вход в систему проверки веб -фильтра Java, чтобы предотвратить вход в вход в интерфейс, который я представил вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!