ポータルサーバーという名前に縛られてしまうと、ポータル構築の案件だけにしか、適用できないような印象を与えてしまう気がするけど、実際にはポータル構築案件でなくても、ウェブアプリ開発でユーザー認証・管理が必要な案件に対して、適用すれば、ポータルサーバーを適用するメリット(ユーザー管理作り必要はなく、ポータル機能をそのまま利用して、開発で楽をできる)はあると思う。多くの場合、ウェブアプリでユーザー管理は必要になると思うので、適用範囲は広い(はず?)です。そんな感じで、ポータルサーバーという名前にとらわれず、ユーザー管理とか作るので楽をしたいなら、PALポータルとか利用していただければ、と思う今日この頃であります 🙂
カテゴリー: Jetspeed
デコレータ内でポートレットを直接呼び出す
ポートレットをレイアウトポートレットで管理されているところ以外に表示する方法について。tigrisレイアウトデコレータでやっているけど、レイアウトデコレータで(たとえば、header.vm などに)
$jetspeed.renderPortletEntity("theClock","j2-admin::DateTimePortlet")
というように記述すると、ポートレットを貼り付けることができる。ただし、一時的なフラグメントを生成して、表示するためか、フォームの送信などのアクションを処理することはできない。つまり、単純にポートレットを描画だけしたいときなどに利用可能。
認証まわりの話
Jetspeed2 のユーザー認証まわりの話をまとめておく。J2 では、ユーザーの認証・承認にJAASの仕組みを使っているけど、デフォルトのログイン関係で呼ばれるのは、org.apache.jetspeed.security.impl.DefaultLoginModule になる。っで、誰がこのモジュールを使えと指定しているかというと、jetspeed-securityコンポーネントに入っている login.conf です。その中には、
Jetspeed { org.apache.jetspeed.security.impl.DefaultLoginModule required; };
と書いてある。このファイルの指定方法だけど、-Djava.security.auth.login.config=login.conf とかで指定する場合もあるが、J2 ではorg.apache.jetspeed.security.impl.AuthenticationProviderImplが
System.setProperty("java.security.auth.login.config", loginConfigUrl.toString());
を呼んで、設定しています。ここでいうloginConfigUrl.toString()っていうのは、クラスローダーのリソースから解決され、ファイル名自体は、このコンポーネントは、Spring で new されるから、WEB-INF/assembly/security-providers.xml で変更可能(試したことはないけど)。まぁ、わざわざ変えなくても、WEB-INF/classesにlogin.conf を置いて、モジュールを設定すればそれに切り替わるはず。