elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Desarrollo Web / Consulta inicio de sesión en J2EE en: 9 Enero 2014, 10:59 am
Hola,

Tengo algunas dudas sobre el inicio de sesión o Login de una aplicación que estoy haciendo.

1ª - Una vez el usuario está logeado, si se utilizán los botones de avance/retroceso del navegador el usuario sale/entra de la aplicación. ¿Cómo podria evitar eso?

2ª - Estoy utilizando para la sesion en Struts2 la interface SessionAware, aunque no se si correctamente. Utilizo una clase que llamo Login.java y ahí hago todas las tareas

Esto es parte del archivo struts.xml
Código:
!--   login action  --> 
<action name="login" class="login.action.Login">
   <result name="input" type="tiles">inicio</result>
   <result name="success" type="tiles">usuarioLayout</result>
</action>

<!--   logout action  -->
<action name="logout" class="login.action.Login" method="logout">
   <result name="success" type="tiles">inicio</result>
</action>

Estas son las tareas:

1.- Cojo el usuario y contraseña que se entra en la jsp
2.- Hago una consulta en la BBDD con hibernate para saber que existe

Parte del archivo Login.java
Código:
public String execute()  { 
         
      try {
         hibernateSession = HibernateUtil.getSessionFactory().openSession();
         hibernateSession.beginTransaction();
         
         if (usuarioForm != null && contrasenaForm != null && (!usuarioForm.equals(""))
               && (!contrasenaForm.equals(""))) {
            //Query peral usuario
            String queryUsuario = "FROM Usuario WHERE usuario='" + usuarioForm + "'AND contrasena='" + contrasenaForm + "'";
            usuario = (Usuario) hibernateSession.createQuery(queryUsuario).uniqueResult();
            session.put("loginId", usuarioForm);
             
             
         } else {
            //Acción por si el formulario està vacio
            addActionError("Debe de introducir datos");
            return INPUT;
         }
         //Acción por si no existe
         if (usuario == null)  {
            addActionError("El usuarior no existe");
            return INPUT;
         }
         
         hibernateSession.flush();
         hibernateSession.close();
      } catch (HibernateException e) {
         e.printStackTrace();
      }
       
      if (usuario != null){
         return SUCCESS;
      }


Si el usuario existe pues como en todas las páginas web puede acceder a sus datos de perfil y demás. Y me encuentro con el problema que si nada más comprobar que el usuario existe muestro los datos de perfil, es decir el model del objeto, me funciona perfectamente pero si dejo que el usuario acceda al meú y pueda elegir las diferentes opciones entre ellas ver el perfil no lo muestra y yo entiendo que debería de estar ya cargado en el contexto de Java. ¿Cómo lo podría hacer?

Saludos
2  Programación / Programación C/C++ / Consulta semáforos y señales en: 27 Diciembre 2011, 11:56 am
Hola,

Estoy usando c en linux, y estoy atascado en un ejercicio, quiero poner una alarma dentro de un semáforo
para que pasados 60 segundos mande una señal a otro semáforo y lo active poniendolo en rojo.

Saludos
3  Programación / Programación C/C++ / Procesos encadenados en: 10 Noviembre 2011, 16:06 pm
Hola,

 Tengo una consulta sobre los procesos. La siguiente función debería de capturar el resultado de un " ls | grep " y mostrarlo en un string, pero se ve por pantalla
directamente.

 Aunque soy novato en esto, veo que algo me falta, pero he hecho tantas pruebas
que ya no se que puede ser.



Citar
/* Implements numfiles request */
int do_numfiles (char *pattern)
{
   int  st1, st2;
   int p[2];
   t_string s, num0, num1;
   int ret = 0;
   t_string x;
    
     /* mensaje de echo en green */   
     sprintf (s, "%s[%d] numfiles %s %s\n", color_green, getpid (),  pattern,color_end);
    
  if (write (1, s, strlen (s)) == -1)
    return -1;

  delay ();
 
  /* cadenada con los parametros y el patterns
  sprintf(t, "grep -c %s \n", pattern);*/
 
   /* Se crea la pipe:*/
   if (pipe(p) < 0) error("Creación de la  pipe");
 
   switch (fork())
   {

      case -1: error("Fork 1");

      case 0: /* Hijo  1 –  */
      /* Redirecciona la salida hacia la pipe */

      close(1); dup(p[1]);

      /* Se cierran canales */

      close(p[0]); close(p[1]);
      
                                /* Se ejecuta el código*/

      execlp("ls", "ls", NULL);
      error("Ejecución ls");

      default:
      break;
   }

   switch (fork())
   {

      case -1: error("Fork 2");
      case 0: /* Hijo 2 */
      /* Redirecciona entrada estàndard a la pipe */

      close(0); dup(p[0]);

      /* Cierra canales */
         
      close(p[1]);close(p[0]);
               
      /* Ejecuta grep  */
         
                  execlp("grep", "grep","-c", pattern,  (char *)0);
      error("Ejecución grep");
   
      default:
      break;
   }
      
      
      read(p[1], num0, strlen(num0));
      read(p[0], num1, strlen(num1));

   /* Se cierran canales*/
      
                             close(p[0]); close(p[1]);


   /*cadena con el resultado */
   sprintf (s, "%s[%d] return code canal 0: %s  canal 1: %s \n%s",   
                color_green, getpid (), num0, num1, color_end);
   
   write(1, s, strlen(s));

   /* Espera a los hijos */

   wait(&st1);
   wait(&st2);
         

  /* Must return the number of exit */
  exit(0);
 
}

Saludos y gracias
4  Programación / Scripting / Re: comando export en: 2 Noviembre 2011, 18:17 pm
supongo que  te falta añadirlo al PATH con otro export

Código:

export MIPROGRAMA = "/home/miusuario/carpetadondeestamiprograma"
export PATH = ${MIPROGRAMA}:${PATH}

Hola,

 CCE (Corto, Conciso y Eficaz)  ;-)

