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.
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.
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.");
}
}
}
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