Aujourd'hui, j'ai écrit un système simple utilisant SSH2 et j'ai trouvé un problème. Mon système doit être connecté avec succès avant de pouvoir entrer la page d'accueil. Cependant, j'ai directement entré l'adresse de la page d'accueil dans le navigateur et j'ai constaté que je pouvais également entrer. Ce n'est certainement pas bon et n'a aucune sécurité du tout. Après avoir vérifié les informations, j'ai constaté que je devais me connecter au filtre. Je l'ai essayé et j'ai découvert qu'il peut en effet éviter le danger d'entrer sur la page d'accueil sans vous connecter. Voici les étapes détaillées que j'ai compilées:
1. Écrivez d'abord une classe de filtre d'autorisation pour implémenter l'interface du filtre
Importer java.io.ioException; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; importer javax.servlet.servletException; import javax.servlet.servletrequest; importer javax.servlet.servletResponse; Importer; javax.servlet.http.httpservletRequest; Importer javax.servlet.http.httpServilleSsage; Import Javax.servlet.http.httpSession; Public Class LogginFilter implémente filter {@Override public init (FilterConfig FilterConfig) throws servletException {/ to tooto Stub} @Override public void Dofilter (ServLetRequest Request, ServletResponse Response, FilterChain Chain) lève IOException, servlexception {// Obtenez la demande, la réponse, l'objet de session à utiliser dans la demande de code suivante; HttpServletResponse servLetResponse = (httpServletResponse) Réponse; HttpSession Session = ServleTrequest.getSession (); // obtient l'uri demandé par le chemin de chaîne utilisateur = servLetRequest.getRequeSturi (); //System.out.println(path); // Obtenez les informations de numéro de travail de l'employé à partir de la session String Empid = (String) session.getAttribute ("Empid"); / * Créer les constantes de classe.java, qui dit la page sans filtrage pour (int i = 0; i <constantes.nofilter_pages.length; i ++) {if (path.indexof (constants.nofilter_pages [i])> -1) {chain.dofilter (ServLetRequest, ServletResponse); retour; }} * / // Aucun filtrage requis pour la page de connexion if (path.indexof ("/ login.jsp")> -1) {chain.dofilter (servletRequest, servletResponse); retour; } // Jugement: Si aucune information des employés n'est récupérée, passez à la page de connexion si (empid == null || "" .equals (empid)) {// sautez à la page de connexion servletResponse.sendRedirect ("/ jingxing_oa / login.jsp"); } else {// Connexion, continuez cette demande Chain.Dofilter (demande, réponse); }} @Override public void destre () {// Todo Méthode générée automatiquement Stub}}2. Configurez ensuite le fichier JSP qui nécessite une vérification de l'autorisation de connexion dans web.xml:
un. S'il s'agit d'un fichier JSP spécifique (tel que A.JSP), vous devez vous connecter et vérifier
<! - Configurer le filtre de connexion -> <filter> <filter-name> Login </ Filter-Name> <Lilter-Class> com.jingxing.oa.filter.loginfilter </ filter-Class> </filter> <filter-Mapping> <filter-name> Login </filter-mapping> <Url-Patter> / * </ url-Patterst>
né S'il s'agit d'un répertoire (tel que A / Directory), les fichiers de l'ensemble du répertoire doivent être connectés et vérifiés:
<! - Configurer le filtre de connexion -> <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 / * </rutern> </nom-manding>
Ce qui précède est la connexion de vérification du filtre Web Java pour empêcher la connexion de saisir l'interface que je vous ai présentée. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!