diff --git a/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java index 5cd585ce9..c006a8243 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java @@ -78,7 +78,8 @@ public class UsuarioServiceImpl implements UsuarioService, UserDetailsService { if (senha != null) { // validación complejidad contrasena if (ApplicationProperties.getInstance().contrasenaValidaComplejidad()) { - ContrasenaUtileria.validarContrasenaCompleja(senha); + ContrasenaUtileria contrasenaUtileria = new ContrasenaUtileria(); + contrasenaUtileria.validarContrasenaCompleja(senha); } // encriptación contrasena @@ -139,7 +140,8 @@ public class UsuarioServiceImpl implements UsuarioService, UserDetailsService { if (senha != null) { // validación complejidad contrasena if (ApplicationProperties.getInstance().contrasenaValidaComplejidad()) { - ContrasenaUtileria.validarContrasenaCompleja(senha); + ContrasenaUtileria contrasenaUtileria = new ContrasenaUtileria(); + contrasenaUtileria.validarContrasenaCompleja(senha); } // encriptación contrasena diff --git a/src/com/rjconsultores/ventaboletos/utilerias/seguridad/ContrasenaUtileria.java b/src/com/rjconsultores/ventaboletos/utilerias/seguridad/ContrasenaUtileria.java index 0f8efc513..e81d7b1d5 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/seguridad/ContrasenaUtileria.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/seguridad/ContrasenaUtileria.java @@ -7,14 +7,34 @@ import java.util.regex.Pattern; import com.rjconsultores.ventaboletos.exception.BusinessException; public class ContrasenaUtileria { - private static final int CANT_MIN_CARACTER = 8; - private static final int CANT_MIN_NUMERO = 1; - private static final int CANT_MIN_LETRA = 1; - private static final int CANT_ESPECIALES = 2; + private int CANT_MIN_CARACTER = 6; + private int CANT_MIN_NUMERO = 1; + private int CANT_MIN_LETRA = 1; + private int CANT_ESPECIALES = 0; + + private Pattern patternHayNumero = null; + private Pattern patternHayLetra = null; + private Pattern patternHayEspeciales = null; + + public ContrasenaUtileria(){ + this.cargarPattern(); + } - private static Pattern patternHayNumero = Pattern.compile(".*[0-9]+.*"); - private static Pattern patternHayLetra = Pattern.compile(".*[a-zA-Z]+.*"); - private static Pattern patternHayEspeciales = Pattern.compile(".*[^\\w]+.*[^\\w]+.*"); + private void cargarPattern(){ + patternHayNumero = Pattern.compile(String.format(".*[0-9]{%s,}+.*",CANT_MIN_NUMERO)); + patternHayLetra = Pattern.compile(String.format(".*[a-zA-Z]{%s,}+.*",CANT_MIN_LETRA)); + patternHayEspeciales = Pattern.compile(String.format("((.*[\\W]){%s,})",CANT_ESPECIALES)); + + } + + public ContrasenaUtileria(int cantMinCaracteres,int cantMinNumeros,int cantMinLetra,int cantEspeciales){ + CANT_ESPECIALES = cantEspeciales; + CANT_MIN_CARACTER = cantMinCaracteres; + CANT_MIN_LETRA = cantMinLetra; + CANT_MIN_NUMERO = cantMinNumeros; + + this.cargarPattern(); + } public static String encriptarContrasena(String contrasena){ MessageDigest md; @@ -27,7 +47,7 @@ public class ContrasenaUtileria { byte[] pass = md.digest(contrasena.getBytes()); return Base64.byteArrayToBase64(pass); } - public static void validarContrasenaCompleja(String contrasena) throws BusinessException{ + public void validarContrasenaCompleja(String contrasena) throws BusinessException{ int length = contrasena.length(); if (length< CANT_MIN_CARACTER){ @@ -46,24 +66,6 @@ public class ContrasenaUtileria { throw new BusinessException("complejidadContrasena.CANT_ESPECIALES", new Object[]{CANT_ESPECIALES}); } } -// public static void main(String args[]){ -// System.out.println(ContrasenaUtileria.encriptarContrasena("gleimar")); -// -// LabelLocator teste = new LabelLocator() { -// -// @Override -// public URL locate(Locale arg0) throws Exception { -// return new File("E:/scia_ventaboletos_transpais_senda/sco/AdmVenta/Web/trunk/ventaboletos/web/WEB-INF/i3-label_pt_BR.label").toURI().toURL(); -// } -// }; -// Labels.register(teste); -// try { -// ContrasenaUtileria.validarContrasenaCompleja("asdfasdf1@@"); -// System.out.println("ok"); -// } catch (BusinessException e) { -// System.out.println(e.getLocalizedMessage()); -// } -// -// } + }