Gracias
5  Programación / Scripting / comando export en: 2 Noviembre 2011, 09:55 am
Hola,

 Como novato, estoy terminando de hacer un ejercicio y sólo me falta el final.
He de hacer un export del programa que he hecho para que se pueda ejecutar sin "./"; yolo hago asi:

export variable="programa"

 Y me dice comando no encontrado.

S.O. Ubuntu 10.04.2 Desktop 64 bits
Shell: Bash
6  Programación / Programación C/C++ / Re: exec y sus derivadas en: 29 Octubre 2011, 08:34 am
Correcto, peeeero... el formato de cp es

Código
  1. cp [origen] [destino]

así que el tercer argumento a  execlp está de más (no sé que habrás querido hacer), y el último argumento, sí o sí tiene que ser (char*) 0 (un puntero a char apuntando a 0, null )
lee esto (no tenés que leerlo completo, sólo lo que compete al ejercicio):

http://pubs.opengroup.org/onlinepubs/009695399/functions/execlp.html
http://pubs.opengroup.org/onlinepubs/009695399/utilities/cp.html

Saludos.

He intentado hacer otra llamada exec fijandome en el ejemplo que me escribistes, pero me doy cuenta de que pueder ser que lo que yo prentendo hacer , como novato, no se puede. Es lo siguiente:

execlp("ls", "ls", filename, ">", otherfilename, NULL );

Saludos
7  Programación / Programación C/C++ / exec y sus derivadas en: 25 Octubre 2011, 19:34 pm
Hola,

 S.O: linux
 Ansi-C
 
 Mi consulta es que he de ejecutar desde exec o una de sus derivadas (execlp, execle, ...) el comando cp para copiar un archivo a otro.
Lo he puesto de la siguiente manera:

Código:
int copy (char *src, char *dst)
{
 ret = execlp("/bin/cp", "cp", "/home/linux/ejercicio1", (char*)src,(char*)dst)
return 0;
}

 Desde la shell creo que seria cp origen.txt destino.txt  /home/linux/ejercicio1

Saludos
8  Programación / Programación C/C++ / Re: Procesos y alarmas en: 15 Octubre 2011, 21:47 pm
prueba a quitar el pause();...

SaludOS!
Hola,

 No funciona como indicas.

Saludos
9  Programación / Programación C/C++ / Procesos y alarmas en: 15 Octubre 2011, 13:22 pm
Hola,

 Tengo este programita que deberia ser continuo, pero no veo donde puede estar el error. Genera una alarma , se ejecuta y se llama a el mimo para ejecutarse pero se queda a mitad y hace una pausa, es decir se ve (programa exited with code:0) cuando no deberia de aparecer.

/*** alm2 ***/

void error(char *m)
{
   write(2, m, strlen(m));
   write(2, "\n", 1);
   write(2, strerror(errno), strlen(strerror(errno)));
   exit(1);
}

int i,z;

void trapper(int sig)
{
   signal(sig, trapper);
   printf("RIIIIIIIIING!\n");
   execlp("./alm2","./alm2",NULL);
   exit(z);
   
}

int main(int argc, char *argv[])
{
   signal(14, trapper);
   
   switch (fork())
   {
      case -1:
         
         /* Si falla se para */
         
         error("Fork");
         
      case 0:
         z = getpid();
         printf("Identificativo de proceso: %d\n", z );
         
         for(;;)
         {
         alarm(10);
         pause();
         }
   }
}



10  Programación / Programación C/C++ / Re: Datos en variable en: 14 Octubre 2011, 19:30 pm
No hay nada mejor que dejar el codigo con la parte en la que tienes el error ;)

Este es el código, el problema lo tengo en las variables marcadas, en verde donde
funciona bien y en rojo mal:

sscanf(c_read,"%c;%03d;%02d:%02d:%02d;%02d:%02d:%02d;%50c; \n", (char*)&state, &id, &s_hour, &s_minutes,&s_seconds, &e_hour, &e_minutes, &e_seconds, date_desc);
      
/* Format to write  */
sprintf(show,"Scheduling Alarm for %d second for Appointment %d -> %02d:%02d:%02d - %02d:%02d:%02d %s\n", cita, id, s_hour, s_minutes, s_seconds, e_hour, e_minutes, e_seconds, date_desc);
 
   
/* Format to write  */
sprintf(show_starts,"Appointment %d  Starts -> %02d:%02d:%02d - %02d:%02d:%02d", id, s_hour, s_minutes, s_seconds, e_hour, e_minutes, e_seconds);

Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines