学習目的で、ローカル環境で開発したアプリケーションで SSL を使用したいと考えています。
したがって、すべての接続がsslを通過するようにします。
Glassfish 4.0 でこれを実装するにはどうすればよいですか?
JAAS フォーム認証の使用例を次に示します。
web.xml では、次のコード ブロックで、SSL を有効にする URL を定義します。
<login-config>
<auth-method>FORM</auth-method>
<realm-name>userauth</realm-name>
<form-login-config>
<form-login-page>/login.jsf</form-login-page>
<form-error-page>/loginError.jsf</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>ConstraintSSL</display-name>
<web-resource-collection>
<web-resource-name>protected</web-resource-name>
<description/>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>HEAD</http-method>
<http-method>PUT</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
次に、アプリケーション サーバー (glassfish) で、この例の認証レルム "userauth" を構成します。
create-auth-realm --classname com.sun.enterprise.security.ee.auth.realm.jdbc.JDBCRealm
--property jaas-context=jdbcRealm:datasource-jndi=oracleXE10gJDBCResource:user-
table=TB_USER:user-name-column=ID_USER:password-column=PASSWORD:group-
table=TB_USER_GROUP_USER:group-name-column=ID_GROUP:group_table_user-name-
column=ID_GROUP:digest-algorithm=MD5 userauth
この例では、"TB_USER" という名前のユーザー テーブルに MD5 暗号化パスワードを使用して JDBC ベースのレルムをグループ テーブル名とともに作成しました。独自の認証レルムを作成できます。ファイル、jdbc、またはその他の JAAS タイプにすることができます (特定のものごとに JAAS doc を参照してください)。
これで、アプリのすべてのリクエストで SSL が使用されます。
Glassfish は SSL ポート (デフォルトは 8181) にリダイレクトし、ブラウザにはデフォルトの SSL 信頼証明書警告ウィンドウが表示され (自己署名証明書を使用している場合)、接続を信頼するかどうかを尋ねられます。 SSL モードで正しくレンダリングされたページ - https
Glassfish 管理コンソールに移動し、サーバー設定 --> ネットワーク リスナーに移動します。そこで、SSL を使用するようにリスナーを設定できます。デフォルトでは、管理コンソール用の 4848、一般的な http リスニング用の 8080、および安全な http リスニング用の 8181 の 3 つのリスナーがあります。ここでできることはいくつかあります
リスナーの SSL を有効にするか、リスナー チェックのセキュリティ オプションを編集するには
リスナーを無効にするには、チェックを外します
[SSL] タブで SSL 情報を入力します