シンプルなサーブレット アプリの安全な部分があり、アプリの安全な部分にパラメーターを渡す必要があります。
フロー:
- サードパーティは私のログインメカニズムを使用する必要があります (シンプルで安全なサーブレット)
- ユーザーが mycompany.com/loginApp/login?pref=1 にアクセスしようとしています。
- 「/login」URL は安全であるため、アプリ サーバーはブラウザに login.jsp にリダイレクトするように指示しますが、この時点で URL は mycompany.com/loginApp/login/login.jsp に更新されます (「? pref=1" はなくなりました)
私の web.xml のセキュリティは次のようになります。
<security-constraint>
<web-resource-collection>
<web-resource-name>Secured</web-resource-name>
<description></description>
<url-pattern>/home</url-pattern>
<url-pattern>/login</url-pattern>
<url-pattern>/jsp/apps/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>protectedlinks</description>
<role-name>protected</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>mycompany.com</realm-name>
<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>
Protected portion of site</description>
<role-name>protected</role-name>
</security-role>
ネットを見てみると、安全なコンテンツにアクセスしようとすると、AppServer が login.jsp へのリダイレクトを実際に行っているようです: http://docs.oracle.com/javaee/5/tutorial/doc/bncbe.html#bncbq
私がしたいのは、「pref = 1」が何らかの形でlogin.jspに永続化され、認証サーブレットに送信されることです(DB内のユーザーを検証します)。
これを行う方法に関するアドバイスはありますか?
UPDATE 隠しパラメータは機能しません。ブラウザーは完全なリダイレクトを実行し、すべての要求 (URL の "pref=1" パラメーターを含む) を削除しました。したがって、login.jsp のフォームに非表示のパラメーターとして含めることはできません。
UPDATE 2 「pref」変数は動的であるため、常に 1 になるとは限りません。
ありがとう、ショーン