JavaEEの終焉と、OSS主導への回帰


ここ数日、DIをめぐるダブルスタンダードが取りざたされていますが、
これらを見るとどうもJCPを主体とした組織による仕様規定とOSSの回帰が見受けられます。


率直に言えば、これはJavaEEの終焉の始まりなのかもしれません。
そもそも、火種はたくさんありました。

続きを読む

T2サンプルでOpenIDを使ったサンプルを追加しました


OpenIDの仕組みに興味が会ったので、T2でOpenIDを使った認証のサンプルを作りました。
OpenIDのリクエスト部分としては、openid4javaを使いました。


今のところ一番簡易な認証だけなので、本当はもう少しやり取りが必要かもしれませんが
少なくともWebフレームワークなんだし、OpenIDとのインテグレーション入れてみようと思った次第です。


サンプルを一番下にはります。
authenticateRequestメソッドがユーザから呼び出されるメソッドです。
わたってくるパラメータはOpenIDの認証先です。例えば、myname.openid.ne.jpみたいな感じ。
authenticateRequestメソッドの中ではOpenId認証局に行ったあとのコールバックする先を指定します。
ttp://localhost:8080/t2-samples/openid/acceptのようなURLにコールバックして欲しいので
下記のようにします。
それがauthenticateRequestメソッドの下記の部分です。

		String returnToUrl = request.getRequestURL().append("/accept")
				.toString();


ttp://localhost:8080/t2-samples/openid/acceptに対応するPageクラスのアクションメソッドを作ります。
メソッドはURLにそのままひもづかせたいので、acceptメソッドとして、以下のような感じになります。

OpenIDからのコールバックの結果をverifyResponseメソッドで検査してます。

	@GET
	@ActionPath
	public Navigation accept(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		Identifier identifier = null;
		try {
			identifier = this.verifyResponse(req);
		} catch (OpenIDException ex) {
			logger.debug(ex.getMessage());
		}
		logger.debug("identifier: " + identifier);
		if (identifier == null) {
			return Forward.to("/jsp/openid.jsp");
		} else {
			req.setAttribute("identifier", identifier.getIdentifier());
			return Forward.to("/jsp/openidResult.jsp");
		}
	}


重要なのは、verifyResponseメソッドで呼び出しているConsumerManager#verify(String receivingUrl, ParameterList response, DiscoveryInformation discovered)です。
こいつで実際にOpenIDで接続許可がとれたかどうか、その認証は期限内かどうかなどを見ています。
もっと突き詰めていけば色々出来そうですが、T2のリリースも迫っているのでこの辺にしておきます。
また今度見直してみます。



ソース全文は下記からどうぞ。

続きを読む