クラスSNIHostName
host_nameタイプã®ã‚µãƒ¼ãƒãƒ¼åを表ã—ã¾ã™ã€‚
TLSæ‹¡å¼µ(RFC 6066)ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³3「Server Name Indicationã€ã§èª¬æ˜Žã•れã¦ã„るよã†ã«ã€ã€ŒHostNameã€ã«ã¯ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒç†è§£ã§ãるサーãƒãƒ¼ã®å®Œå…¨ä¿®é£¾DNSホストåãŒå«ã¾ã‚Œã¾ã™ã€‚ ホストåã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸã‚µãƒ¼ãƒãƒ¼åã®å€¤ã¯ã€ASCIIエンコーディングを使用ã—ãŸãƒ‰ãƒƒãƒˆã§çµ‚ã‚らãªã„ãƒã‚¤ãƒˆæ–‡å—列ã¨ã—ã¦è¡¨ç¾ã•れã¾ã™ã€‚ ã“れã«ã‚ˆã‚Šã€RFC 5890ã§è¦å®šã•れãŸA-label(Internationalized Domain Names for Applications (IDNA)ã®æœ‰åŠ¹ãªæ–‡å—列ã®ASCII互æ›ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°(ACE)å½¢å¼)ã®ä½¿ç”¨ã«ã‚ˆã‚‹å›½éš›åŒ–ドメインå(IDN)ã®ã‚µãƒãƒ¼ãƒˆãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚
SNIHostNameオブジェクトã¯ä¸å¤‰ã§ã™ã€‚
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.8
- 外部仕様
- é–¢é€£é …ç›®:
-
コンストラクタã®ã‚µãƒžãƒªãƒ¼
コンストラクタコンストラクタ説明SNIHostName(byte[] encoded) 指定ã•れãŸã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰å€¤ã‚’使用ã—ã¦SNIHostNameを作æˆã—ã¾ã™ã€‚SNIHostName(String hostname) 指定ã•れãŸãƒ›ã‚¹ãƒˆåを使用ã—ã¦SNIHostNameを作æˆã—ã¾ã™ã€‚ -
メソッドã®ã‚µãƒžãƒªãƒ¼
修飾åã¨åž‹ãƒ¡ã‚½ãƒƒãƒ‰èª¬æ˜Žstatic SNIMatchercreateSNIMatcher(String regex) SNIHostNameã®SNIMatcherオブジェクトを作æˆã—ã¾ã™ã€‚booleanã“ã®ã‚µãƒ¼ãƒãƒ¼åを指定ã•れãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¨æ¯”較ã—ã¾ã™ã€‚ã“ã®SNIHostNameオブジェクトã®StandardCharsets.US_ASCIIæº–æ‹ ã®ãƒ›ã‚¹ãƒˆåã‚’è¿”ã—ã¾ã™ã€‚inthashCode()ã“ã®SNIHostNameã®ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰å€¤ã‚’è¿”ã—ã¾ã™ã€‚toString()ã“ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ–‡å—列表ç¾(ã“ã®SNIHostNameオブジェクトã®DNSホストåã‚’å«ã‚€)ã‚’è¿”ã—ã¾ã™ã€‚クラスjavax.net.ssl.SNIServerNameã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰
getEncoded, getType
-
コンストラクタã®è©³ç´°
-
SNIHostName
public SNIHostName(String hostname) 指定ã•れãŸãƒ›ã‚¹ãƒˆåを使用ã—ã¦SNIHostNameを作æˆã—ã¾ã™ã€‚RFC 6066ã«ã‚ˆã‚Šã€ãƒ›ã‚¹ãƒˆåã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸã‚µãƒ¼ãƒãƒ¼åã®å€¤ã¯
StandardCharsets.US_ASCIIã«æº–æ‹ ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ã€hostnameã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ»ãƒ•レンドリãªå›½éš›åŒ–ドメインå(IDN)を指定ã§ãã¾ã™ã€‚ ホストåã®ASCIIæ–‡å—ã«é–¢ã™ã‚‹åˆ¶é™(RFC 3490ã€RFC 1122ã€RFC 1123ã‚’å‚ç…§)を強制的ã«é©ç”¨ã—ã€hostnameã‚’ASCII互æ›ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°(ACE)ã«å¤‰æ›ã™ã‚‹ã«ã¯ã€æ¬¡ã®ã‚ˆã†ã«IDN.toASCII(String, int)ãŒä½¿ç”¨ã•れã¾ã™ã€‚IDN.toASCII(hostname, IDN.USE_STD3_ASCII_RULES);
hostname引数ãŒä¸æ£ã«ãªã‚‹ã®ã¯æ¬¡ã®å ´åˆã§ã™ã€‚-
hostnameãŒç©ºã§ã‚る。 -
hostnameãŒãƒ‰ãƒƒãƒˆã§çµ‚ã‚ã£ã¦ã„る。 -
hostnameãŒã€RFC 3490ä»•æ§˜ã«æº–æ‹ ã—ãŸæœ‰åйãªå›½éš›åŒ–ドメインå(IDN)ã§ãªã„。
- パラメータ:
hostname- ã“ã®ã‚µãƒ¼ãƒãƒ¼åã®ãƒ›ã‚¹ãƒˆå- スãƒãƒ¼:
NullPointerException-hostnameãŒnullã®å ´åˆIllegalArgumentException-hostnameãŒä¸æ£ã§ã‚ã‚‹å ´åˆ- 外部仕様
-
-
SNIHostName
public SNIHostName(byte[] encoded) 指定ã•れãŸã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰å€¤ã‚’使用ã—ã¦SNIHostNameを作æˆã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯é€šå¸¸ã€è¦æ±‚ã•れãŸSNIæ‹¡å¼µã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸåå‰ã®å€¤ã‚’è§£æžã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚
RFC 6066ã«ã‚ˆã‚Šã€ãƒ›ã‚¹ãƒˆåã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸåå‰ã®å€¤ã¯
StandardCharsets.US_ASCIIã«æº–æ‹ ã—ã¾ã™ã€‚ ãŸã ã—ã€SNIæ‹¡å¼µã®ä»¥å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³(RFC 4366)ã§ã¯ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸãƒ›ã‚¹ãƒˆåã¯UTF-8エンコーディングを使用ã—ãŸãƒã‚¤ãƒˆæ–‡å—列ã¨ã—ã¦è¡¨ç¾ã•れã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®è¨±å®¹ç¯„囲を拡ã’ã‚‹ãŸã‚ã€encodedå¼•æ•°ã®æ–‡å—セットã¨ã—ã¦ã€StandardCharsets.US_ASCIIã ã‘ã§ãªãStandardCharsets.UTF_8も使用ã§ãるよã†ã«ãªã£ã¦ã„ã¾ã™ã€‚encoded引数をASCII互æ›ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°(ACE)ã®ãƒ›ã‚¹ãƒˆåã«å¤‰æ›ã™ã‚‹ã«ã¯ã€IDN.toASCII(String)ãŒä½¿ç”¨ã•れã¾ã™ã€‚ã“ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’使用ã™ã‚‹ã®ã¯ã€è¦æ±‚ã•れãŸSNIæ‹¡å¼µã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸåå‰ã®å€¤ã‚’è§£æžã™ã‚‹å ´åˆã®ã¿ã«ã™ã‚‹ã“ã¨ã‚’å¼·ããŠè–¦ã‚ã—ã¾ã™ã€‚ ãれ以外ã®å ´åˆã¯ã€RFC 6066ã«æº–æ‹ ã™ã‚‹ãŸã‚ã«ã€
encoded引数ã§å¸¸ã«StandardCharsets.US_ASCIIæº–æ‹ ã®æ–‡å—セットを使用ã—ã€ãƒ›ã‚¹ãƒˆåã®ASCIIæ–‡å—ã«é–¢ã™ã‚‹åˆ¶é™(RFC 3490ã€RFC 1122ã€RFC 1123ã‚’å‚ç…§)を強制的ã«é©ç”¨ã™ã‚‹ã‹ã€ã‹ã‚りã«SNIHostName(String)を使用ã—ã¦ãã ã•ã„。encoded引数ãŒä¸æ£ã«ãªã‚‹ã®ã¯æ¬¡ã®å ´åˆã§ã™ã€‚-
encodedãŒç©ºã§ã‚る。 -
encodedãŒãƒ‰ãƒƒãƒˆã§çµ‚ã‚ã£ã¦ã„る。 -
encodedãŒStandardCharsets.US_ASCIIã¾ãŸã¯StandardCharsets.UTF_8ã«æº–æ‹ ã—ãŸæ–‡å—セットã§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¦ã„ãªã„。 -
encodedãŒã€RFC 3490ä»•æ§˜ã«æº–æ‹ ã—ãŸæœ‰åйãªå›½éš›åŒ–ドメインå(IDN)ã§ãªã„。
以é™ã®å¤‰æ›´ã‹ã‚‰ä¿è·ã™ã‚‹ãŸã‚ã«ã€
encodedãƒã‚¤ãƒˆé…列ã®ã‚¯ãƒãƒ¼ãƒ³ãŒä½œæˆã•れã¾ã™ã€‚- パラメータ:
encoded- ã“ã®ã‚µãƒ¼ãƒãƒ¼åã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れãŸãƒ›ã‚¹ãƒˆå- スãƒãƒ¼:
NullPointerException-encodedãŒnullã®å ´åˆIllegalArgumentException-encodedãŒä¸æ£ã§ã‚ã‚‹å ´åˆ- 外部仕様
-
-
-
メソッドã®è©³ç´°
-
getAsciiName
public String getAsciiName()ã“ã®SNIHostNameオブジェクトã®StandardCharsets.US_ASCIIæº–æ‹ ã®ãƒ›ã‚¹ãƒˆåã‚’è¿”ã—ã¾ã™ã€‚RFC 6066ã«ã‚ˆã‚Œã°ã€è¿”ã•れるホストåã¯ã€A-labelã‚’å«ã‚€å›½éš›åŒ–ドメインåã§ã‚ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ A-labelã®ä»•様ã®è©³ç´°ã¯ã€RFC 5890ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
- 戻り値:
- ã“ã®
SNIHostNameオブジェクトã®StandardCharsets.US_ASCIIæº–æ‹ ã®ãƒ›ã‚¹ãƒˆå - 外部仕様
-
equals
public boolean equals(Object other) ã“ã®ã‚µãƒ¼ãƒãƒ¼åを指定ã•れãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¨æ¯”較ã—ã¾ã™ã€‚RFC 6066ã«ã‚ˆã‚Œã°ã€DNSホストåã§ã¯å¤§æ–‡å—ã¨å°æ–‡å—ã¯åŒºåˆ¥ã•れã¾ã›ã‚“。 2ã¤ã®ã‚µãƒ¼ãƒãƒ¼ãƒ»ãƒ›ã‚¹ãƒˆåãŒç‰ã—ããªã‚‹ã®ã¯ã€ä¸¡è€…ã®åå‰ã‚¿ã‚¤ãƒ—ãŒåŒã˜ã§ã‚りã€ã‹ã¤å¤§æ–‡å—ã¨å°æ–‡å—を区別ã›ãšã«æ¯”較ã—ã¦ãƒ›ã‚¹ãƒˆåãŒç‰ã—ããªã‚‹å ´åˆã®ã¿ã§ã™ã€‚
- オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰:
equalsã€ã‚¯ãƒ©ã‚¹SNIServerName- パラメータ:
other- 比較ã™ã‚‹ä»–ã®ã‚µãƒ¼ãƒãƒ¼åオブジェクト。- 戻り値:
otherãŒã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¨ç‰ã—ã„ã¨ã¿ãªã•れãŸå ´åˆã«ã®ã¿true- 外部仕様
- é–¢é€£é …ç›®:
-
hashCode
public int hashCode()ã“ã®SNIHostNameã®ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰å€¤ã‚’è¿”ã—ã¾ã™ã€‚ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰å€¤ã¯ã€ã“ã®
SNIHostNameã®ãƒ›ã‚¹ãƒˆå(大文å—ã¨å°æ–‡å—を区別ã—ãªã„)を使用ã—ã¦ç”Ÿæˆã•れã¾ã™ã€‚- オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰:
hashCodeã€ã‚¯ãƒ©ã‚¹SNIServerName- 戻り値:
- ã“ã®
SNIHostNameã®ãƒãƒƒã‚·ãƒ¥ãƒ»ã‚³ãƒ¼ãƒ‰å€¤ã€‚ - é–¢é€£é …ç›®:
-
toString
public String toString()ã“ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ–‡å—列表ç¾(ã“ã®SNIHostNameオブジェクトã®DNSホストåã‚’å«ã‚€)ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®è¡¨ç¾ã®å޳坆ãªè©³ç´°ã¯æœªæŒ‡å®šã§ã‚り変更ã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™ãŒã€å…¸åž‹çš„ãªè¡¨ç¾ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
"type=host_name (0), value=<hostname>"
"<hostname>"ã¯ã€Aラベルをå«ã‚€ãƒ›ã‚¹ãƒˆåã®ASCII表ç¾ã§ã™ã€‚ ãŸã¨ãˆã°ã€æ“¬ä¼¼ãƒ›ã‚¹ãƒˆåã®æˆ»ã‚Šå€¤ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™:"type=host_name (0), value=www.example.com"
or"type=host_name (0), value=xn--fsqu00a.xn--0zwm56d"
ã“ã®è¡¨ç¾ã®å޳坆ãªè©³ç´°ã¯æœªæŒ‡å®šã§ã‚りã€å¤‰æ›´ã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
- オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰:
toStringã€ã‚¯ãƒ©ã‚¹SNIServerName- 戻り値:
- ã“ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ–‡å—列表ç¾
-
createSNIMatcher
public static SNIMatcher createSNIMatcher(String regex) SNIHostNameã®SNIMatcherオブジェクトを作æˆã—ã¾ã™ã€‚サーãƒãƒ¼ã¯ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使用ã™ã‚‹ã“ã¨ã§ã€å—入れå¯èƒ½ãª
SNIHostNameを検証ã§ãã¾ã™ã€‚ ãŸã¨ãˆã°ã€SNIMatcher matcher = SNIHostName.createSNIMatcher("www\\.example\\.com");ã“ã®å ´åˆã€ãƒ›ã‚¹ãƒˆå「www.example.comã€ãŒå—ã‘入れられã¾ã™ã€‚SNIMatcher matcher = SNIHostName.createSNIMatcher("www\\.example\\.(com|org)");ã“ã®å ´åˆã€ãƒ›ã‚¹ãƒˆå「www.example.comã€ã¨ã€Œwww.example.orgã€ãŒå—ã‘入れられã¾ã™ã€‚- パラメータ:
regex- 一致ã•ã›ã‚‹thehostname(s)を表ã™ã€Œæ£è¦è¡¨ç¾ãƒ‘ターンã€- 戻り値:
SNIHostNameã®SNIMatcherオブジェクト- スãƒãƒ¼:
NullPointerException-regexãŒnullã§ã‚ã‚‹å ´åˆPatternSyntaxException- æ£è¦è¡¨ç¾ã®æ§‹æ–‡ãŒç„¡åйãªå ´åˆ
-