Interstage Application Server アプリケーション作成ガイド (コンポーネントトランザクションサービス編) |
目次
索引
![]() ![]() |
第5章 Interstageの特徴的な機能 | > 5.4 認証オブジェクトを使用するアプリケーションの作成 |
認証オブジェクトは、CORBAアプリケーションとして提供されるため、認証オブジェクトを使用するアプリケーションは、CORBAサービスを初期化する必要があります。
CORBAサービスの初期化の方法については、“アプリケーション作成ガイド(CORBAサービス編)”の、各プログラミング言語のクライアントアプリケーションの作成についての記述を参照してください。
ネーミングサービスから、ASOのオブジェクトリファレンスを獲得します。各アプリケーションが使用する認証オブジェクトのネーミングサービスへの登録名からASOのオブジェクトリファレンスを獲得します。
認証オブジェクトを使用するアプリケーションは、利用者からの処理要求に対して、利用者の認証のために、認証オブジェクトに認証依頼を行います。
認証オブジェクトによる認証ではユーザ識別子による認証とユーザ名による認証の二種類があります。
ユーザの識別子により、認証オブジェクトに認証依頼を行うには、InfoDirectoryに登録したユーザの識別名(DN)とパスワードを指定する必要があります。このため、認証依頼を行うアプリケーションは、利用者からユーザの識別名を決定する情報とパスワードを入手する必要があります。そして、アプリケーションは、入手した情報からInfoDirectoryに登録したDNとパスワードを構成して、認証オブジェクトに認証依頼を行います。
ユーザのDNには1023バイト以内の文字列が使用可能です。パスワードには128バイト以内の文字列が使用可能です。ただし、パスワードにはASCIIコード系の文字以外は使用できません。
認証依頼は、認証オブジェクトのauth_check()オペレーションにより行います。
ユーザ名により認証のオブジェクトに認証依頼を行うには、認証オブジェクトのauth_check2()オペレーションにより行います。この場合ユーザ名には64バイト以内のASCII文字列が使用可能です。パスワードには64バイト以内の以内のASCII文字列が使用可能です。
日本語を含むユーザ識別名を使用して認証依頼する場合、OD_CODE_SETによりクライアント側で使用するコード系を設定する必要があります。
各言語での使用方法を以下に示します。
以降の使用方法で示すプログラミング例は、簡単化のため、エラー処理は省略しています。認証オブジェクトの各オペレーションの呼び出しはCORBAアプリケーションのオペレーション呼び出しとなるため、復帰値の判定の前に例外処理が必要です。CORBAのクライアントアプリケーションでの例外処理については、“アプリケーション作成ガイド(CORBAサービス編)”のクライアントアプリケーションの例外処理を参照してください。
CORBAサービスのクライアントアプリケーションのプログラミング例を示します。
ユーザDNおよびパスワードをプログラム固定としています。通常は、クライアントプログラム利用者からの入力となります。
ユーザの識別子による認証の場合
C言語
void main(int argc, char **argv) { CORBA_Environment CoENV; CORBA_Object CoOBJ; /* ASO の OR */ CORBA_long ret; CORBA_string userDN; CORBA_string password; CORBA_ORB orb; CORBA_BOA boa; CosNaming_NamingContext cos_naming; CosNaming_Name name; CosNaming_NameComponen name_component; int current_argc = argc; /* ユーザ識別名とパスワードの例 */ char *userDNdata = "cn=xyz,ou=dev,o=ABC,c=jp"; char *passworddata = "aaaa"; orb = CORBA_ORB_init(¤t_argc, argv, FJ_OM_ORBid, &CoEnv ); boa = CORBA_ORB_BOA_init(orb, ¤t_argc,argv,CORBA_BOA_OAid, &CoEnv); cos_naming = CORBA_ORB_resolve_initial_references(orb, CORBA_ORB_ObjectId_NameService, &CoEnv); name._length = name._maximum = 1; name._buffer = &name_component; name_component.id = "ISTD::ASO"; name_component.kind = ""; CoOBJ = CosNaming_NamingContext_resolve(cos_naming,&name, &CoEnv); userDN = CORBA_string_alloc(strlen(userDNdata)+1); password = CORBA_string_alloc(strlen(passworddata)+1); strcpy(userDN,userDNdata); strcpy(password,passworddata); /* 認証オブジェクトへの認証依頼。*/ ret = ISTD_ASO_auth_check( CoOBJ, userDN, password, &CoENV ); CORBA_free(userDN); CORBA_free(password); if(ret == ISTD_ASO_OK) { /* 認証OK時の処理 */ } else { /* 認証NG時の処理 */ } |
void main(int argc, char **argv) { CORBA::ORB_ptr orb; CORBA::BOA_ptr boa; CosNaming::Name_ptr name; CosNaming::NameComponent name_component; CosNaming::NameComponent_var ncvar; CORBA::Environment env; ISTD::ASO_ptr aso_ptr; // ASOのOR CORBA::ULong ret; CORBA::Char *userDN; CORBA::Char *password; CORBA::Long result; orb = CORBA::ORB_init( current_argc, argv, FJ_OM_ORBid, env ); boa = orb->BOA_init( current_argc, argv, CORBA_BOA_OAid, env ); CORBA::Object_ptr obj = orb->resolve_initial_references( CORBA_ORB_ObjectId_NameService, env ); CosNaming::NamingContext_ptr NamingContext_obj= CosNaming::NamingContext::_narrow( obj ); CORBA::release( obj ); name_component.id = (const char *)"ISTD::ASO"; name_component.kind = (const char *)""; ncvar = name_component; name = new CosNaming::Name(1, 1, &ncvar); obj = NamingContext_obj->resolve( *name, env ); CORBA::release( NamingContext_obj ); aso_ptr = ISTD::ASO::_narrow( obj ); // ユーザ識別名とパスワードの例 char *userDNdata = "cn=xyz,ou=dev,o=ABC,c=jp"; char *passworddata = "aaaa"; userDN = CORBA::string_alloc(strlen(userDNdata)+1); password = CORBA::string_alloc(strlen(passworddata)+1); strcpy(userDN,userDNdata); strcpy(password,passworddata); // 認証オブジェクトへの認証依頼 result = aso_ptr->auth_check(userDN, password, env ); CORBA::string_free( userDN ); CORBA::string_free( password ); // 認証結果の判定 if(result == 0) { // 認証成功時の処理 } else { // 認証失敗時の処理 } |
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. ARGUMENT-NUMBER IS ARG-C ARGUMENT-VALUE IS ARG-V SYMBOLIC CONSTANT COPY SYMBOL-CONST IN CORBA. . WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB. 01 COPY BOA IN CORBA REPLACING CORBA-BOA BY BOA. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY A-RESULT. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY NUM. 01 COPY BOOLEAN IN CORBAREPLACING CORBA-BOOLEAN BY RET. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY I. 01 BUFFER USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY BUF-LENGTH. 01 STR-BUF PIC X(30). 01 COPY COSNAMING-NAMINGCONTEXT IN CORBA REPLACING COSNAMING-NAMINGCONTEXT BY COS-NAMING. 01 COPY COSNAMING-NAME IN CORBA REPLACING COSNAMING-NAME BY NAME. 01 NAME-A USAGE POINTER. 01 COPY COSNAMING-NAMECOMPONENT IN CORBA REPLACING COSNAMING-NAMECOMPONENT BY NAME-COMPONENT. 01 NAME-COMPONENT-A USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY CURRENT-ARG-C. 01 CURRENT-ARG-V. 02 FILLER OCCURS 6. 03 CURRENT-ARG-V-VALUE USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY TMP-STRING-LEN. 01 TMP-STRING-VA PIC X(50). 01 USERDN-P USAGE IS POINTER. 01 PASSWORD-P USAGE IS POINTER. PROCEDURE DIVISION. ACCEPT CURRENT-ARG-C FROM ARG-C. COMPUTE CURRENT-ARG-C = CURRENT-ARG-C + 1. PERFORM VARYING ARG-COUNT FROM 1 BY 1 UNTIL ARG-COUNT > CURRENT-ARG-C IF ARG-COUNT = 1 MOVE APLI-NAME TO TMP-STRING-BUF ELSE ACCEPT TMP-STRING-BUF FROM ARG-V END-IF MOVE FUNCTION LENG (TMP-STRING-BUF) TO STRING-LENGTH CALL "CORBA-STRING-SET" USING CURRENT-ARG-V-VALUE (ARG-COUNT) STRING-LENGTH TMP-STRING-BUF END-PERFORM. SET CURRENT-ARG-V-VALUE (ARG-COUNT) TO NULL. MOVE 12 TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH FJ-OM-ORB-ID. CALL "CORBA-ORB-INIT" USING CURRENT-ARG-C CURRENT-ARG-V TEMP-BUF ENV ORB. CALL "CORBA-FREE" USING TEMP-BUF. MOVE 15 TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-BOA-OA-ID. CALL "CORBA-ORB-BOA-INIT" USING ORB CURRENT-ARG-C CURRENT-ARG-V TEMP-BUF ENV BOA. CALL "CORBA-FREE" USING TEMP-BUF. MOVE FUNCTION LENG ( CORBA-ORB-OBJECTID-NAMESERVICE ) TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-ORB-OBJECTID-NAMESERVICE. CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING ORB TEMP-BUF ENV COS-NAMING. CALL "CORBA-FREE" USING TEMP-BUF. MOVE FUNCTION LENG (STR-BUF) TO STRING-LENGTH. MOVE "ISTD::ASO" TO STR-BUF. CALL "CORBA-STRING-SET" USING IDL-ID OF NAME-COMPONENT STRING-LENGTH STR-BUF. MOVE " " TO STR-BUF. CALL "CORBA-STRING-SET" USING KIND OF NAME-COMPONENT STRING-LENGTH STR-BUF. MOVE 1 TO SEQ-LENGTH OF NAME. MOVE 1 TO SEQ-MAXIMUM OF NAME. MOVE 1 TO NUM. CALL "CORBA-SEQUENCE-COSNAMING-NAMECOMPONENT-ALLOCBUF" USING SEQ-MAXIMUM OF NAME SEQ-BUFFER OF NAME. MOVE FUNCTION ADDR ( NAME ) TO NAME-A. MOVE FUNCTION ADDR ( NAME-COMPONENT ) TO NAME-COMPONENT-A. CALL "CORBA-SEQUENCE-ELEMENT-SET" USING NAME-A NUM NAME-COMPONENT-A. CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING COS-NAMING NAME ENV OBJ. *--- ユーザ識別名とパスワードの例 MOVE "cn=xyz,ou=dev,o=ABC,c=jp" TO TMP-STRING-VA. MOVE FUNCTION LENG(TMP-STRING-VA) TO TMP-STRING-LEN. CALL "CORBA-STRING-SET" USING USERDN-P TMP-STRING-LEN TMP-STRING-VA. MOVE "aaaa" TO TMP-STRING-VA. MOVE FUNCTION LENG(TMP-STRING-VA) TO TMP-STRING-LEN. CALL "CORBA-STRING-SET" USING PASSWORD-P TMP-STRING-LEN TMP-STRING-VA. *--- 認証オブジェクトへの認証依頼 CALL "ISTD-ASO-AUTH-CHECK" USING OBJ USERDN-P PASSWORD-P ENV A-RESULT. CALL "CORBA-FREE" USING USERDN-P. CALL "CORBA-FREE" USING PASSWORD-P. IF A-RESULT = 0 THEN *--- 認証成功時の処理 ELSE *--- 認証失敗時の処理 END-IF. |
org.omg.CORBA.ORB Orb; // ORB用オブジェクトリファレンス ISTD.ASO aso; int res; // ユーザ識別名とパスワードの例 String userDN = new String("cn=xyz,ou=dev,o=ABC,c=jp"); String password = new String("aaaa"); Orb = CORBA.ORB.init( arg, "FJ OM ORBid" ); CORBA.String NSname= new CORBA.String(Orb.ObjectId_NameService); CORBA.Object _tmpObj = Orb.resolve_initial_references(NSname); Cos = CosNaming.NamingContext_var.narrow(_tmpObj); CosNaming.Istring NCid = new CosNaming.Istring("ISTD::ASO"); CosNaming.Istring NCkind = new CosNaming.Istring(""); CosNaming.Name NCo = new CosNaming.Name(2); NCo.value[0] = new CosNaming.NameComponent( NCid, NCkind ); Obj = Cos.resolve( NCo ); aso = ISTD.ASO_var.narrow(Obj); // 認証オブジェクトへの認証依頼 try { res = aso.auth_check(userDN,password); }catch( Exception e ) { System.out.println("auth_check error."); return; } if(res == 0) { // 認証成功時の処理 } else { // 認証失敗時の処理 } |
void main(int argc, char **argv) { CORBA_Environment CoENV; CORBA_Object CoOBJ; /* ASO の OR */ CORBA_long ret; CORBA_ORB orb; CORBA_BOA boa; CosNaming_NamingContext cos_naming; CosNaming_Name name; CosNaming_NameComponent name_component; int current_argc = argc; CORBA_long ret; CORBA_string username; CORBA_string password; CORBA_string userbaseDN;
orb = CORBA_ORB_init(¤t_argc, argv, FJ_OM_ORBid, &CoEnv ); boa = CORBA_ORB_BOA_init(orb, ¤t_argc,argv,CORBA_BOA_OAid, &CoEnv); cos_naming = CORBA_ORB_resolve_initial_references(orb, CORBA_ORB_ObjectId_NameService, &CoEnv); name._length = name._maximum = 1; name._buffer = &name_component; name_component.id = "ISTD::ASO"; name_component.kind = ""; CoOBJ = CosNaming_NamingContext_resolve(cos_naming,&name, &CoEnv); username = CORBA_string_alloc(strlen(usernamedata)+1); password = CORBA_string_alloc(strlen(passworddata)+1); userbaseDN = CORBA_string_alloc(strlen(userbaseDNdata)+1); strcpy(username,usernamedata); strcpy(password,passworddata); strcpy(userbaseDN,userbaseDNdata); /* 認証オブジェクトへの認証依頼。*/ ret = ISTD_ASO_auth_check2( CoOBJ, username, password, userbaseDN, &CoENV ); CORBA_free(username); CORBA_free(password); CORBA_free(userbaseDN); if(ret == ISTD_ASO_OK) { /* 認証OK時の処理 */ } else { /* 認証NG時の処理 */ } |
void main( int argc, char *argv[] ){ CORBA::ORB_ptr orb; CORBA::BOA_ptr boa; CosNaming::Name_ptr name; CosNaming::NameComponentname_component; CosNaming::NameComponent_var ncvar; CORBA::Environment env; ISTD::ASO_ptr aso_ptr; // ASOのOR CORBA::ULong ret; CORBA::Char *username; CORBA::Char *password; CORBA::Char *userbaseDN; CORBA::Long result; // ユーザ名とパスワードの例 char *usernamedata = "taro"; char *passworddata = "aaaa"; char *userbaseDNdata = "ou=dev,o=ABC,c=jp"; orb = CORBA::ORB_init( current_argc, argv, FJ_OM_ORBid, env ); boa = orb->BOA_init( current_argc, argv, CORBA_BOA_OAid, env ); CORBA::Object_ptr obj = orb->resolve_initial_references( CORBA_ORB_ObjectId_NameService, env ); CosNaming::NamingContext_ptr NamingContext_obj= CosNaming::NamingContext::_narrow( obj ); CORBA::release( obj ); name_component.id = (const char *)"ISTD::ASO"; name_component.kind = (const char *)""; ncvar = name_component; name = new CosNaming::Name(1, 1, &ncvar); obj = NamingContext_obj->resolve( *name, env ); CORBA::release( NamingContext_obj ); aso_ptr = ISTD::ASO::_narrow( obj ); username = CORBA::string_alloc(strlen(usernamedata)+1); password = CORBA::string_alloc(strlen(passworddata)+1); userbaseDN = CORBA::string_alloc(strlen(userbaseDNdata)+1); strcpy(username,usernamedata); strcpy(password,passworddata); strcpy(password,userbaseDNdata); // 認証オブジェクトへの認証依頼 result = aso_ptr->auth_check2(username, password, userbaseDN, env ); CORBA::string_free( username ); CORBA::string_free( password ); CORBA::string_free( userbaseDN ); // 認証結果の判定 if(result == 0) { // 認証成功時の処理 } else { // 認証失敗時の処理 } |
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. ARGUMENT-NUMBER IS ARG-C ARGUMENT-VALUE IS ARG-V SYMBOLIC CONSTANT COPY SYMBOL-CONST IN CORBA. . WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB. 01 COPY BOA IN CORBA REPLACING CORBA-BOA BY BOA. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY A-RESULT. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY NUM. 01 COPY BOOLEAN IN CORBAREPLACING CORBA-BOOLEAN BY RET. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY I. 01 BUFFER USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY BUF-LENGTH. 01 STR-BUF PIC X(30). 01 COPY COSNAMING-NAMINGCONTEXT IN CORBA REPLACING COSNAMING-NAMINGCONTEXT BY COS-NAMING. 01 COPY COSNAMING-NAME IN CORBA REPLACING COSNAMING-NAME BY NAME. 01 NAME-A USAGE POINTER. 01 COPY COSNAMING-NAMECOMPONENT IN CORBA REPLACING COSNAMING-NAMECOMPONENT BY NAME-COMPONENT. 01 NAME-COMPONENT-A USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY CURRENT-ARG-C. 01 CURRENT-ARG-V. 02 FILLER OCCURS 6. 03 CURRENT-ARG-V-VALUE USAGE POINTER. 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY TMP-STRING-LEN. 01 TMP-STRING-VA PIC X(50). 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY TMP-STRING-LEN. 01 USERNAME-P USAGE IS POINTER. 01 PASSWORD-P USAGE IS POINTER. 01 USERBASEDN-P USAGE IS POINTER. PROCEDURE DIVISION. ACCEPT CURRENT-ARG-C FROM ARG-C. COMPUTE CURRENT-ARG-C = CURRENT-ARG-C + 1. PERFORM VARYING ARG-COUNT FROM 1 BY 1 UNTIL ARG-COUNT > CURRENT-ARG-C IF ARG-COUNT = 1 MOVE APLI-NAME TO TMP-STRING-BUF ELSE ACCEPT TMP-STRING-BUF FROM ARG-V END-IF MOVE FUNCTION LENG (TMP-STRING-BUF) TO STRING-LENGTH CALL "CORBA-STRING-SET" USING CURRENT-ARG-V-VALUE (ARG-COUNT) STRING-LENGTH TMP-STRING-BUF END-PERFORM. SET CURRENT-ARG-V-VALUE (ARG-COUNT) TO NULL. MOVE 12 TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH FJ-OM-ORB-ID. CALL "CORBA-ORB-INIT" USING CURRENT-ARG-C CURRENT-ARG-V TEMP-BUF ENV ORB. CALL "CORBA-FREE" USING TEMP-BUF. MOVE 15 TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-BOA-OA-ID. CALL "CORBA-ORB-BOA-INIT" USING ORB CURRENT-ARG-C CURRENT-ARG-V TEMP-BUF ENV BOA. CALL "CORBA-FREE" USING TEMP-BUF. MOVE FUNCTION LENG ( CORBA-ORB-OBJECTID-NAMESERVICE ) TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-ORB-OBJECTID-NAMESERVICE. CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING ORB TEMP-BUF ENV COS-NAMING. CALL "CORBA-FREE" USING TEMP-BUF. MOVE FUNCTION LENG (STR-BUF) TO STRING-LENGTH. MOVE "ISTD::ASO" TO STR-BUF. CALL "CORBA-STRING-SET" USING IDL-ID OF NAME-COMPONENT STRING-LENGTH STR-BUF. MOVE " " TO STR-BUF. CALL "CORBA-STRING-SET" USING KIND OF NAME-COMPONENT STRING-LENGTH STR-BUF. MOVE 1 TO SEQ-LENGTH OF NAME. MOVE 1 TO SEQ-MAXIMUM OF NAME. MOVE 1 TO NUM. CALL "CORBA-SEQUENCE-COSNAMING-NAMECOMPONENT-ALLOCBUF" USING SEQ-MAXIMUM OF NAME SEQ-BUFFER OF NAME. MOVE FUNCTION ADDR ( NAME ) TO NAME-A. MOVE FUNCTION ADDR ( NAME-COMPONENT ) TO NAME-COMPONENT-A. CALL "CORBA-SEQUENCE-ELEMENT-SET" USING NAME-A NUM NAME-COMPONENT-A. CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING COS-NAMING NAME ENV OBJ. *--- ユーザ名とパスワードの例 MOVE "taro" TO TMP-STRING-VA. MOVE FUNCTION LENG(TMP-STRING-VA) TO TMP-STRING-LEN. CALL "CORBA-STRING-SET" USING USERNAME-P TMP-STRING-LEN TMP-STRING-VA. MOVE "aaaa" TO TMP-STRING-VA. MOVE FUNCTION LENG(TMP-STRING-VA) TO TMP-STRING-LEN. CALL "CORBA-STRING-SET" USING PASSWORD-P TMP-STRING-LEN TMP-STRING-VA. MOVE "ou=dev,o=ABC,c=jp" TO TMP-STRING-VA. MOVE FUNCTION LENG(TMP-STRING-VA) TO TMP-STRING-LEN. CALL "CORBA-STRING-SET" USING USERBASEDN-P TMP-STRING-LEN TMP-STRING-VA. *--- 認証オブジェクトへの認証依頼 CALL "ISTD-ASO-AUTH-CHECK2" USING OBJ USERNAME-P PASSWORD-P USERBASEDN-P ENV A-RESULT. CALL "CORBA-FREE" USING USERNAME-P. CALL "CORBA-FREE" USING PASSWORD-P. CALL "CORBA-FREE" USING USERBASEDN-P. IF A-RESULT = 0 THEN *--- 認証成功時の処理 ELSE *--- 認証失敗時の処理 END-IF. |
org.omg.CORBA.ORB Orb; // ORB用オブジェクトリファレンス ISTD.ASO aso; int res; Orb = CORBA.ORB.init( arg, "FJ OM ORBid" ); CORBA.String NSname= new CORBA.String(Orb.ObjectId_NameService); CORBA.Object _tmpObj = Orb.resolve_initial_references(NSname); Cos = CosNaming.NamingContext_var.narrow(_tmpObj); CosNaming.Istring NCid = new CosNaming.Istring("ISTD::ASO"); CosNaming.Istring NCkind = new CosNaming.Istring(""); CosNaming.Name NCo = new CosNaming.Name(2); NCo.value[0] = new CosNaming.NameComponent( NCid, NCkind ); Obj = Cos.resolve( NCo ); aso = ISTD.ASO_var.narrow(Obj); // ユーザ名とパスワードの例 String username = new String("taro"); String password = new String("aaaa"); String userbaseDN = new String("ou=dev,o=ABC,c=jp"); // 認証オブジェクトへの認証依頼 try { res = aso.auth_check2(username,password,userbaseDN); }catch( Exception e ) { System.out.println("auth_check2 error."); return; } if(res == 0) { // 認証成功時の処理 } else { // 認証失敗時の処理 } |
目次
索引
![]() ![]() |