Resultados 1 al 2 de 2

Tema: Control de acceso(roles) con Struts

  1. #1 Control de acceso(roles) con Struts 
    Medio
    Fecha de ingreso
    Nov 2009
    Mensajes
    62
    Descargas
    0
    Uploads
    0
    Hola, estoy realizando una aplicacion web en java, con el framework Struts, y estoy intentando usar el control de acceso que me proporciona. Quiero realizar una gestion de perfiles que ofrezca o restrinja funcionalidades dependiendo del rol del usuario autenticado.
    He probado a realizarlo para el Login.Para ello sigo los siguientes pasos:

    1)En el struts-config añado los roles que deberian tener acceso en el action Login:
    <action input="/index.jsp"
    name="LoginForm" path="/login" scope="session" roles="Administrador" validate="true" type="modelo.gestion.usuarios.LoginAction">
    <forward name="OK"
    path="/inicio/inicio.jsp">
    </forward>
    <forward name="ERROR"
    path="/index.jsp">
    </forward>
    </action>

    2)Extiendo la clase RequestProcessor sobreescribiendo ProcessRoles para realizar la validacion de que cumpla con los roles para entrar en la pagina de inicio:

    public class StrutsRequestProcessor extends RequestProcessor{

    protected boolean processRoles(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws IOException,ServletException{

    String roles[] = null;
    roles[0]="Administrador";
    if ((roles == null) || (roles.length < 1))
    {
    return true;
    }

    HttpSession ses = request.getSession();
    UsuarioBean u = (UsuarioBean)ses.getAttribute("usuario");
    System.out.println("El rol es: "+ u.getRol());

    for (int i = 0; i < roles.length; i++) {

    if (u.getRol().equals(roles[i])) {

    if (log.isDebugEnabled()) {

    log.debug(" User '" + request.getRemoteUser()

    + "' has role '" + roles[i] + "', granting access");

    }



    return (true);

    }


    }

    3)Le digo a struts que la clase que implementa la validacion de roles es la que yo he sobreescrito:

    <controller>

    <set-property property="processorClass"
    value="roles.StrutsRequestProcessor"/>

    </controller>


    Sino tengo mal entendido, estos son los pasos que hay que realizar. Sin embargo, cuando me logueo, lo haga con el rol de Administrador, o sin el rol de Administrador, me redirige a una de las paginas de error de mi proyecto, ni siquiera a la pagina de error de la accion LoginAction. Es muy raro.

    Alguien sabe si hay algun paso, que no conozco y que hay que realizar?? O si hay algo mal en mi codigo?.
    Necesito vuestra ayuda!!
    Citar  
     

  2. #2  
    Medio
    Fecha de ingreso
    Nov 2009
    Mensajes
    62
    Descargas
    0
    Uploads
    0
    Finalmente, al no saber usar el "control de acceso" del que me habian hablado,he decido usar los taglibs de Struts, que para lo que yo necesito creo que será suficiente. La mecanica sería la de guardar en sesion el rol del usuario autenticado, y mediante los taglibs de Struts(en concreto logic) muestro o no las opciones dependiendo del rol. Ej.

    <logic:equal name="usuario" property="rol" value="Administrador">

    //opcion de puede mostrarse al administrador

    </logic:equal>

    Como es logico, en la sesion guardo el objeto "usuario" completo, ademas del rol. Por tanto "usuario" seria un Bean que incluye la propiedad "rol".Cuando encuentro un usuario con la password introducida en la base de datos, tomo de la base de datos su rol, y guardo en sesion un Bean con el login y password suministrados más su rol obtenido de la base de datos.

    Espero que pueda servirle a alguien
    Última edición por luis9rs; 28-10-2010 a las 20:36
    Citar  
     

Temas similares

  1. Listas de control de acceso (ACL)
    Por LUK en el foro GENERAL
    Respuestas: 0
    Último mensaje: 04-06-2012, 10:26
  2. La seguridad en SAP - Roles y permisos
    Por LUK en el foro NOTICIAS
    Respuestas: 0
    Último mensaje: 27-01-2009, 12:24
  3. prohibir acceso a panel de control y +
    Por De pinto en el foro WINDOWS
    Respuestas: 1
    Último mensaje: 02-01-2007, 16:33
  4. control de acceso remoto extremadamente facil
    Por 40Che en el foro INTRUSION
    Respuestas: 7
    Último mensaje: 31-08-2006, 23:04
  5. Algun programa para control del acceso a internet
    Por giorgiopolat en el foro APLICACIONES
    Respuestas: 3
    Último mensaje: 21-09-2002, 19:39

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •