Interstage Application Server Smart Repository運用ガイド |
目次
索引
![]() ![]() |
第2章 機能 | > 2.4 エントリ管理 |
コマンド、SDKで、DNに特殊文字を指定するには、その特殊文字の前に“\”(エンマーク)を置いてエスケープする必要があります。
エスケープが必要な特殊文字を以下に示します。
エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。
cn=a\b,o=Fujitsu, Inc.,c=jp
コマンドの場合
コマンドの場合は、特殊文字をエスケープし、さらに、その特殊文字を含む属性値を"(ダブルクォーテーション)で囲む必要があります。
cn="a\\b",o="Fujitsu\, Inc.",c=jp
SDK(C API)の場合
LDAP、C言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。
“\”を含むcn属性を指定するとします。
a\b
LDAPの規約により“\”をエスケープする必要があります。
cn=a\\b
C言語の仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。
char *name1 = "cn=a\\\\b";
同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。
char *name2 = "cn=a\\,b"; char *name3 = "cn=a\\\"b";
最初の例をC言語で使用する場合は、次のように記述します。
char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";
SDK(JNDI)の場合
JNDIは注意が必要です。
LDAP、JNDI、Java言語それぞれで、\(エンマーク(バックスラッシュ))文字を特殊文字と扱うためです。いくつか例を示します。
\を含むcn属性を指定するとします。
a\b
LDAPの規約により\をエスケープする必要があります。
cn=a\\b
JNDIの仕様により、この名前を指定するために、それぞれの\をエスケープする必要があります。
cn=a\\\\b
Java言語の仕様により、この名前を文字列リテラルとして指定するために、それぞれの\をエスケープする必要があります。
String name1 = "cn=a\\\\\\\\b";
同様に、,(カンマ)、"(ダブルクォーテーション)の場合はそれぞれ次のようになります。
String name2 = "cn=a\\\\,b"; String name3 = "cn=a\\\\\"b";
最初の例をJNDIで使用する場合は、次のように記述します。
String name = "cn=a\\\\\\\\b,o=Fujitsu\\\\, Inc.,c=jp";
目次
索引
![]() ![]() |