2009年2月26日木曜日

java:正規表現でbasic認証のurlを解析

先日'ユーザー名:パスワード@'のついたURLを解析してBasic認証を通過するというのをjavaで書いたので覚書。この形式でBasic認証通過するのはどうやらブラウザ側の機能みたいですね。微妙にマッチが適当です。'/'で閉じてないホスト名だけのurlにもマッチしません。マッチして正当性を確かめると同時に部品にも分割してるのでちょっと便利。
String cbUrl = "https://abcde:beg@hoge.com/aaa.php";
final Pattern analyzeBasicAuth =
Pattern.compile("^(http.*?://)(.+?:)(.+?@)(.+?/)(.*)");
Matcher match = analyzeBasicAuth.matcher(cbUrl);
if(match.find()){
String username_ = match.group(2);
String password_ = match.group(3);
final String username = username_.substring(0, username_.length()-1);
final String password = password_.substring(0, password_.length()-1);
System.out.println("'"+username + "''"+ password+"'");
System.out.println(match.group(1)+match.group(4)+match.group(5));
}

0 件のコメント:

コメントを投稿