--- title: "カスタムユーザーバリデーション" url: https://docs.catalyst.zoho.com/ja/sdk/java/v1/cloud-scale/authentication/custom-user-validation/ description: "このページでは、Catalyst Authenticationを使用してJavaアプリケーションに新しいエンドユーザーを追加するメソッドについて、サンプルコードスニペットとともに説明します。" last_updated: 2026-03-24T12:08:39Z service: Cloud Scale type: general related_links: - name: "Authentication" url: /ja/cloud-scale/help/authentication/introduction --- # Custom User Validation Catalyst Authenticationでは、Catalystアプリケーションへのサインアップ時に、カスタムの[Basic I/O関数](https://docs.catalyst.zoho.com/ja/serverless/help/functions/basic-io/)を使用してエンドユーザーを認可・検証できます。この関数を通じて、ユーザーが提供する認証情報を独自のロジックで処理し、アプリケーションへのアクセスを許可できます。 [Custom User Validation](https://docs.catalyst.zoho.com/ja/cloud-scale/help/authentication/whitelisting/custom-user-validation/introduction/)関数のサンプルコードを以下に示します。 #### サンプルコードスニペット **Package Imports** ```java 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`を使用したロジックを示しています。ユーザーが許可されていないメールアドレスでサインアップしようとした場合、サインアップは許可されません。 ```java 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`形式でユーザーの詳細を渡します: ```json { "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" } } ```