Hoje escrevi um sistema simples usando o SSH2 e encontrei um problema. Meu sistema deve estar conectado com sucesso antes que eu possa entrar na página inicial. No entanto, eu digitei diretamente o endereço da página inicial no navegador e descobri que também poderia entrar. Definitivamente, isso não é bom e não tem segurança. Depois de verificar as informações, descobri que precisava fazer login no filtro. Eu tentei e descobri que ele pode realmente evitar o perigo de entrar na página inicial sem fazer login. Abaixo estão as etapas detalhadas que compilei:
1. Primeiro, escreva uma classe de filtro de permissão para implementar a interface do filtro
importar java.io.ioException; importar javax.servlet.filter; importar javax.servlet.filterchain; importar javax.servlet.filterconfig; importar javax.servlet.servletexception; import javax.servlet.servlet.erSeverTeQuest; import.ServleTlexception; Import.Servlet.servlet.SerSeSestlestler; javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar javax.servlet.http.httpsession; public class LoginFilter implementos @Override Void Init (FilterCeption Filterfig) } @Override Public void Dofilter (Solicitação de servletRequest, resposta servletResponse, cadeia de filtragem) lança IoException, servletexception {// Obtenha a solicitação, resposta, objeto de sessão a ser usado no seguinte código httpservlequest servletrequest = (httpslerleprestlest); HttpServletResponse servletResponse = (httpServletResponse) Resposta; Session httpSession = servletRequest.getSession (); // obtém o URI solicitado pelo caminho da sequência do usuário = servletRequest.getRequesturi (); //System.out.println(Path); // Obtenha as informações do número de trabalho do funcionário da sessão de sessão empid = (string) session.getAttribute ("empid"); /*Crie a classe Constants.java, que diz uma página sem filtrar para (int i = 0; i <constantes.nofilter_pages.length; i ++) {if (path.indexOf (constantes.nofilter_pages [i])> -1) {chille.dofilter (servletRequest, servletResponse); retornar; }}*/ // Nenhuma filtragem necessária para a página de login se (path.indexof ("/ login.jsp")> -1) {Chain.dofilter (servletRequest, servletResponse); retornar; } // julgamento: Se nenhuma informação do funcionário for recuperada, pule para a página de login se (empid == null || "" .equals (empid)) {// pule para a página de login servletResponse.sendredirect ("/jingxing_oa/login.jsp"); } else {// Login, continue esta solicitação Chain.Dofilter (solicitação, resposta); }} @Override public void Destro () {// ToDO Method Stub}}}2. Em seguida, configure o arquivo JSP que requer verificação de permissão de login em web.xml:
um. Se for um arquivo JSP específico (como A.JSP), você precisa fazer login e verificar
<!-Configure o filtro de login-> <filter> <filtro-name> login </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <filter-Mapping> <filter-name> login </filter-name <url-tattern>/*</url-patn-patn--name>
b. Se for um diretório (como A/ Diretório), os arquivos em todo o diretório precisam ser conectados e verificados:
<!-- 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>
O exposto acima é o login de verificação do filtro da web java para impedir que o login digite a interface que eu apresentei a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!