miércoles, abril 15, 2015

Ejemplo de como se utiliza y usa recaptcha v2 con Java

Para poder utilizar recaptcha de Google en una págia web bajo Java, se ha de tener que seguir los siguientes pasos:

1) Autenticarse en Google e ir a la siguiente página:

https://www.google.com/recaptcha/admin#list

Donde tendremos que dar de alta nuestra página web.

2) Guardamos las Clave del Sitio y la Clave Secreta, la usaremos más tarde.

3) Montamos el formulario con el captcha, para ello:
Deberemos de pegar este fragmento antes de la etiqueta
de cierre en la plantilla HTML:

<script src="https://www.google.com/recaptcha/api.js"> </script>

Pega este fragmento dentro del elemento <form> exactamente donde quieras que aparezca el widget de reCAPTCHA:
<div class="g-recaptcha" data-sitekey="Clave del Sitio"> </div>

Ejemplo de JSP con un formulario que usa recaptcha v2:

<html> 
<head> 
         <script src="https://www.google.com/recaptcha/api.js"> </script> 
</head> 

<% 
String clavePublica = "XXXXXXXXXXXXXXXXXXX"; // Es la Clave del Sitio
%>

<body>
    <h1>Test recaptcha v2 con Java</h1> 
    <form action="Controller.jsp" method="get">
          Campo Texto: <input name="texto" placeholder="Campo cualquiera" type="text" /> 
          <div class="g-recaptcha" data-sitekey="<%=clavePublica%>"></div> 
           <button type="submit"> Enviar</button> 
    </form> 
</body>
</html>
 4) Montamos el controlador para verificar si se supera el captcha o no:
Una vez que recojamos todos los parámetros del formulario, veremos que aparece uno nuevo "g-recaptcha-response".

Para saber si el captcha se ha superado correctamente, se tendrá que llamar a la siguiente url (método get), pasándole los siguientes parámetros:

URL: https://www.google.com/recaptcha/api/siteverify
secret (requerido)   La Clave Privada
response(requerido)    El valor que obtenemos en el campo "g-recaptcha-response" del formulario.
remoteip    La ip del usuario.

Un ejemplo del código de como se hace esta llamada en JSP:

<html>

<body> 

<%
String ClaveSecreta = "XXXXXXXXXXXXXXXXXX"; // Es la Clave Privada
String ipusuario = request.getRemoteAddr();
String respuestaRecaptcha = request.getParameter("g-recaptcha-response");

String line, outputString = "";
try{
    java.net.URL url = new java.net.URL
    ("https://www.google.com/recaptcha/api/siteverify?secret="+ClaveSecreta+
    "&response="+respuestaRecaptcha+"&remoteip="+ipusuario); 
    java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();
    conn.setRequestMethod("GET");

     java.io.BufferedReader reader = new java.io.BufferedReader
    (new java.io.InputStreamReader(conn.getInputStream()));

     while ((line = reader.readLine()) != null) {
        outputString += line;
        }
}
catch(Exception e){
    e.printStackTrace();
}

%>   

<h1>Test recaptcha v2 con Java - Recepción del formulario</h1> 

<h2> Datos recopilados del formulario:</h2> 

<b>Campo Texto</b>: <%= request.getParameter("texto") %>
<h2>Datos recopilados del formulario que provienen del recaptcha:</h2>

<b>Campo g-recaptcha-response</b>: <%= respuestaRecaptcha %>


<h2>Verificamos con Recaptcha si se ha superado el captcha</h2>

<b>Clave Secreta</b>: <%=ClaveSecreta%>

<b>Ip Usuario</b>: <%=ipusuario%>

<b>Respuesta bruta Json de recaptcha</b>:<%=outputString%>
</body>
</html>


Palabras y frases clave:
Como integrar recaptcha v2 de google un un formulario JSP o JAVA
Usar recaptcha con Java
Como programar un formulario Java con re-captcha
Ejemplo de un formulario JSP con captcha
Ejemplo captcha en Java


jueves, diciembre 04, 2014

Borrar ficheros en linux con un nombre dado de manera recursiva

Parar borrar una serie de ficheros en el sistema operativo linux, tenemos la siguiente directiva:

 find -type f -name *.jpg -delete;

En el ejemplo anterior se borrarán todas las imágenes jpg que esten en el directorio actual y todos sus descendientes.

