12 changed files with 412 additions and 130 deletions
			
			
		| @ -0,0 +1,6 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | <Scene Scope="Project" version="2"> | ||||
|  |     <Scope Scope="Faces Configuration Only"/> | ||||
|  |     <Scope Scope="Project"/> | ||||
|  |     <Scope Scope="All Faces Configurations"/> | ||||
|  | </Scene> | ||||
| @ -0,0 +1,62 @@ | |||||
|  | /* | ||||
|  |  * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | ||||
|  |  * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
 | ||||
|  |  */ | ||||
|  | package hola.seguridad; | ||||
|  | 
 | ||||
|  | import java.io.IOException; | ||||
|  | import javax.inject.Named; | ||||
|  | import javax.enterprise.context.SessionScoped; | ||||
|  | import javax.faces.application.NavigationHandler; | ||||
|  | import javax.faces.context.FacesContext; | ||||
|  | import javax.faces.event.PhaseEvent; | ||||
|  | import javax.faces.event.PhaseId; | ||||
|  | import javax.faces.event.PhaseListener; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * | ||||
|  |  * @author Josue | ||||
|  |  */ | ||||
|  | @Named(value = "autorizacionListener") | ||||
|  | @SessionScoped | ||||
|  | public class AutorizacionListener implements PhaseListener { | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * Creates a new instance of AutorizacionListener | ||||
|  |      */ | ||||
|  |     public AutorizacionListener() { | ||||
|  |     } | ||||
|  |      | ||||
|  |      | ||||
|  |     private static final long serialVersionUID = 1L; | ||||
|  |   | ||||
|  |     @Override | ||||
|  |     public void afterPhase(PhaseEvent event) { | ||||
|  |         try { | ||||
|  |             //Obtener la pagina actual para validar la sesion
 | ||||
|  |             String paginaActual = event.getFacesContext().getViewRoot().getViewId(); | ||||
|  |              | ||||
|  |             //inicializar la sesion en caso de no haber sesion
 | ||||
|  |             DemoBeanLogin.getSession(); | ||||
|  | 
 | ||||
|  |             //Revisar que no sea la pafina index y que no estes logueado
 | ||||
|  |             //para redireccionar
 | ||||
|  |             if (!paginaActual.contains("index.xhtml") && DemoBeanLogin.getEstatus() == false) {                | ||||
|  |                 FacesContext.getCurrentInstance().getExternalContext().redirect("faces/index.xhtml?faces-redirect=true"); | ||||
|  |       | ||||
|  |                 NavigationHandler nh = event.getFacesContext().getApplication().getNavigationHandler(); | ||||
|  |                 nh.handleNavigation(event.getFacesContext(), null, "index"); | ||||
|  |             } | ||||
|  |         } catch (IOException e) { | ||||
|  |             e.printStackTrace(); | ||||
|  |         } | ||||
|  |     } | ||||
|  |   | ||||
|  |     @Override | ||||
|  |     public void beforePhase(PhaseEvent event) {} | ||||
|  |   | ||||
|  |     @Override | ||||
|  |     public PhaseId getPhaseId() { | ||||
|  |         return PhaseId.RESTORE_VIEW; | ||||
|  |     } | ||||
|  | } | ||||
| @ -0,0 +1,138 @@ | |||||
|  | /* | ||||
|  |  * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | ||||
|  |  * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
 | ||||
|  |  */ | ||||
|  | package hola.seguridad; | ||||
|  | 
 | ||||
|  | import hola.BL.LoginBLLocal; | ||||
|  | import hola.modelo.Usuario; | ||||
|  | import hola.msg.Mensaje; | ||||
|  | import static hola.msg.Mensaje.CAMPOS_INCOMPLETOS; | ||||
|  | import static hola.msg.Mensaje.DATOS_INCORRECTOS; | ||||
|  | import static hola.msg.Mensaje.ELEMENTO_DUPLICADO; | ||||
|  | import static hola.msg.Mensaje.SIN_ERROR; | ||||
|  | import javax.inject.Named; | ||||
|  | import javax.enterprise.context.SessionScoped; | ||||
|  | import java.io.Serializable; | ||||
|  | import javax.ejb.EJB; | ||||
|  | import javax.faces.context.FacesContext; | ||||
|  | import javax.servlet.http.HttpSession; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * | ||||
|  |  * @author Josue | ||||
|  |  */ | ||||
|  | @Named(value = "demoBeanLogin") | ||||
|  | @SessionScoped | ||||
|  | public class DemoBeanLogin implements Serializable { | ||||
|  | 
 | ||||
|  |     @EJB | ||||
|  |     private LoginBLLocal loginBL; | ||||
|  |     private String rol; | ||||
|  |      | ||||
|  |     private boolean permisos =false ; | ||||
|  |      | ||||
|  |  //variable para manejar la sesion
 | ||||
|  |     public static HttpSession httpSession; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * Creates a new instance of DemoBeanLogin | ||||
|  |      */ | ||||
|  |     public DemoBeanLogin() { | ||||
|  |          | ||||
|  |          | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public String getRol() { | ||||
|  |         return rol; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public void setRol(String rol) { | ||||
|  |         this.rol = rol; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public boolean isPermisos() { | ||||
|  |         return permisos; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public void setPermisos(boolean permisos) { | ||||
|  |         this.permisos = permisos; | ||||
|  |     } | ||||
|  |      | ||||
|  |      | ||||
|  |     private Usuario usuarios = new Usuario(); | ||||
|  |     private static String http = "caba"; | ||||
|  | 
 | ||||
|  |     public Usuario getUsuarios() { | ||||
|  |         return usuarios; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public void setUsuarios(Usuario usuarios) { | ||||
|  |         this.usuarios = usuarios; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |      | ||||
|  |      | ||||
|  |     public static void getSession() { | ||||
|  |         httpSession = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public String logout() { | ||||
|  |         //quitar atributo
 | ||||
|  |         //invalidar la session
 | ||||
|  |         System.out.println(http); | ||||
|  |         httpSession.removeAttribute(http); | ||||
|  |         httpSession.invalidate(); | ||||
|  |         return "index.xhtml"; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public String login() { | ||||
|  |         //BL de autenticacion de usuario
 | ||||
|  |         //poner atributo
 | ||||
|  | 
 | ||||
|  |         Mensaje mensaje = loginBL.login(usuarios); | ||||
|  | 
 | ||||
|  |         switch (mensaje) { | ||||
|  |             case SIN_ERROR: | ||||
|  |                 rol = loginBL.rol(usuarios); | ||||
|  |                 System.out.println(rol); | ||||
|  |                 httpSession.setAttribute(http, "true"); | ||||
|  |                 usuarios = new Usuario(); | ||||
|  |                 return "Producto.xhtml"; | ||||
|  |             case ELEMENTO_DUPLICADO: | ||||
|  |                 return null; | ||||
|  |             case CAMPOS_INCOMPLETOS: | ||||
|  |                 return null; | ||||
|  |             case DATOS_INCORRECTOS: | ||||
|  |                 return null; | ||||
|  |             default: | ||||
|  |                 return null; | ||||
|  |         } | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     public static boolean getEstatus() { | ||||
|  |         if (httpSession != null | ||||
|  |                 && httpSession.getId() != null | ||||
|  |                 && !httpSession.getId().isEmpty() | ||||
|  |                 && httpSession.getAttribute("caba") != null) { | ||||
|  |             return true; | ||||
|  |         } else { | ||||
|  |             return false; | ||||
|  |         } | ||||
|  |     } | ||||
|  |     public void permiso() { | ||||
|  |         switch (rol) { | ||||
|  |             case "admin": | ||||
|  |                 permisos = true; | ||||
|  |                 break; | ||||
|  |             case "capturista": | ||||
|  |                 permisos = false; | ||||
|  |                 break; | ||||
|  |             case "usuario": | ||||
|  |                 permisos = false; | ||||
|  |                 break; | ||||
|  |             default: | ||||
|  |                 throw new AssertionError(); | ||||
|  |         } | ||||
|  |     } | ||||
|  | } | ||||
| @ -0,0 +1,41 @@ | |||||
|  | <?xml version='1.0' encoding='UTF-8'?> | ||||
|  | <!-- | ||||
|  | 
 | ||||
|  |     Licensed to the Apache Software Foundation (ASF) under one | ||||
|  |     or more contributor license agreements.  See the NOTICE file | ||||
|  |     distributed with this work for additional information | ||||
|  |     regarding copyright ownership.  The ASF licenses this file | ||||
|  |     to you under the Apache License, Version 2.0 (the | ||||
|  |     "License"); you may not use this file except in compliance | ||||
|  |     with the License.  You may obtain a copy of the License at | ||||
|  | 
 | ||||
|  |       http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | 
 | ||||
|  |     Unless required by applicable law or agreed to in writing, | ||||
|  |     software distributed under the License is distributed on an | ||||
|  |     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  |     KIND, either express or implied.  See the License for the | ||||
|  |     specific language governing permissions and limitations | ||||
|  |     under the License. | ||||
|  | 
 | ||||
|  | --> | ||||
|  | <faces-config version="2.2" | ||||
|  |               xmlns="http://xmlns.jcp.org/xml/ns/javaee" | ||||
|  |               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|  |               xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> | ||||
|  | 
 | ||||
|  |     <lifecycle> | ||||
|  |         <phase-listener> | ||||
|  |             hola.seguridad.AutorizacionListener | ||||
|  |         </phase-listener> | ||||
|  |     </lifecycle> | ||||
|  |      | ||||
|  |     <navigation-rule> | ||||
|  |         <from-view-id>*</from-view-id> | ||||
|  |         <navigation-case> | ||||
|  |             <from-outcome>accesoDenegado</from-outcome> | ||||
|  |             <to-view-id>/producto.xhtml</to-view-id> | ||||
|  |         </navigation-case> | ||||
|  |     </navigation-rule> | ||||
|  |      | ||||
|  | </faces-config> | ||||
| @ -0,0 +1,66 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | <!-- | ||||
|  | Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license | ||||
|  | Click nbfs://nbhost/SystemFileSystem/Templates/Other/xhtml.xhtml to edit this template | ||||
|  | --> | ||||
|  | <!DOCTYPE html> | ||||
|  | <html xmlns="http://www.w3.org/1999/xhtml" | ||||
|  |       xmlns:h="http://xmlns.jcp.org/jsf/html" | ||||
|  |       xmlns:p="http://primefaces.org/ui"> | ||||
|  |     <h:head> | ||||
|  |         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
|  |         <h:outputStylesheet name="./css/default.css"/> | ||||
|  |         <h:outputStylesheet name="./css/cssLayout.css"/> | ||||
|  | 
 | ||||
|  |         <title>Facelets Template</title> | ||||
|  |         <style> | ||||
|  | 
 | ||||
|  |         </style> | ||||
|  |     </h:head> | ||||
|  |     <center> | ||||
|  | 
 | ||||
|  |         <h:body style="text-align: center"> | ||||
|  |             <h2> Inventario almacen </h2> | ||||
|  | 
 | ||||
|  |             <h:form> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  |                 <p:panel header="Login" style="width:300px"> | ||||
|  | 
 | ||||
|  |                     <h:panelGrid columns="1" cellpadding="5"> | ||||
|  | 
 | ||||
|  |                         <p:inputText id="usuario" | ||||
|  |                                      value="#{demoBeanLogin.usuarios.username}" | ||||
|  |                                      title='nombre' | ||||
|  |                                      required="true"  | ||||
|  |                                      requiredMessage="Este campo no puede estar vacio" | ||||
|  |                                      placeholder="Ingrese el usuario"> | ||||
|  |                         </p:inputText> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  |                         <p:password id="contrasenia"  | ||||
|  |                                     value="#{demoBeanLogin.usuarios.npila}"  | ||||
|  |                                     title="contraseña"  | ||||
|  |                                     redisplay="true"  | ||||
|  |                                     required="true"  | ||||
|  | 
 | ||||
|  |                                     requiredMessage="Este campo no puede estar vacio" | ||||
|  |                                     placeholder="Ingrse la contraseña" | ||||
|  |                                     style="width: 223px"> | ||||
|  | 
 | ||||
|  |                         </p:password> | ||||
|  | 
 | ||||
|  |                         <p:commandButton value="Login"  | ||||
|  |                                          action="#{demoBeanLogin.login()}"  | ||||
|  |                                          ajax="false" /> | ||||
|  |                     </h:panelGrid> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  |                 </p:panel> | ||||
|  | 
 | ||||
|  |             </h:form> | ||||
|  | 
 | ||||
|  |         </h:body> | ||||
|  |     </center> | ||||
|  | </html> | ||||
|  | 
 | ||||
					Loading…
					
					
				
		Reference in new issue