8

私は現在、Java EE 7、PostgreSQL、およびアプリケーション サーバー GlassFish 4 に基づく Web アプリケーションに取り組んでいます。フォーム ベースの認証を実装し、次のことを知っている URL を保護する必要があります。

  • ユーザーと役割/グループ (名前は何でも) はデータベースに保存されます。
  • アプリケーションを可能な限り「標準」にしたかった (つまり、現在 JSF と JPA を使用しており、Spring や struts のような他のフレームワークは使用していません...)

調査の結果、Java EE が JASPIC と呼ばれる標準認証メカニズムを提供していることがわかりました。そこで、私は JASPIC に焦点を当てて調査し、複数の Stackoverflow Q/A と、Arjan Tijms によって書かれたそれらの記事を読みました (Java EE に関連する Stackoverflow Q/A を、彼の回答やコメントなしで見つけることはほとんど不可能です。彼のおかげで、道) :

私の質問は次のとおりです。JASPIC を使用すると、必要なこと (フォーム認証 + ロールによる URL 制限) を実行できるようになりますか?それを使用する価値はありますか? つまり、別のメカニズムを使用する方がおそらく安全で簡単です。

Arjan Tijms はまた、JASPIC を使用するかどうかは「鶏が先か卵が先かの問題のようなもの」であり、JASPIC を安全に使用できる場合 (解決するよりも多くの問題が発生することはありません)、必要なコードの量に関係なく、次のように述べています。書くために、私は本当に「最初のニワトリの1人」になりたいです。

4

3 に答える 3

3

私は認証に JASPIC を使用していますが、JASPIC には対処しなければならない制限が 1 つあります (標準的なものが必要な場合)。Java EE 7 API 以外に依存関係を持たないように制限されています。これは、ドライバーを必要とする JDBC リソースへのアクセスが、標準で明示的に規定されている機能ではないことを意味します。

OpenID Connect の実装では、Google をセキュア ストアとして使用しました。これにより、Google ログイン フォームも表示されます。ただし、これは JASPIC を使用したより大きな例です。

自分自身で、EJB をグローバル名前空間に公開し、InitialContext を使用して EJB を取得できます。EJB リモート インターフェイス コードを 2 つの場所にコピーし、serialVersionID が両方で同じであることを確認する必要があるため、コードの重複が発生する可能性があります。EJB を使用して JPA リソースに接続し、許可データを取得できます。

考えられる他の 2 つのオプションは REST と SOAP であるため、EJB を使用します。これは、Web ポートで何かを公開し、不正アクセスを防ぐために追加の構成が必要になるか、別のシステムに配置する必要があるためです。

学習したい場合に備えて私が作成した単純な JASPIC 実装は、SiteMinder のようなより複雑なシステムとの統合を目的としたHTTP ヘッダー JASPIC モジュールです。

于 2014-10-10T03:44:06.940 に答える
-4

JASPIC についてはわかりませんが、shiro フレームワークをご覧になることをお勧めします。

最小限の構成で、投稿に基づいて必要なほとんどすべてを実行できます。

于 2014-04-24T12:28:27.457 に答える
-4

フォーム ベースの認証と承認には、JAAS が必要です。次の URL を 参照してください -リンク

于 2014-07-01T08:12:06.643 に答える