--- title: "Configurar la función Basic I/O" url: https://docs.catalyst.zoho.com/es/tutorials/hosted-login-app/java/configure-function/ description: "Crea una aplicación Basic o React con Catalyst Hosted Authentication que ofrece registro, inicio de sesión, restablecimiento de contraseña e inicio federado." last_updated: 2026-11-04T10:10:44Z service: All Services type: tutorial related_links: - name: "Basic I/O Functions" url: /es/serverless/help/functions/basic-io/ - name: "Functions Directory Structure" url: /es/cli/v1/project-directory-structure/functions-directory --- # Configurar la función Ahora comenzaremos a codificar la aplicación del portal de autorización configurando el componente de función. El [directorio de la función](https://docs.catalyst.zoho.com/es/cli/v1/project-directory-structure/functions-directory), (`functions/authorized_portal_app`), contiene: * El archivo principal de la función `Custom_User_Validation_Java.java` * El archivo de configuración `catalyst-config.json` * Archivos de biblioteca Java en el directorio `lib` * Archivos de dependencias `.classpath` y `.project` Agregarás código en el archivo `Custom_User_Validation_Java.java`. La función Basic I/O contiene las siguientes funcionalidades: * Los detalles del usuario final se proporcionarán como entrada JSON a la función de *Custom User Validation*. * La función está codificada para implementar una lógica personalizada basada en la cual el usuario final será autenticado o denegado. > **Nota:** Para los fines de este tutorial, hemos codificado una lógica para la función de Custom User Validation donde si el proveedor de correo electrónico del usuario es cualquier otro que no sea Zylker Technology (`@zylker.com`), el usuario final no podrá registrarse en la aplicación. Puedes usar la misma lógica o codificar una de tu preferencia. Ahora comencemos a codificar la función Basic I/O. Copia el código proporcionado a continuación y pégalo en el archivo `Custom_User_Validation_Java.java` en el directorio `functions/authorization_portal_function` de tu proyecto, y guarda el archivo. Puedes usar cualquier IDE de tu preferencia para trabajar con los archivos de la aplicación. > **Nota:** Por favor, revisa el código de esta sección para asegurarte de que lo comprendes completamente. **Custom_User_Validation_Java.java** ```java import com.catalyst.Context; import com.catalyst.basic.BasicIO; import com.catalyst.basic.ZCFunction; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.logging.Logger; import java.util.logging.Level; import com.zc.api.APIConstants.ZCSignupValidationStatus; import com.zc.common.ZCProject; import com.zc.component.auth.ZCSignupResponseUserDetails; import com.zc.component.auth.ZCSignupUserValidationRequest; import com.zc.component.auth.ZCSignupUserValidationResponse; import com.zc.component.users.ZCSignupUserService; public class Custom_User_Validation_Java implements ZCFunction { private static final Logger LOGGER = Logger.getLogger(Custom_User_Validation_Java.class.getName()); @Override public void runner(Context context, BasicIO basicIO) throws Exception { try { ZCProject.initProject(); ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO); if(requestDetails != null) { ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance(); if(requestDetails.getUserDetails().getEmailId().contains("@zylker.com")) { validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // El usuario no pasó la autenticación } else { // Las acciones que ocurren en caso de una autenticación exitosa se pueden personalizar validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setRoleIdentifier("App User"); // Si deseas anular el rol predeterminado, puedes especificar el id/nombre del rol aquí. validationResponse.setUserDetails(respUserDetails); } basicIO.setStatus(200); basicIO.write(new ObjectMapper().writeValueAsString(validationResponse)); } } catch(Exception e) { LOGGER.log(Level.SEVERE,"Exception in Custom_User_Validation_Java",e); basicIO.setStatus(500); basicIO.write("An error has occured. Please try again after sometime."); } } } ``` > **Nota:** También puedes usar este [SDK](https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/authentication/custom-user-validation/) para codificar tu propia lógica personalizada en lugar de la implementada anteriormente. El directorio de la función ya está configurado. Ahora podemos proceder a configurar el directorio client.