OpenIDつついていたり
OpenID RP的なものを作ってみたりしているけどここにソース載せていったりするのもどうだろうか。 そこまでするのも面倒か。 OpenID OPのURLを短く入力してやるとログインできるdiscoveryという仕組みなところをつくっていく。 discoveryではURLからOPのEndPointを探すのがお仕事。JavaではURLクラスがあるのだけど国際化ドメイン名やURLエンコード的なものは個別にかけてやらないといけないのでどの程度にするか悩み。あとは短めのURLを入力してリダイレクトしていくのでなんとなくHTTPもほしいところだけを実装してみる。 漢字等々が混じったURLをHTTP用に成形するのはこんなかんじにしてみた。一般的なURLに使えるでせう。 (Java) public static URI parseURI(String src) throws MalformedURLException, UnsupportedEncodingException, URISyntaxException { URL url = new URL(src); String path = url.getPath().isEmpty() ? "/" : URLDecoder.decode(url.getPath(), "utf-8"); URI uri = new URI(url.getProtocol(), url.getUserInfo(), IDN.toASCII(url.getHost()), url.getPort(), path, url.getQuery(), url.getRef()).normalize(); ...