es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo validar si el usuario conectado está presente en la lista de identificadores de usuario en el archivo de propiedades.

He mencionado varios ID de usuario en un archivo de propiedades externo (por ejemplo, userId=ab123c, bv111y,…). Quiero validar el usuario conectado con esta lista y permitir el acceso a ciertas páginas JSP si el ID del usuario conectado coincide con el ID mencionado en el archivo de propiedades. Descubrí cómo validar cuando solo hay un userId en el archivo de propiedades. No estoy seguro de cómo hacerlo con múltiples usuarios. Soy nuevo en el desarrollo y la programación, así que le pido que me explique en detalle lo que debe hacerse.

Código:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String userAttuid = (String)myApp.properties.getProperty(“userId”);

String loggedUser = (String)request.getAttribute(“attuid”);

//Necesito ayuda aquí para validar múltiples usuarios
//He escrito código para un usuario

Si(loggedUser.equalsIgnoreCase(userAttuid) {

forwardToClient(“/Settings.jsp”,request,response);
}
else {

throw new exception();//cualquier excepción adecuada

}

Se agradece su ayuda, gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para validar múltiples usuarios, puede almacenar los ID de usuario como una lista separada por comas en el archivo de propiedades. Luego, puede dividir esta lista en una matriz de IDs de usuario individuales utilizando el método String.split(). Una vez que tenga la matriz de ID de usuario, puede iterar a través de ella y comparar cada ID de usuario con el ID de usuario registrado.

    Aquí está un fragmento de código actualizado que debería funcionar para múltiples usuarios:

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        String userAttuids = (String)myApp.properties.getProperty("userIds");
        String[] userIds = userAttuids.split(",");
    
        String loggedUser = (String)request.getAttribute("attuid");
    
        boolean userFound = false;
    
        for(String userId : userIds) {
            if(loggedUser.equalsIgnoreCase(userId.trim())) {
                userFound = true;
                break;
            }
        }
    
        if(userFound) {
            forwardToClient("/Settings.jsp",request,response);
        } else {
            throw new ServletException("Acceso denegado. Usuario no autorizado.");
        }
    }
    

    Tenga en cuenta que estamos utilizando una bandera booleana (userFound) para realizar un seguimiento de si encontramos un ID de usuario coincidente. Si recorremos toda la lista de ID de usuario y no encontramos una coincidencia, lanzamos una ServletException con un mensaje de error apropiado.

Comments are closed.