PROYECTO SEGURIDAD 2_0

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss EAP 6.1+ Runtime"/>
<classpathentry combineaccessrules="false" kind="src" path="/ServiciosSeguridadEPN"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Varios"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SeguridadWebEPN-JSF2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.jst.web.kb.kbbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.cdi.core.cdibuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.jboss.tools.jst.web.kb.kbnature</nature>
<nature>org.jboss.tools.cdi.core.cdinature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
org.eclipse.jdt.core.circularClasspath=error
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
#Fri May 27 10:34:07 COT 2011
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
XDOCLETBUILDERACTIVE=true
XDOCLETHOME=
XDOCLETUSEGLOBAL=true
XDOCLETVERSION=1.2.1
eclipse.preferences.version=1
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="SeguridadWebEPN-JSF2">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="JBoss EAP 6.1+ Runtime"/>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="java" version="1.7"/>
</faceted-project>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class CambioClave implements Serializable{
private static final long serialVersionUID = 5313859176084820300L;
private String claveAnterior;
private String claveNueva;
private String claveNueva2;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
public String getClaveAnterior() {
return claveAnterior;
}
public void setClaveAnterior(String claveAnterior) {
this.claveAnterior = claveAnterior;
}
public String getClaveNueva() {
return claveNueva;
}
public void setClaveNueva(String claveNueva) {
this.claveNueva = claveNueva;
}
public String getClaveNueva2() {
return claveNueva2;
}
public void setClaveNueva2(String claveNueva2) {
this.claveNueva2 = claveNueva2;
}
public void validaClaveAnterior(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
if (!ss.validarUsuarioPassword(su.getUsuario().getNombreUsuario(), (String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("Clave anterior incorrecta");
throw new ValidatorException(e);
}
}
public void validaClave2(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
String claveNueva = request.getParameter("formCambio:claveNueva");
if (claveNueva==null || !claveNueva.equals((String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("La clave y la confirmacin no coinciden");
throw new ValidatorException(e);
}
}
public String cambiarClave(){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
ss.actualizarPassword(su.getUsuario().getNombreUsuario(), getClaveNueva());
return "principal";
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validadores implements Serializable{
/**
*
*/
private static final long serialVersionUID = -817588918225390437L;
private String sucesos = " ";
public static final int NUMERO_DE_PROVINCIAS = 24;
public boolean isNumeric(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un numero");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isString(String entrada){
Pattern patron = Pattern.compile("[^a-zA-Z .]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es una cadena de caracteres");
return false;
}
}catch (Exception e) {
return false;
}
}
public boolean isCedula(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
int prov = Integer.parseInt(entrada.substring(0,2));
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 10) {
this.setSucesos("Cdula incompleta");
return false;
}else if(entrada.length() > 10){
this.setSucesos("Cdula incorrecta");
return false;
}else if(!((prov > 0) && (prov <= NUMERO_DE_PROVINCIAS))) {
this.setSucesos("Cdula incorrecta");
return false;
}
return true;
}
else{
this.setSucesos("No es una cedula");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isRuc(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
if (entrada.length() != 13) {
this.setSucesos("Ruc incompleto");
return false;
}else
return true;
}
else{
this.setSucesos("No es RUC");
return false;
}
}catch (Exception e) {
this.setSucesos("No es RUC");
return false;
}
}
public boolean isMail(String entrada){
Pattern patron = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)*[a-zA-Z0-9]@[a-zA-Z]*" +
"[a-zA-Z0-9].[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un mail");
return false;
}
} catch (Exception e) {
return false;
}
}
public boolean isFono(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 7 ) {
this.setSucesos("Telfono incompleto");
return false;
}else
return true;
}else{
this.setSucesos("No es un nmero vlido");
return false;
}
} catch (Exception e) {
return false;
}
}
public String getSucesos() {
return sucesos;
}
public void setSucesos(String sucesos) {
this.sucesos = sucesos;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import javax.faces.component.UIInput;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
public class GestionAplicaciones implements Serializable {
private static final long serialVersionUID = 9099065821772808727L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
private String url;
private List<Aplicacion> listaAplicaciones;
private List<SelectItem> listaItems;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
//Componentes para cambiar dinmicamente h:inputText
private UIInput nombreIN;
private UIInput descripcionIN;
private UIInput urlIN;
private HtmlSelectOneRadio selectDefaultValue;
//Componentes para cambiar dinmicamente h:outputText
private HtmlOutputText nombreOut;
private HtmlOutputText descripcionOut;
private HtmlOutputText urlOut;
//Seleccin de la aplicacion a modificar
private Long aplicacionSeleccionadaID;
private HtmlSelectOneListbox aplicacionListBox;
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public HtmlOutputText getDescripcionOut() {
return descripcionOut;
}
public void setDescripcionOut(HtmlOutputText descripcionOut) {
this.descripcionOut = descripcionOut;
}
public HtmlOutputText getUrlOut() {
return urlOut;
}
public void setUrlOut(HtmlOutputText urlOut) {
this.urlOut = urlOut;
}
public Long getAplicacionSeleccionadaID() {
return aplicacionSeleccionadaID;
}
public void setAplicacionSeleccionadaID(Long aplicacionSeleccionadaID) {
this.aplicacionSeleccionadaID = aplicacionSeleccionadaID;
}
public List<SelectItem> getListaItems(){
listaAplicaciones = new ArrayList<Aplicacion>();
getListaAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
listaItems = new ArrayList<SelectItem>();
for(Aplicacion app : listaAplicaciones){
listaItems.add(new SelectItem(app.getId(), app.getNombre(), app.getDescripcion()));
}
return listaItems;
}
public List<Aplicacion> getListaAplicaciones() {
listaAplicaciones = ss.consultarAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
return listaAplicaciones;
}
public void setListaAplicaciones(List<Aplicacion> listaAplicaciones) {
this.listaAplicaciones = listaAplicaciones;
}
public void setListaItems(List<SelectItem> listaItems) {
this.listaItems = listaItems;
}
public UIInput getNombreIN() {
return nombreIN;
}
public void setNombreIN(UIInput nombreIN) {
this.nombreIN = nombreIN;
}
public UIInput getDescripcionIN() {
return descripcionIN;
}
public void setDescripcionIN(UIInput descripcionIN) {
this.descripcionIN = descripcionIN;
}
public UIInput getUrlIN() {
return urlIN;
}
public void setUrlIN(UIInput urlIN) {
this.urlIN = urlIN;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public HtmlSelectOneRadio getSelectDefaultValue() {
return selectDefaultValue;
}
public void setSelectDefaultValue(HtmlSelectOneRadio selectDefaultValue) {
this.selectDefaultValue = selectDefaultValue;
}
public HtmlSelectOneListbox getAplicacionListBox() {
return aplicacionListBox;
}
public void setAplicacionListBox(HtmlSelectOneListbox aplicacionListBox) {
this.aplicacionListBox = aplicacionListBox;
}
public void addAplicacion(ActionEvent event){
Aplicacion app = new Aplicacion();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.guardarAplicacion(app);
setStyle(getStyleSuccess());
setMsgAdd("Aplicacin ingresada con xito");
setNombre("");
setDescripcion("");
setActivo("");
setUrl("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void updateAplicacion(ActionEvent event){
String appSeleccionada = (String)aplicacionListBox.getValue();
setAplicacionSeleccionadaID(Long.parseLong(appSeleccionada!=null ? appSeleccionada : "-1"));
try{
Aplicacion app = searchAplicacion(aplicacionSeleccionadaID);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.actualizarAplicacion(app);
setStyle(getStyleSuccess());
setMsgUp("Aplicacin modificada con xito");
setNombre("");
nombreOut.setValue("");
setDescripcion("");
descripcionOut.setValue("");
setActivo("");
setUrl("");
urlOut.setValue("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoAplicacion(ValueChangeEvent event){
setAplicacionSeleccionadaID(Long.parseLong((String)event.getNewValue()));
Aplicacion a = searchAplicacion(aplicacionSeleccionadaID);
nombreOut.setValue("Actual: "+a.getNombre());
descripcionOut.setValue("Actual: "+a.getDescripcion());
urlOut.setValue("Actual: "+a.getUrl());
nombreIN.setValue(a.getNombre());
descripcionIN.setValue(a.getDescripcion());
urlIN.setValue(a.getUrl());
selectDefaultValue.setValue(a.getActivo());
}
public Aplicacion searchAplicacion(Long id){
for(Aplicacion a : listaAplicaciones ){
if(a.getId()==id.longValue()){
return a;
}
}
return null;
}
public void cargarInicio(ActionEvent event){
nombreIN.setValue(" ");
descripcionIN.setValue(" ");
urlIN.setValue(" ");
selectDefaultValue.setValue(" ");
nombreOut.setValue(" ");
descripcionOut.setValue(" ");
urlOut.setValue(" ");
}
public void limpiarComponentes(ActionEvent event){
setNombre(" ");
setUrl(" ");
setDescripcion(" ");
setActivo(" ");
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CerrarSesion extends HttpServlet {
private static final long serialVersionUID = -8108914910223133525L;
public void service(ServletRequest req,ServletResponse resp) {
//Obteniendo las URLs de los parmetros de contexto de web.xml
String urlAplicacion = getServletContext().getInitParameter("urlAplicacion");
String urlLogout = getServletContext().getInitParameter("urlLogout");
HttpServletRequest request = (HttpServletRequest)req;
HttpSession session = request.getSession();
HttpServletResponse response = (HttpServletResponse)resp;
session.invalidate();
try {
//Redireccionando de vuelta a la aplicacin
//una vez cerrada la sesin
response.sendRedirect(urlLogout+"?service="+urlAplicacion);
}catch(Exception e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="JBoss EAP 6.1+ Runtime"/>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="java" version="1.7"/>
</faceted-project>
XDOCLETBUILDERACTIVE=true
XDOCLETHOME=
XDOCLETUSEGLOBAL=true
XDOCLETVERSION=1.2.1
eclipse.preferences.version=1
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Emula SesionUsuario con datos quemados
*
*/
public class SesionUsuarioMock implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6051644872747793329L;
private String perfilSeleccionado;
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Usuario getUsuario() {
Usuario u = new Usuario();
u.setNombreUsuario("username");
u.setCedula("1234567890");
return u;
}
public boolean validarAcceso(String acceso){
return true;
}
public boolean getPuedeCrear(){
return validarAcceso("c");
}
public boolean getPuedeModificar(){
return validarAcceso("m");
}
public boolean getPuedeEliminar(){
return validarAcceso("e");
}
}
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
org.eclipse.jdt.core.circularClasspath=error
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlInputHidden;
import javax.faces.component.html.HtmlSelectManyCheckbox;
import javax.faces.event.ActionEvent;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionAutorizacion implements Serializable{
private static final long serialVersionUID = 1735849069486849238L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de Autorizaciones
private String perfilIn;
private String perfilIDIn;
private String menuIn;
private String menuIDIn;
private List<String> permisosIn;
private List<Menu> menus;
///Modificacion de Autorizaciones
private List<Autorizacion> autorizaciones;
private String autorizacionIDIn;
private String autorizacionIDOut;
private String permisosString;
private HtmlSelectManyCheckbox permisosCheckbox;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public void guardarAutorizacion(ActionEvent event){
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilIn");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuIn");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
Perfil p = new Perfil();
try{
if(perfilIDIn.trim().equals("") || menuIDIn.trim().equals("")){
throw new Exception();
}else{
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
long id = ss.selectMaxIDAutorizacion()+1L;
autorizacion.setId(id);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos.trim().equals("") ? null : permisos.trim());
ss.guardarAutorizacion(autorizacion);
setStyle(getStyleSuccess());
setMsgAdd("Autorizacin ingresada con xito");
setPerfilIDIn("");
setMenuIDIn("");
List<String> permisosTemp = new ArrayList<String>();
for(int i=0; i<4; i++ ){
permisosTemp.add("");
}
setPermisosIn(permisosTemp);
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarAutorizacion(ActionEvent event){
HtmlInputHidden idAutorizacion = (HtmlInputHidden) event.getComponent().findComponent("idAutorizacionIn");
Long auxIdAutorizacion = Long.parseLong(idAutorizacion.getValue().toString());
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilUpdate");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuUpdate");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
try{
Perfil p = new Perfil();
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
autorizacion = ss.buscarAutorizacionPorID(auxIdAutorizacion);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos);
ss.actualizarAutorizacion(autorizacion);
List<String> permisosList = new ArrayList<String>();
for(int i=0; i<4; i++){
permisosList.add(i, "");
}
setPermisosIn(permisosList);
permisosCheckbox.setValue(permisos);
setStyle(getStyleSuccess());
setMsgUp("Autorizacin modificada con xito");
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void seleccionarPerfil(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombPerfil");
String auxNombPerfil = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idPerfil");
String auxIdPerfil = componentID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
}
public void seleccionarMenu(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombMenu");
String auxNombMenu = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idMenu");
String auxIdMenu = componentID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
}
public void seleccionarAutorizacion(ActionEvent event){
UIParameter componentAutoNombre = (UIParameter) event.getComponent().findComponent("idAutorizacion");
String auxIdAutorizacion = componentAutoNombre.getValue().toString();
setAutorizacionIDIn(auxIdAutorizacion);
setAutorizacionIDOut(auxIdAutorizacion);
UIParameter componentPerfilNombre = (UIParameter) event.getComponent().findComponent("nombPerfilUpdate");
String auxNombPerfil = componentPerfilNombre.getValue().toString();
UIParameter componentPerfilID = (UIParameter) event.getComponent().findComponent("idPerfilSelectUpdate");
String auxIdPerfil = componentPerfilID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
UIParameter componentMenuNombre = (UIParameter) event.getComponent().findComponent("nombMenuUpdate");
String auxNombMenu = componentMenuNombre.getValue().toString();
UIParameter componentMenuID = (UIParameter) event.getComponent().findComponent("idMenuSelectUpdate");
String auxIdMenu = componentMenuID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
UIParameter componentPermisos = (UIParameter) event.getComponent().findComponent("permUpdate");
String auxPermisos = componentPermisos.getValue().toString();
setPermisosString(auxPermisos);
List<String> permisos = new ArrayList<String>();
String[] permisosArray = permisosString.split("[ ]");
for(int i=0; i<permisosArray.length; i++){
permisos.add(i, permisosArray[i]);
}
setPermisosIn(permisos);
permisosCheckbox.setValue(permisos);
}
public List<Menu> getMenus() {
menus = new ArrayList<Menu>();
menus = ss.getListaMenus();
Collections.sort(menus, new ComparatorAdmin());
return menus;
}
public List<Autorizacion> getAutorizaciones() {
autorizaciones = new ArrayList<Autorizacion>();
autorizaciones = ss.getListaAutorizaciones();
return autorizaciones;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
public String getPerfilIDIn() {
return perfilIDIn;
}
public void setPerfilIDIn(String perfilIDIn) {
this.perfilIDIn = perfilIDIn;
}
public String getMenuIDIn() {
return menuIDIn;
}
public void setMenuIDIn(String menuIDIn) {
this.menuIDIn = menuIDIn;
}
public String getPerfilIn() {
return perfilIn;
}
public void setPerfilIn(String perfilIn) {
this.perfilIn = perfilIn;
}
public String getMenuIn() {
return menuIn;
}
public void setMenuIn(String menuIn) {
this.menuIn = menuIn;
}
public List<String> getPermisosIn() {
return permisosIn;
}
public void setPermisosIn(List<String> permisosIn) {
this.permisosIn = permisosIn;
}
public void setAutorizacionIDIn(String autorizacionIDIn) {
this.autorizacionIDIn = autorizacionIDIn;
}
public String getAutorizacionIDIn() {
return autorizacionIDIn;
}
public void setAutorizacionIDOut(String autorizacionIDOut) {
this.autorizacionIDOut = autorizacionIDOut;
}
public String getAutorizacionIDOut() {
return autorizacionIDOut;
}
public void setPermisosString(String permisosString) {
this.permisosString = permisosString;
}
public String getPermisosString() {
return permisosString;
}
public void setAutorizaciones(List<Autorizacion> autorizaciones) {
this.autorizaciones = autorizaciones;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
public void setPermisosCheckbox(HtmlSelectManyCheckbox permisosCheckbox) {
this.permisosCheckbox = permisosCheckbox;
}
public HtmlSelectManyCheckbox getPermisosCheckbox() {
return permisosCheckbox;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionPerfil implements Serializable {
private static final long serialVersionUID = -1412226353696522505L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
///COMPONENES PARA LA ACTUALIZACION///
private UIInput inNombre;
private HtmlOutputText outNombre;
private UIInput inDescripcion;
private HtmlOutputText outDescripcion;
private HtmlSelectOneRadio inActivo;
private List<SelectItem> listaPerfil;
private List<Perfil> perfilesObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPerfil() {
listaPerfil = new ArrayList<SelectItem>();
List<Perfil> buscarPerfiles = ss.buscarPerfiles();
Collections.sort(buscarPerfiles, new ComparatorAdmin());
for(Perfil p : buscarPerfiles){
SelectItem item = new SelectItem(p.getNombre(),p.getNombre());
listaPerfil.add(item);
}
return listaPerfil;
}
public List<Perfil> getPerfilesObjetos() {
perfilesObjetos = new ArrayList<Perfil>();
perfilesObjetos = ss.buscarPerfiles();
Collections.sort(perfilesObjetos, new ComparatorAdmin());
return perfilesObjetos;
}
public void guardarPerfil(ActionEvent event){
Perfil p = new Perfil();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo==null ? "SI": activo.trim());
ss.guardarPerfil(p);
setStyle(getStyleSuccess());
setMsgAdd("Perfil ingresado con xito");
setNombre("");
setDescripcion("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarPerfil(ActionEvent event){
Perfil p = new Perfil();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formActualizarPerfil:updatePerfil");
try{
p = ss.buscarPerfilPorNombre(nomAplica);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo.trim());
//p.setNombre((String)inNombre.getValue());
//p.setDescripcion((String)inDescripcion.getValue());
//p.setActivo((String)inActivo.getValue());
ss.actualizarPerfil(p);
setStyle(getStyleSuccess());
setMsgUp("Perfil actualizado con xito");
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoPerfil(ValueChangeEvent event){
String nombrePerfil = (String)event.getNewValue();
if(nombrePerfil!=null){
Perfil p = ss.buscarPerfilPorNombre(nombrePerfil);
inNombre.setValue(p.getNombre());
outNombre.setValue("Actual: "+p.getNombre());
inDescripcion.setValue(p.getDescripcion());
outDescripcion.setValue("Actual: "+p.getDescripcion());
inActivo.setValue(p.getActivo());
}
}
public void cargarInicio(ActionEvent event){
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public UIInput getInNombre() {
return inNombre;
}
public void setInNombre(UIInput inNombre) {
this.inNombre = inNombre;
}
public HtmlOutputText getOutNombre() {
return outNombre;
}
public void setOutNombre(HtmlOutputText outNombre) {
this.outNombre = outNombre;
}
public UIInput getInDescripcion() {
return inDescripcion;
}
public void setInDescripcion(UIInput inDescripcion) {
this.inDescripcion = inDescripcion;
}
public HtmlOutputText getOutDescripcion() {
return outDescripcion;
}
public void setOutDescripcion(HtmlOutputText outDescripcion) {
this.outDescripcion = outDescripcion;
}
public HtmlSelectOneRadio getInActivo() {
return inActivo;
}
public void setInActivo(HtmlSelectOneRadio inActivo) {
this.inActivo = inActivo;
}
public void setListaPerfil(List<SelectItem> listaPerfil) {
this.listaPerfil = listaPerfil;
}
public void setPerfilesObjetos(List<Perfil> perfilesObjetos) {
this.perfilesObjetos = perfilesObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ServiciosSeguridadEPN.jar" />
<module name="javax.faces.api" />
</dependencies>
</deployment>
</jboss-deployment-structure>
\ No newline at end of file
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.VO.SesionUsuario;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class FiltroAuditoria implements Filter, Serializable {
private static final long serialVersionUID = -657388017221155722L;
private FilterConfig filterConfig;
@SuppressWarnings("unused")
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx
.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unused")
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String, String> urlNoControladas = new Hashtable<String, String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf","URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
if (!urlNoControladas.containsKey(request.getServletPath())) {
SesionUsuario su = (SesionUsuario) session
.getAttribute("sesionUsuario");
Enumeration<String> nombreParametros = request.getParameterNames();
while (nombreParametros.hasMoreElements()) {
String nombreParametro = nombreParametros.nextElement();
if (!nombreParametro.equals("javax.faces.ViewState")) {
String valor = request.getParameter(nombreParametro);
if (valor.length() > 200) {
valor = valor.substring(0, 200);
}
}
} }
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="SeguridadWebEPN/dist/seguridadWebEPNDesarrollador.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN/GeneraJarDesarrollador.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
<file path="/SeguridadWebEPN/GeneraJar.jardesc"/>
<file path="/SeguridadWebEPN/.classpath"/>
<file path="/SeguridadWebEPN/.project"/>
<folder path="/SeguridadWebEPN/dist"/>
<javaElement handleIdentifier="=SeguridadWebEPN/src&lt;ec.edu.epn.seguridad.VO{SesionUsuarioMock.java"/>
<folder path="/SeguridadWebEPN/lib"/>
</selectedElements>
</jardesc>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SeguridadWebEPN-JSF2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.jst.web.kb.kbbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.cdi.core.cdibuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.jboss.tools.jst.web.kb.kbnature</nature>
<nature>org.jboss.tools.cdi.core.cdinature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss EAP 6.1+ Runtime"/>
<classpathentry combineaccessrules="false" kind="src" path="/ServiciosSeguridadEPN"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Varios"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Menu;
public class MenuAccion implements Serializable, Comparable<MenuAccion> {
/**
*
*/
private static final long serialVersionUID = 4511109797669299668L;
private Menu menu;
public MenuAccion(Menu menu) {
this.menu = menu;
}
//Eclipse Generated hashCode and equals
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((menu == null) ? 0 : menu.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MenuAccion other = (MenuAccion) obj;
if (menu == null) {
if (other.menu != null)
return false;
} else if (!menu.equals(other.menu))
return false;
return true;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
@Override
public int compareTo(MenuAccion o) {
// TODO Auto-generated method stub
return 0;
}
}
\ No newline at end of file
#Fri May 27 10:34:07 COT 2011
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
package ec.edu.epn.seguridad.VO;
import java.util.Comparator;
import ec.edu.epn.seguridad.vo.Aplicacion;
//import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class ComparatorAdmin implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Aplicacion")){
Aplicacion app1 = (Aplicacion) o1;
Aplicacion app2 = (Aplicacion) o2;
return app1.getNombre().compareToIgnoreCase(app2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Perfil")){
Perfil perf1 = (Perfil) o1;
Perfil perf2 = (Perfil) o2;
return perf1.getNombre().compareToIgnoreCase(perf2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Menu")){
Menu menu1 = (Menu) o1;
Menu menu2 = (Menu) o2;
return menu1.getNombre().compareToIgnoreCase(menu2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Personal")){
Personal pers1 = (Personal) o1;
Personal pers2 = (Personal) o2;
return pers1.getNombresPe().compareToIgnoreCase(pers2.getNombresPe());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Unidad")){
Unidad uni1 = (Unidad) o1;
Unidad uni2 = (Unidad) o2;
return uni1.getNombreU().compareToIgnoreCase(uni2.getNombreU());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Usuario")){
Usuario user1 = (Usuario) o1;
Usuario user2 = (Usuario) o2;
return user1.getNombreUsuario().compareToIgnoreCase(user2.getNombreUsuario());
}
return 0;
}
}
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="SeguridadWebEPN-JSF2">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.faces.application.ResourceHandler;
import ec.edu.epn.seguridad.VO.SesionUsuario;
public class FiltroAutorizacion implements Filter, Serializable {
/**
*
*/
private static final long serialVersionUID = -4266992020481797282L;
/**
*
*/
private FilterConfig filterConfig;
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String,String> urlNoControladas = new Hashtable<String,String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf", "URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
urlNoControladas.put("/seguridad/cerrarSesion", "URL cierre sesion");
String uri = ((HttpServletRequest) request).getRequestURI();
if (urlNoControladas.containsKey(request.getServletPath())){
chain.doFilter(request,response);
}else{
SesionUsuario su = (SesionUsuario) session.getAttribute("sesionUsuario");
Map<String,String> opciones = su.getOpciones();
if(opciones!=null && opciones.containsKey(request.getServletPath())){
String accesos = opciones.get(request.getServletPath());
request.setAttribute(SesionUsuario.NOMBRE_VARIABLE_ACCESOS,accesos);
chain.doFilter(request,response);
}else if(uri.startsWith(request.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) || uri.startsWith(request.getContextPath())){
chain.doFilter(request, response);
}else{
RequestDispatcher rd = request.getRequestDispatcher("/seguridad/noAutorizado.jsf");
rd.forward(request,response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
}
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="C:/Documents and Settings/SauloV/Escritorio/seguridadWebEPN.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN-JSF2/GeneraJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="false" exportJavaFiles="false" exportOutputFolder="true">
<javaElement handleIdentifier="=SeguridadWebEPN-JSF2/src"/>
</selectedElements>
</jardesc>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Date;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
public class UsuarioTemp implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5222814270136240276L;
private long id;
private String nombreUsuario;
private String clave;
private String cedula;
private Date fechaCreacion;
private Personal personal;
private Unidad unidad;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public Date getFechaCreacion() {
return fechaCreacion;
}
public void setFechaCreacion(Date fechaCreacion) {
this.fechaCreacion = fechaCreacion;
}
public Personal getPersonal() {
return personal;
}
public void setPersonal(Personal personal) {
this.personal = personal;
}
public Unidad getUnidad() {
return unidad;
}
public void setUnidad(Unidad unidad) {
this.unidad = unidad;
}
}
File added
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="C:/Documents and Settings/SauloV/Escritorio/seguridadWebEPN.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN-JSF2/GeneraJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="false" exportJavaFiles="false" exportOutputFolder="true">
<javaElement handleIdentifier="=SeguridadWebEPN-JSF2/src"/>
</selectedElements>
</jardesc>
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="SeguridadWebEPN/dist/seguridadWebEPNDesarrollador.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN/GeneraJarDesarrollador.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
<file path="/SeguridadWebEPN/GeneraJar.jardesc"/>
<file path="/SeguridadWebEPN/.classpath"/>
<file path="/SeguridadWebEPN/.project"/>
<folder path="/SeguridadWebEPN/dist"/>
<javaElement handleIdentifier="=SeguridadWebEPN/src&lt;ec.edu.epn.seguridad.VO{SesionUsuarioMock.java"/>
<folder path="/SeguridadWebEPN/lib"/>
</selectedElements>
</jardesc>
Manifest-Version: 1.0
Class-Path:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ServiciosSeguridadEPN.jar" />
<module name="javax.faces.api" />
</dependencies>
</deployment>
</jboss-deployment-structure>
\ No newline at end of file
Manifest-Version: 1.0
Class-Path:
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class CambioClave implements Serializable{
private static final long serialVersionUID = 5313859176084820300L;
private String claveAnterior;
private String claveNueva;
private String claveNueva2;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
public String getClaveAnterior() {
return claveAnterior;
}
public void setClaveAnterior(String claveAnterior) {
this.claveAnterior = claveAnterior;
}
public String getClaveNueva() {
return claveNueva;
}
public void setClaveNueva(String claveNueva) {
this.claveNueva = claveNueva;
}
public String getClaveNueva2() {
return claveNueva2;
}
public void setClaveNueva2(String claveNueva2) {
this.claveNueva2 = claveNueva2;
}
public void validaClaveAnterior(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
if (!ss.validarUsuarioPassword(su.getUsuario().getNombreUsuario(), (String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("Clave anterior incorrecta");
throw new ValidatorException(e);
}
}
public void validaClave2(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
String claveNueva = request.getParameter("formCambio:claveNueva");
if (claveNueva==null || !claveNueva.equals((String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("La clave y la confirmacin no coinciden");
throw new ValidatorException(e);
}
}
public String cambiarClave(){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
ss.actualizarPassword(su.getUsuario().getNombreUsuario(), getClaveNueva());
return "principal";
}
}
package ec.edu.epn.seguridad.VO;
import java.util.Comparator;
import ec.edu.epn.seguridad.vo.Aplicacion;
//import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class ComparatorAdmin implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Aplicacion")){
Aplicacion app1 = (Aplicacion) o1;
Aplicacion app2 = (Aplicacion) o2;
return app1.getNombre().compareToIgnoreCase(app2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Perfil")){
Perfil perf1 = (Perfil) o1;
Perfil perf2 = (Perfil) o2;
return perf1.getNombre().compareToIgnoreCase(perf2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Menu")){
Menu menu1 = (Menu) o1;
Menu menu2 = (Menu) o2;
return menu1.getNombre().compareToIgnoreCase(menu2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Personal")){
Personal pers1 = (Personal) o1;
Personal pers2 = (Personal) o2;
return pers1.getNombresPe().compareToIgnoreCase(pers2.getNombresPe());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Unidad")){
Unidad uni1 = (Unidad) o1;
Unidad uni2 = (Unidad) o2;
return uni1.getNombreU().compareToIgnoreCase(uni2.getNombreU());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Usuario")){
Usuario user1 = (Usuario) o1;
Usuario user2 = (Usuario) o2;
return user1.getNombreUsuario().compareToIgnoreCase(user2.getNombreUsuario());
}
return 0;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import javax.faces.component.UIInput;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
public class GestionAplicaciones implements Serializable {
private static final long serialVersionUID = 9099065821772808727L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
private String url;
private List<Aplicacion> listaAplicaciones;
private List<SelectItem> listaItems;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
//Componentes para cambiar dinmicamente h:inputText
private UIInput nombreIN;
private UIInput descripcionIN;
private UIInput urlIN;
private HtmlSelectOneRadio selectDefaultValue;
//Componentes para cambiar dinmicamente h:outputText
private HtmlOutputText nombreOut;
private HtmlOutputText descripcionOut;
private HtmlOutputText urlOut;
//Seleccin de la aplicacion a modificar
private Long aplicacionSeleccionadaID;
private HtmlSelectOneListbox aplicacionListBox;
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public HtmlOutputText getDescripcionOut() {
return descripcionOut;
}
public void setDescripcionOut(HtmlOutputText descripcionOut) {
this.descripcionOut = descripcionOut;
}
public HtmlOutputText getUrlOut() {
return urlOut;
}
public void setUrlOut(HtmlOutputText urlOut) {
this.urlOut = urlOut;
}
public Long getAplicacionSeleccionadaID() {
return aplicacionSeleccionadaID;
}
public void setAplicacionSeleccionadaID(Long aplicacionSeleccionadaID) {
this.aplicacionSeleccionadaID = aplicacionSeleccionadaID;
}
public List<SelectItem> getListaItems(){
listaAplicaciones = new ArrayList<Aplicacion>();
getListaAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
listaItems = new ArrayList<SelectItem>();
for(Aplicacion app : listaAplicaciones){
listaItems.add(new SelectItem(app.getId(), app.getNombre(), app.getDescripcion()));
}
return listaItems;
}
public List<Aplicacion> getListaAplicaciones() {
listaAplicaciones = ss.consultarAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
return listaAplicaciones;
}
public void setListaAplicaciones(List<Aplicacion> listaAplicaciones) {
this.listaAplicaciones = listaAplicaciones;
}
public void setListaItems(List<SelectItem> listaItems) {
this.listaItems = listaItems;
}
public UIInput getNombreIN() {
return nombreIN;
}
public void setNombreIN(UIInput nombreIN) {
this.nombreIN = nombreIN;
}
public UIInput getDescripcionIN() {
return descripcionIN;
}
public void setDescripcionIN(UIInput descripcionIN) {
this.descripcionIN = descripcionIN;
}
public UIInput getUrlIN() {
return urlIN;
}
public void setUrlIN(UIInput urlIN) {
this.urlIN = urlIN;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public HtmlSelectOneRadio getSelectDefaultValue() {
return selectDefaultValue;
}
public void setSelectDefaultValue(HtmlSelectOneRadio selectDefaultValue) {
this.selectDefaultValue = selectDefaultValue;
}
public HtmlSelectOneListbox getAplicacionListBox() {
return aplicacionListBox;
}
public void setAplicacionListBox(HtmlSelectOneListbox aplicacionListBox) {
this.aplicacionListBox = aplicacionListBox;
}
public void addAplicacion(ActionEvent event){
Aplicacion app = new Aplicacion();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.guardarAplicacion(app);
setStyle(getStyleSuccess());
setMsgAdd("Aplicacin ingresada con xito");
setNombre("");
setDescripcion("");
setActivo("");
setUrl("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void updateAplicacion(ActionEvent event){
String appSeleccionada = (String)aplicacionListBox.getValue();
setAplicacionSeleccionadaID(Long.parseLong(appSeleccionada!=null ? appSeleccionada : "-1"));
try{
Aplicacion app = searchAplicacion(aplicacionSeleccionadaID);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.actualizarAplicacion(app);
setStyle(getStyleSuccess());
setMsgUp("Aplicacin modificada con xito");
setNombre("");
nombreOut.setValue("");
setDescripcion("");
descripcionOut.setValue("");
setActivo("");
setUrl("");
urlOut.setValue("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoAplicacion(ValueChangeEvent event){
setAplicacionSeleccionadaID(Long.parseLong((String)event.getNewValue()));
Aplicacion a = searchAplicacion(aplicacionSeleccionadaID);
nombreOut.setValue("Actual: "+a.getNombre());
descripcionOut.setValue("Actual: "+a.getDescripcion());
urlOut.setValue("Actual: "+a.getUrl());
nombreIN.setValue(a.getNombre());
descripcionIN.setValue(a.getDescripcion());
urlIN.setValue(a.getUrl());
selectDefaultValue.setValue(a.getActivo());
}
public Aplicacion searchAplicacion(Long id){
for(Aplicacion a : listaAplicaciones ){
if(a.getId()==id.longValue()){
return a;
}
}
return null;
}
public void cargarInicio(ActionEvent event){
nombreIN.setValue(" ");
descripcionIN.setValue(" ");
urlIN.setValue(" ");
selectDefaultValue.setValue(" ");
nombreOut.setValue(" ");
descripcionOut.setValue(" ");
urlOut.setValue(" ");
}
public void limpiarComponentes(ActionEvent event){
setNombre(" ");
setUrl(" ");
setDescripcion(" ");
setActivo(" ");
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlInputHidden;
import javax.faces.component.html.HtmlSelectManyCheckbox;
import javax.faces.event.ActionEvent;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionAutorizacion implements Serializable{
private static final long serialVersionUID = 1735849069486849238L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de Autorizaciones
private String perfilIn;
private String perfilIDIn;
private String menuIn;
private String menuIDIn;
private List<String> permisosIn;
private List<Menu> menus;
///Modificacion de Autorizaciones
private List<Autorizacion> autorizaciones;
private String autorizacionIDIn;
private String autorizacionIDOut;
private String permisosString;
private HtmlSelectManyCheckbox permisosCheckbox;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public void guardarAutorizacion(ActionEvent event){
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilIn");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuIn");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
Perfil p = new Perfil();
try{
if(perfilIDIn.trim().equals("") || menuIDIn.trim().equals("")){
throw new Exception();
}else{
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
long id = ss.selectMaxIDAutorizacion()+1L;
autorizacion.setId(id);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos.trim().equals("") ? null : permisos.trim());
ss.guardarAutorizacion(autorizacion);
setStyle(getStyleSuccess());
setMsgAdd("Autorizacin ingresada con xito");
setPerfilIDIn("");
setMenuIDIn("");
List<String> permisosTemp = new ArrayList<String>();
for(int i=0; i<4; i++ ){
permisosTemp.add("");
}
setPermisosIn(permisosTemp);
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarAutorizacion(ActionEvent event){
HtmlInputHidden idAutorizacion = (HtmlInputHidden) event.getComponent().findComponent("idAutorizacionIn");
Long auxIdAutorizacion = Long.parseLong(idAutorizacion.getValue().toString());
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilUpdate");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuUpdate");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
try{
Perfil p = new Perfil();
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
autorizacion = ss.buscarAutorizacionPorID(auxIdAutorizacion);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos);
ss.actualizarAutorizacion(autorizacion);
List<String> permisosList = new ArrayList<String>();
for(int i=0; i<4; i++){
permisosList.add(i, "");
}
setPermisosIn(permisosList);
permisosCheckbox.setValue(permisos);
setStyle(getStyleSuccess());
setMsgUp("Autorizacin modificada con xito");
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void seleccionarPerfil(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombPerfil");
String auxNombPerfil = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idPerfil");
String auxIdPerfil = componentID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
}
public void seleccionarMenu(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombMenu");
String auxNombMenu = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idMenu");
String auxIdMenu = componentID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
}
public void seleccionarAutorizacion(ActionEvent event){
UIParameter componentAutoNombre = (UIParameter) event.getComponent().findComponent("idAutorizacion");
String auxIdAutorizacion = componentAutoNombre.getValue().toString();
setAutorizacionIDIn(auxIdAutorizacion);
setAutorizacionIDOut(auxIdAutorizacion);
UIParameter componentPerfilNombre = (UIParameter) event.getComponent().findComponent("nombPerfilUpdate");
String auxNombPerfil = componentPerfilNombre.getValue().toString();
UIParameter componentPerfilID = (UIParameter) event.getComponent().findComponent("idPerfilSelectUpdate");
String auxIdPerfil = componentPerfilID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
UIParameter componentMenuNombre = (UIParameter) event.getComponent().findComponent("nombMenuUpdate");
String auxNombMenu = componentMenuNombre.getValue().toString();
UIParameter componentMenuID = (UIParameter) event.getComponent().findComponent("idMenuSelectUpdate");
String auxIdMenu = componentMenuID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
UIParameter componentPermisos = (UIParameter) event.getComponent().findComponent("permUpdate");
String auxPermisos = componentPermisos.getValue().toString();
setPermisosString(auxPermisos);
List<String> permisos = new ArrayList<String>();
String[] permisosArray = permisosString.split("[ ]");
for(int i=0; i<permisosArray.length; i++){
permisos.add(i, permisosArray[i]);
}
setPermisosIn(permisos);
permisosCheckbox.setValue(permisos);
}
public List<Menu> getMenus() {
menus = new ArrayList<Menu>();
menus = ss.getListaMenus();
Collections.sort(menus, new ComparatorAdmin());
return menus;
}
public List<Autorizacion> getAutorizaciones() {
autorizaciones = new ArrayList<Autorizacion>();
autorizaciones = ss.getListaAutorizaciones();
return autorizaciones;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
public String getPerfilIDIn() {
return perfilIDIn;
}
public void setPerfilIDIn(String perfilIDIn) {
this.perfilIDIn = perfilIDIn;
}
public String getMenuIDIn() {
return menuIDIn;
}
public void setMenuIDIn(String menuIDIn) {
this.menuIDIn = menuIDIn;
}
public String getPerfilIn() {
return perfilIn;
}
public void setPerfilIn(String perfilIn) {
this.perfilIn = perfilIn;
}
public String getMenuIn() {
return menuIn;
}
public void setMenuIn(String menuIn) {
this.menuIn = menuIn;
}
public List<String> getPermisosIn() {
return permisosIn;
}
public void setPermisosIn(List<String> permisosIn) {
this.permisosIn = permisosIn;
}
public void setAutorizacionIDIn(String autorizacionIDIn) {
this.autorizacionIDIn = autorizacionIDIn;
}
public String getAutorizacionIDIn() {
return autorizacionIDIn;
}
public void setAutorizacionIDOut(String autorizacionIDOut) {
this.autorizacionIDOut = autorizacionIDOut;
}
public String getAutorizacionIDOut() {
return autorizacionIDOut;
}
public void setPermisosString(String permisosString) {
this.permisosString = permisosString;
}
public String getPermisosString() {
return permisosString;
}
public void setAutorizaciones(List<Autorizacion> autorizaciones) {
this.autorizaciones = autorizaciones;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
public void setPermisosCheckbox(HtmlSelectManyCheckbox permisosCheckbox) {
this.permisosCheckbox = permisosCheckbox;
}
public HtmlSelectManyCheckbox getPermisosCheckbox() {
return permisosCheckbox;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionPerfil implements Serializable {
private static final long serialVersionUID = -1412226353696522505L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
///COMPONENES PARA LA ACTUALIZACION///
private UIInput inNombre;
private HtmlOutputText outNombre;
private UIInput inDescripcion;
private HtmlOutputText outDescripcion;
private HtmlSelectOneRadio inActivo;
private List<SelectItem> listaPerfil;
private List<Perfil> perfilesObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPerfil() {
listaPerfil = new ArrayList<SelectItem>();
List<Perfil> buscarPerfiles = ss.buscarPerfiles();
Collections.sort(buscarPerfiles, new ComparatorAdmin());
for(Perfil p : buscarPerfiles){
SelectItem item = new SelectItem(p.getNombre(),p.getNombre());
listaPerfil.add(item);
}
return listaPerfil;
}
public List<Perfil> getPerfilesObjetos() {
perfilesObjetos = new ArrayList<Perfil>();
perfilesObjetos = ss.buscarPerfiles();
Collections.sort(perfilesObjetos, new ComparatorAdmin());
return perfilesObjetos;
}
public void guardarPerfil(ActionEvent event){
Perfil p = new Perfil();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo==null ? "SI": activo.trim());
ss.guardarPerfil(p);
setStyle(getStyleSuccess());
setMsgAdd("Perfil ingresado con xito");
setNombre("");
setDescripcion("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarPerfil(ActionEvent event){
Perfil p = new Perfil();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formActualizarPerfil:updatePerfil");
try{
p = ss.buscarPerfilPorNombre(nomAplica);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo.trim());
//p.setNombre((String)inNombre.getValue());
//p.setDescripcion((String)inDescripcion.getValue());
//p.setActivo((String)inActivo.getValue());
ss.actualizarPerfil(p);
setStyle(getStyleSuccess());
setMsgUp("Perfil actualizado con xito");
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoPerfil(ValueChangeEvent event){
String nombrePerfil = (String)event.getNewValue();
if(nombrePerfil!=null){
Perfil p = ss.buscarPerfilPorNombre(nombrePerfil);
inNombre.setValue(p.getNombre());
outNombre.setValue("Actual: "+p.getNombre());
inDescripcion.setValue(p.getDescripcion());
outDescripcion.setValue("Actual: "+p.getDescripcion());
inActivo.setValue(p.getActivo());
}
}
public void cargarInicio(ActionEvent event){
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public UIInput getInNombre() {
return inNombre;
}
public void setInNombre(UIInput inNombre) {
this.inNombre = inNombre;
}
public HtmlOutputText getOutNombre() {
return outNombre;
}
public void setOutNombre(HtmlOutputText outNombre) {
this.outNombre = outNombre;
}
public UIInput getInDescripcion() {
return inDescripcion;
}
public void setInDescripcion(UIInput inDescripcion) {
this.inDescripcion = inDescripcion;
}
public HtmlOutputText getOutDescripcion() {
return outDescripcion;
}
public void setOutDescripcion(HtmlOutputText outDescripcion) {
this.outDescripcion = outDescripcion;
}
public HtmlSelectOneRadio getInActivo() {
return inActivo;
}
public void setInActivo(HtmlSelectOneRadio inActivo) {
this.inActivo = inActivo;
}
public void setListaPerfil(List<SelectItem> listaPerfil) {
this.listaPerfil = listaPerfil;
}
public void setPerfilesObjetos(List<Perfil> perfilesObjetos) {
this.perfilesObjetos = perfilesObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Menu;
public class MenuAccion implements Serializable, Comparable<MenuAccion> {
/**
*
*/
private static final long serialVersionUID = 4511109797669299668L;
private Menu menu;
public MenuAccion(Menu menu) {
this.menu = menu;
}
//Eclipse Generated hashCode and equals
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((menu == null) ? 0 : menu.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MenuAccion other = (MenuAccion) obj;
if (menu == null) {
if (other.menu != null)
return false;
} else if (!menu.equals(other.menu))
return false;
return true;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
@Override
public int compareTo(MenuAccion o) {
// TODO Auto-generated method stub
return 0;
}
}
\ No newline at end of file
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Emula SesionUsuario con datos quemados
*
*/
public class SesionUsuarioMock implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6051644872747793329L;
private String perfilSeleccionado;
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Usuario getUsuario() {
Usuario u = new Usuario();
u.setNombreUsuario("username");
u.setCedula("1234567890");
return u;
}
public boolean validarAcceso(String acceso){
return true;
}
public boolean getPuedeCrear(){
return validarAcceso("c");
}
public boolean getPuedeModificar(){
return validarAcceso("m");
}
public boolean getPuedeEliminar(){
return validarAcceso("e");
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Date;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
public class UsuarioTemp implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5222814270136240276L;
private long id;
private String nombreUsuario;
private String clave;
private String cedula;
private Date fechaCreacion;
private Personal personal;
private Unidad unidad;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public Date getFechaCreacion() {
return fechaCreacion;
}
public void setFechaCreacion(Date fechaCreacion) {
this.fechaCreacion = fechaCreacion;
}
public Personal getPersonal() {
return personal;
}
public void setPersonal(Personal personal) {
this.personal = personal;
}
public Unidad getUnidad() {
return unidad;
}
public void setUnidad(Unidad unidad) {
this.unidad = unidad;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validadores implements Serializable{
/**
*
*/
private static final long serialVersionUID = -817588918225390437L;
private String sucesos = " ";
public static final int NUMERO_DE_PROVINCIAS = 24;
public boolean isNumeric(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un numero");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isString(String entrada){
Pattern patron = Pattern.compile("[^a-zA-Z .]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es una cadena de caracteres");
return false;
}
}catch (Exception e) {
return false;
}
}
public boolean isCedula(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
int prov = Integer.parseInt(entrada.substring(0,2));
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 10) {
this.setSucesos("Cdula incompleta");
return false;
}else if(entrada.length() > 10){
this.setSucesos("Cdula incorrecta");
return false;
}else if(!((prov > 0) && (prov <= NUMERO_DE_PROVINCIAS))) {
this.setSucesos("Cdula incorrecta");
return false;
}
return true;
}
else{
this.setSucesos("No es una cedula");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isRuc(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
if (entrada.length() != 13) {
this.setSucesos("Ruc incompleto");
return false;
}else
return true;
}
else{
this.setSucesos("No es RUC");
return false;
}
}catch (Exception e) {
this.setSucesos("No es RUC");
return false;
}
}
public boolean isMail(String entrada){
Pattern patron = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)*[a-zA-Z0-9]@[a-zA-Z]*" +
"[a-zA-Z0-9].[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un mail");
return false;
}
} catch (Exception e) {
return false;
}
}
public boolean isFono(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 7 ) {
this.setSucesos("Telfono incompleto");
return false;
}else
return true;
}else{
this.setSucesos("No es un nmero vlido");
return false;
}
} catch (Exception e) {
return false;
}
}
public String getSucesos() {
return sucesos;
}
public void setSucesos(String sucesos) {
this.sucesos = sucesos;
}
}
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.VO.SesionUsuario;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class FiltroAuditoria implements Filter, Serializable {
private static final long serialVersionUID = -657388017221155722L;
private FilterConfig filterConfig;
@SuppressWarnings("unused")
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx
.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unused")
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String, String> urlNoControladas = new Hashtable<String, String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf","URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
if (!urlNoControladas.containsKey(request.getServletPath())) {
SesionUsuario su = (SesionUsuario) session
.getAttribute("sesionUsuario");
Enumeration<String> nombreParametros = request.getParameterNames();
while (nombreParametros.hasMoreElements()) {
String nombreParametro = nombreParametros.nextElement();
if (!nombreParametro.equals("javax.faces.ViewState")) {
String valor = request.getParameter(nombreParametro);
if (valor.length() > 200) {
valor = valor.substring(0, 200);
}
}
} }
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.faces.application.ResourceHandler;
import ec.edu.epn.seguridad.VO.SesionUsuario;
public class FiltroAutorizacion implements Filter, Serializable {
/**
*
*/
private static final long serialVersionUID = -4266992020481797282L;
/**
*
*/
private FilterConfig filterConfig;
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String,String> urlNoControladas = new Hashtable<String,String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf", "URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
urlNoControladas.put("/seguridad/cerrarSesion", "URL cierre sesion");
String uri = ((HttpServletRequest) request).getRequestURI();
if (urlNoControladas.containsKey(request.getServletPath())){
chain.doFilter(request,response);
}else{
SesionUsuario su = (SesionUsuario) session.getAttribute("sesionUsuario");
Map<String,String> opciones = su.getOpciones();
if(opciones!=null && opciones.containsKey(request.getServletPath())){
String accesos = opciones.get(request.getServletPath());
request.setAttribute(SesionUsuario.NOMBRE_VARIABLE_ACCESOS,accesos);
chain.doFilter(request,response);
}else if(uri.startsWith(request.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) || uri.startsWith(request.getContextPath())){
chain.doFilter(request, response);
}else{
RequestDispatcher rd = request.getRequestDispatcher("/seguridad/noAutorizado.jsf");
rd.forward(request,response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
}
package ec.edu.epn.seguridad.servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CerrarSesion extends HttpServlet {
private static final long serialVersionUID = -8108914910223133525L;
public void service(ServletRequest req,ServletResponse resp) {
//Obteniendo las URLs de los parmetros de contexto de web.xml
String urlAplicacion = getServletContext().getInitParameter("urlAplicacion");
String urlLogout = getServletContext().getInitParameter("urlLogout");
HttpServletRequest request = (HttpServletRequest)req;
HttpSession session = request.getSession();
HttpServletResponse response = (HttpServletResponse)resp;
session.invalidate();
try {
//Redireccionando de vuelta a la aplicacin
//una vez cerrada la sesin
response.sendRedirect(urlLogout+"?service="+urlAplicacion);
}catch(Exception e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment