私はJSPで安全なログインを設計しています。フォーム認可を使用してWebsphere上のアプリケーションにアクセスする予定です。基本的な考え方は、ドメイン内の認証された内部のユーザーがページにアクセスすると、通常どおりになります。ただし、外部ユーザーがアクセスしようとすると、ログインページ、Active Directoryとのインターフェイス、および正しい認証時にページにリダイレクトされます。JSPとWebsphereによる安全なログイン
私は動作させるために、組み込みの "j_security_check"サーブレットでフォーム認証を許可するようにWeb.xmlを変更しようとしました。ログインすると、ユーザーに「こんにちは!」と挨拶します。単純な関数を使用してください。<%request.getRemoteUser()%>または<%request.getUserPrincipal()。getName()%>
はexamples found hereに基づいて、私は以下のように私のWeb.xmlの詳細を変更:私のlogin.jspの下
<welcome-file-list>
<welcome-file>/protected/index.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<url-pattern>/protected/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>users</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>Administrator</description>
<role-name>admin</role-name>
</security-role>
<security-role>
<description>Users</description>
<role-name>users</role-name>
</security-role>
、私はで伐採を行う簡単なフォームを持っている
。私のindex.jspの下では、単純なリクエストでユーザに挨拶します。
<body>
Hello, <% request.getRemoteUser(); %>
Hello, <% request.getUserPrincipal().getName(); %>
</body>
私はここで3つの問題に直面しています。重要度はそのままランク付けされています。
1)エラー403 リダイレクトとログインページが機能します。 index.jspにアクセスしようとすると、login.jspにリダイレクトされます。誤ったuid:pwdのペアを入力すると、error.jspが表示されます。私が正しくログインすると、私はindex.jspにリダイレクトされますが、で迎えられます。エラー403:ウェブサイトにログインする必要があります。以前は組み込みのスヌープページにアクセスできなかったのでログインしていると確信していますが、ログイン後は可能です。私はそれが私のweb.xmlにいくつかの設定
2)であっても、web.xmlのすべての保護を無効にしたindex.jspにアクセスする際、ユーザーのID を取得している疑いがある、私はヌル」こんにちは、で迎えています! 「こんにちは、ユーザー!」の代わりに「」と入力してください。 index.jspに示されているコードは、インターネット上にあるsnoopサンプルコードからコピーしたものです。 request.getRemoteUser()は私のindex.jspでは動作しませんが、スヌープページで動作します。リクエストを実行する前に私が電話していないものがなければなりませんか?
3)セキュリティ(重要ではない) このj_security_checkはSpring Securityの下にあると思います。私は、トランスポートチャネルと同様に、送信側と受信側の両方を暗号化しようとしています。これは、認証のために、パスワードをクリアテキストで送信または保存しないでください。私はsome information hereを見つけたので、この認証プロセスを保護しようとしました。
私が直面しているトップ3の問題に関して、いくつかのガイダンスと助けに感謝します。私は事を終わらせることに近いと感じていますが、それはとても近いですが、これまでのところです。