問題の概要:以前のバージョンの Service Registry (Java ES 2005Q4 以降) をインストールして使用していた場合で、Application Server の Java ES 5 バージョンにアップグレードしたが、Service Registry の Java ES 5 バージョンにはアップグレードしていない場合は、Web コンソールで以前に作成したのと同じ証明書を使用しようとするとログインの失敗が発生します。
対処方法:web.xml ファイルと Service Registry のセキュリティーポリシーファイルを編集します。
Registry の Application Server ドメインを停止し、web.xml ファイルを編集するには、次の手順に従います。
Service Registry のインストールディレクトリに移動します。
Solaris OS の場合: cd /opt/SUNWsoar/install
Linux および HP-UX システムの場合: cd /opt/sun/SUNWsoar/install
Registry の Application Server ドメインを停止します。
Ant-base/ant -f build-install.xml appserver.domain.stop
ディレクトリ RegistryDomain-base /domains/registry/applications/j2ee-modules/soar/WEB-INF/ に移動します。
テキストエディタで、ファイル web.xml を開きます。
<security-constraint> タグ内の、</web-resource-collection> タグのあとに、次の行を挿入します。
<auth-constraint> <role-name>have.client.cert</role-name> </auth-constraint>
</security-constraints> タグのあとに、次の行を挿入します。
<error-page> <error-code>400</error-code> <location>/registry/thin/AuthenticateError.jsp</location> </error-page> <security-role> <description>all subjects who have client certificates</description> <role-name>have.client.cert</role-name> </security-role>
web.xml ファイルを保存して閉じます。
セキュリティーポリシーファイルを編集して、ドメインを再起動するには、次の手順に従います。
次のディレクトリに移動します。
Solaris OS の場合: cd /var/opt/SUNWsoar/domains/registry/config
Linux および HP-UX システムの場合: cd /var/opt/sun/SUNWsoar/domains/registry/config
テキストエディタで、ファイル server.policy を開きます。
このファイルに次の許可を追加します。
grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/soar/WEB-INF/lib/-"{ permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; }; grant codeBase "file:${com.sun.aas.instanceRoot}/generated/jsp/j2ee-modules/soar/-" { permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; };
server.policy ファイルを保存して閉じます。
Registry の Application Server ドメインを再起動します。
Ant-base/ant -f build-install.xml appserver.domain.start
Web ブラウザを開き、URL http://localhost:6060/soar を表示します。ログインして発行できるようになっているはずです。