Podremos cambiar *.jpg, por el patro que queramos para que se tenga en cuenta en su nombre o extensión.



Palabras clave:
Borrar ficheros recorriendos todos los subdirectorios hijos
Borrar archivos de un tipo en linux y todas las subcarpetas
Borrar ficheros con un determinado nombre en toda la subestructura de directorios y subcarpetas
Línea de comando en linux para eliminar los ficheros con un nombre o extensión determinada de forma recursiva
Borrar desde la consola ficheros o archivos de una carpeta o directorio dado y en todos sus hijos.

miércoles, septiembre 10, 2014

Buscar archivos que contengan un texto determinado en un servidor linux

Si queremos buscar todos aquellos ficheros que tengan una cadena de caracteres en concreto en un servidor linux, podemos utilizar el siguiente comando:
        grep -lr "el texto a buscar" *

Este comando recorrerá toda la estructura de subdirectorios buscando en el interior de cada fichero la cadena de caracteres introducida y nos sacará el nombre del fichero como su ubicación.

Palabras Clave:
Buscar texto en fichero bajo linux
Encontrar archivos con un texto determinado en servidores linux
Buscar de manera recursiva ficheros con un determinado texto en un servidor linux
Buscar archivos con un texto en linux
Buscar texto contenido en ficheros linux

miércoles, noviembre 09, 2011

como ver los correos del outlook dentro de una página web

A continuación se mostrará la manera para poder visualizar en un navegador web (Internet Explorer) los correos de nuestro outlook instalado en el ordenador. De esta manera se mostrarán los correos dentro de una página web.

El código sería el siguiente (utilizando active x, html):


<html>
<head>
<script>
function init(){

var oViewCtrl = document.getElementById("ViewCtlFolder");

try{
oViewCtrl.Folder="Inbox";

}
catch(e) { alert(e.message); }
}
</script>
</head>
<body>
<OBJECT classid="CLSID:0006F063-0000-0000-C000-000000000046"
id="ViewCtlFolder"
width="100%"
height="430"
codebase="http://activex.microsoft.com/activex/controls/office/outlctlx.CAB#ver=9,0,0,3203">
<param name="Namespace" value="MAPI">
<param name="Folder" value="Calendar">
<param name="View" value="Day/Week/Month View With AutoPreview">
<param name="Restriction" value="">
<param name="DeferUpdate" value="0">
</OBJECT>

<input type="button" name="btnA" value="Refresh" onclick="init()">
</body>
</html>





Palabras clave:
How to show the emails of outlook in my web page.
Recupear los correos del outlook y volcarlo en una página web.
Como sacar los correos del outlook en una página web
Como ver los correos de nuestro outlook y ponerlo en una página web.
Como recupear los correos del outlook en nuestra página web.
Como integrar nuestra página web con outlook para recuperar y mostrar los correos del usuario

como ver las tareas de outlook en internet explorer

A continuación se mostrará la manera para poder visualizar en un navegador web (Internet Explorer) las tareas anotadas en nuestro outlook instalado en el ordenador. De esta manera se mostrarán en una página web.



El código sería el siguiente (utilizando active x, html):



<html>
<head>
<script>

</head>
<body>

<OBJECT style="width:100%;height:100%" classid=CLSID:0006F063-0000-0000-C000-000000000046 name="tasks" VIEWASTEXT id=ViewCtl1 codebase="http://activex.microsoft.com/activex/controls/office/outlctlx.CAB#ver=9,0,0,3203">

<PARAM NAME="Folder" VALUE="tasks">
<PARAM NAME="Namespace" VALUE="MAPI">
<PARAM NAME="Restriction" VALUE="">
<PARAM NAME="DeferUpdate" VALUE="0">
</OBJECT>


</body>
</html>




Palabras clave:
How to obtain task of outlook in my web page.
Recupear tares del outlook y volcarlo en una página web.
Como sacar las tareas del outlook en una página web
Como ver las tareas de nuestro outlook y ponerlo en una página web.
Como recupear las tares del outlook en nuestra página web.
Como integrar nuestra página web con outlook para recuperar las tareas del usuario y mostrarlas.

miércoles, noviembre 02, 2011

Como abrir el outlook desde el navegador Internet Explorer

Internet Explorer pemite abrir programas o ejecutarlos desde una página web, para ello podremos basarnos en el siguiente código.

<html>
<head>
<script language="javascript">


