Configure the Function
Now, we will begin coding the authorization portal application by configuring the function component.
The function’s directory, (functions/authorization_portal_function), contains:
- The CustomUserValidationFunc.java main function file
- The catalyst-config.json configuration file
- Java library files in the lib directory
- .classpath and .project dependency files
You will be adding code in the CustomUserValidationFunc.java file.
The Basic I/O function contains the following functionalities:
- The end-user’s details will provided as a JSON input to the Custom User Validation function.
- The function is coded to implement a custom logic based upon which the end-user will either be authenticated or denied.
Now, let’s begin coding the Basic I/O function.
Copy the code given below and paste it in the CustomUserValidationFunc.java file in the functions/authorization_portal_function directory of your project, and save the file. You can use any IDE of your choice to work with the application’s files.
CustomUserValidationFunc.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); // The user has failed authentication } else { // The actions that occur in the event of a successful authentication can be customized validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance(); respUserDetails.setRoleIdentifier("App User"); // If you want to override the default role, you can specify the role id/name here. 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."); } } }
The function directory is now configured. We can now proceed to configuring the client directory.
Last Updated 2024-02-10 13:06:26 +0530 +0530