Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

Configurar la función Basic I/O

Ahora, comenzaremos a codificar la aplicación del portal de autorización configurando el componente de función.

El directorio de la función, (functions/authorization_portal_function), contiene:

  • El archivo principal de la función Custom_User_Validation.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 una entrada JSON a la función de Custom User Validation.
  • La función está codificada para implementar una lógica personalizada en base a la cual el usuario final será autenticado o denegado.
Nota: Para los propósitos de este tutorial, hemos codificado una lógica para la función Custom User Validation donde si el proveedor de correo electrónico del usuario es cualquiera que no sea Zylker Technology (@zylker.com), el usuario final no podrá registrarse en la aplicación. Puedes usar la misma o codificar una lógica 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 elección para trabajar con los archivos de la aplicación.

Nota: Por favor, revisa el código en esta sección para asegurarte de que lo comprendes completamente.
Custom_User_Validation_Java.java
copy
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 ha pasado 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 sobrescribir 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.");
}   
}
}

View more

Nota: También puedes usar este SDK para codificar tu propia lógica personalizada en lugar de la implementada anteriormente.

El directorio de la función está ahora configurado. Ahora podemos proceder a configurar el directorio del client.

Última actualización 2026-03-20 21:51:56 +0530 IST