Tomcat 6.0 サーバーで Drools Guvnor を実行していますが、認証が正しく機能するのが最悪です。これは小さな会社のためのものなので、私は多くのユーザーを必要とせず、LDAP は非常にやり過ぎです (そして、お尻のとてつもない苦痛と伝えられています)。私が最初に考えたのは、何らかのツールを備えた JAAS に関連付けることでした。残念ながら、Tomcat で JAAS を使用するために私が見つけた手順の表と裏を作ることはできません。私の読書によると、ステップ 1 は「独自の JAAS 実装を作成する」ことであり、これは明らかに正気ではありません。(Tomcat について何も知らず、サーバー管理全般についてもあまり知らないということは、おそらく役に立たないでしょう。)
だから、JAAS を台無しにして、Tomcat の組み込みの基本認証を使用するだけで、さまざまなユーザーにさまざまなアクセス許可を与えることを忘れると私は言いました。もちろん、基本的な HTTP 認証は通常はひどいアイデアですが、サーバーはオフィス外からのアクセスをブロックするファイアウォールの背後にあるため、それで十分なはずです。だから私は何人かのユーザーをに追加しtomcat-users.xml
、それからクラックして開いweb.xml
てこれを追加しました:
<security-role>
<role-name>manager</role-name>
</security-role>
<security-role>
<role-name>guvnor</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Guvnor web app</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Whole Guvnor app</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
<role-name>guvnor</role-name>
</auth-constraint>
</security-constraint>
試行錯誤が必要でしたが、うまくいったようです。Web アプリにアクセスすると、ユーザー名とパスワードのチャレンジが発生し、ログインが機能し、すべてが問題ないように見えました。ただし、1 つの大きな問題がありました。KnowledgeAgent
私のルール エンジンの実装では、パッケージ化されたルールをプルダウンしようとしたときに 401 エラーが発生し始めました。もちろん、使用しているのユーザー名とパスワードをChangeSet.xml
有効なものに変更しましたが、それでも機能しませんでした。
私の知る限り、Tomcat が好むユーザー名/パスワードを使用すると、GuvnorDemoAuthenticator
はそれらを見て、ユーザー名とパスワードが同じではないことに気づき、アクセスを拒否します。beans.xml
loading と思われる行がありますDemoAuthenticator
が、コメントアウトしても何も起こらないようです。(これが Web アプリで発生しない理由はわかりません。) 私が思いついたもう 1 つの可能性はbasicAuthentication
、username
、 、およびpassword
URL にユーザー名とパスワードを追加しても、認証が送信されないということです。 Tomcat が基本 HTTP 認証として認識する形式。違いを見分ける方法がよくわかりません。この時点で、自分が何を間違っているのかわかりません。また、自分が間違っていることを理解するために何をすべきかわかりません。誰かアドバイスはありますか?