function shell(command)
{
RegWsh = new ActiveXObject("WScript.Shell");
RegWsh.Run(command);
}

</script>
</head>
<body>
<input type="Button" value="OpenCalc" onclick="javascript:shell('OUTLOOK.exe');">
</body>
</html>


En el caso anterior abrimos el outlook, podemos cambiar el programa por cualquier otro, como la calculadora de windows, etc.

El problema es que el código anterior abre una ventana nueva cada vez que se pinche sobre el enlace, si queremos que en el caso de que este abierta nos la ponga en primer lugar pero que no abrá más, se pondría la siguiente linea:

RegWsh.Run('OUTLOOK.exe /recycle');

Esto sólo se ejecutará bajo Internet Explorer, ya que se usa un activeX para ejecutar programas de windows.

Palabras Clave
Ejecutar programas de windows desde Intener Explorer 7, 8, 9
¿Cómo ejecutar un ejecutable desde un navegador Web?
Quiero ejecutar un programa desde mi navegador Web.
Como abrir programas desde internet Explorer
Como abrir o ejecutar programas desde una página web.
Como ejecutar un programa de windows desde un enlace de una página web.
Como abrir mi outlook de windows (local) desde mi navegador (Internet Explorer) al navegar por una página.

miércoles, octubre 19, 2011

Como sacar el número de correos del Outlook en una página web

Si lo que necesitáis es sacar el número de correos del buzón de entrada de una cuenta de correo, se puede utilizar el siguiente código html y javascript que recupera del outlook instalado en local el número de correos, así lo podrás mostrar en una página web.



El código sería el siguiente (utilizando active x, html y javascript):



<html >
<head>
<script>
function init(){
try{

var outlookApp = new ActiveXObject("Outlook.Application");
var nameSpace = outlookApp.getNameSpace("MAPI");
var mailItem='';
mailFolder = nameSpace.getDefaultFolder(6);
mailItem = mailFolder.Items.count;
alert ("mailItem: " + mailItem);
mailNews = mailFolder.Items.Restrict("[Unread]=true");
alert ("mailNews: " + mailNews.Count);
}
catch(e) {
alert("Cliente Outlook no encontrado " + e.message);
}


}
</script>
</head>
<body onload="init()">

Pruebas acceso a MS sssssoutlook
<input type="button" name="btnA" value="Refresh" onclick="init()">
</body>
</html>


Nota.- El active x está instalado en el ordenador local si tiene el office junto con el outlook de este instalado. Sólo nos funcionará el código anterior para IE.

Palabras clave:
How to obtain number of emails of our outlook to show in a web page.
Recupear emails del outlook y volcarlo en una página web.
Como sacar los email del outlook con javascript
Como ver el número de email sin leer de nuestro outlook y ponerlo en una página web.
Como recupear el número de correos del outlook en nuestra página web.

miércoles, marzo 31, 2010

Autoejecución de un proceso (servlet) al iniciar el servidor de aplicaciones Java

En algunas ocasiones se nos ha planteado las siguientes preguntas:

¿Cómo puede hacer para que el servidor de aplicaciones tomcat ejecute un proceso java en el momento en que arranca?

Puede ser muy util, el poder lanzar un proceso java en el momento que se inicia el servidor de aplicaciones, ya que así podemos aprovechar para realizar precargas u otras tareas.

Para ello se en una de las aplicaciones desplegadas en el servidor, modificaremos el archivo web.xml.

La idea es utilizar la etiqueta , que permitirá indicar en el web.xml en que orden se cargará cada servlet.
El valor que contiene esta etiqueta es un entero positivo, que indica precisamente el orden de carga.
Cuando es cargado, el método INIT() del servlet es llamado. De todas formas este tag es una buena manera para conseguir:
• Arrancar demonios, para escuchar en puerto TCP/IP o para lanzar hilos de ejecución de mantenimiento en background.
• Para inicializar la aplicación, para proveer información a otros servletso o JSPs.
• Si no se utilizar la etiqueta , el servlet sera cargado cuando el contenedor de servlets lo decida, normalmente en el primer acceso.
Ejemplo de uso:

Definición de un servlet en el web.xml:



<servlet>
<servlet-name>JerseyTest</servlet-name>
<servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JerseyTest</servlet-name>
<url-pattern>/thing/*<url-pattern>
</url-pattern>
</url-pattern></servlet-mapping>