Custom User Validation
Catalyst Authenticationでは、Catalystアプリケーションへのサインアップ時に、カスタムのBasic I/O関数を使用してエンドユーザーを認可・検証できます。この関数を通じて、ユーザーが提供する認証情報を独自のロジックで処理し、アプリケーションへのアクセスを許可できます。
Custom User Validation関数のサンプルコードを以下に示します。
サンプルコードスニペット
Package Imports
copy
import com.catalyst.Context;
import com.catalyst.basic.BasicIO;
import com.catalyst.basic.ZCFunction;
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;
バリデーションロジックはお好みに応じて設定できます。この例では、@notallowedemailを使用したロジックを示しています。ユーザーが許可されていないメールアドレスでサインアップしようとした場合、サインアップは許可されません。
copy
public class MainClass implements ZCFunction {
private static final Logger LOGGER = Logger.getLogger(MainClass.class.getName());
@Override
public void runner(Context context, BasicIO basicIO) throws Exception
{
try
{
ZCProject.initProject();
ZCSignupUserValidationRequest requestDetails = ZCSignupUserService.getSignupValidationRequest(basicIO);
if(requestDetails != null) {
/* Validation logic starts */
LOGGER.info("Inside null check");
ZCSignupUserValidationResponse validationResponse = ZCSignupUserValidationResponse.getInstance();
if(requestDetails.getUserDetails().getEmailId().contains("@notallowedmail"))
{
validationResponse.setStatus(ZCSignupValidationStatus.FAILURE); // ユーザーの認証が失敗した
}
else
{
validationResponse.setStatus(ZCSignupValidationStatus.SUCCESS); // 認証成功時に発生するアクションはカスタマイズ可能
ZCSignupResponseUserDetails respUserDetails = ZCSignupResponseUserDetails.getInstance();
respUserDetails.setFirstName("Patricial");
respUserDetails.setLastName("Boyle");
respUserDetails.setRoleIdentifier("App User");
respUserDetails.setOrgId("1241113");
validationResponse.setUserDetails(respUserDetails);
}
basicIO.write(validationResponse);
/* Validation logic ends */
}
}
catch(Exception e)
{
basicIO.write(e);
LOGGER.log(Level.SEVERE,"Exception in MainClass",e);
basicIO.setStatus(500);
}
}
}
この関数をテストするには、以下の.JSON形式でユーザーの詳細を渡します:
copy
{
"request_type": "add_user",
"request_details":
{
"user_details":
{
"email_id": "emmy@zylker.com",
"first_name": "Emma",
"last_name": "Thompson",
"org_id": "65**************",
"role_details":
{
"role_name": "Moderator",
"role_id": "10*****"
}
},
"auth_type": "web"
}
}
最終更新日 2026-03-24 17:38:39 +0530 IST
Yes
No
Send your feedback to us
Skip
Submit