0

Tomcat 7 で実行している Web アプリがあり、https と適切なポートを直接使用して、SSL とフォームベースの認証を正常に機能させることができました。ただし、ログイン ページに SSL を要求したいのですが、Web アプリのルートに移動すると、これが機能しないようです。たとえば、そこに行くとhttp://localhost:8080/ProjectManagementSystem/login.htmlSSL にリダイレクトされますが、に行くとそうでhttp://localhost:8080/ProjectManagementSystemはありません。後者はログイン ページにリダイレクトされますが、SSL に変更されません。

ログインページを独自のディレクトリに移動せずにこれは可能ですか (この質問のように)?

関連する web.xml の部分は次のとおりです。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>PMS</web-resource-name>
        <url-pattern>/login.html</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<login-config>
        <auth-method>FORM</auth-method>
        <realm-name>ProjectManagementSystem</realm-name>
        <form-login-config>
                <form-login-page>/login.html</form-login-page>
                <form-error-page>/error.html</form-error-page>
        </form-login-config>
</login-config>

さまざまな構成を試しました (例: / のような追加の URL パターンを追加する) が、Web アプリのルートに移動したときにリダイレクトするものを取得できません。これが不可能なのか、それとも単に間違っているのかを教えていただければ幸いです。ありがとう。

ETA: 実際に先に進み、login.html を login/login.html に移動して変更しようとしましたが<url-pattern>/login/*</url-pattern>、まだ機能しません。だから私は何か間違ったことをしているに違いないと思いますが、私の人生では何を理解することはできません.

ETA2: 私も試し<url-pattern>/*</url-pattern>てみましたが、どれもうまく<url-pattern>*</url-pattern>いき<url-pattern>*.html</url-pattern>ませんでした...

ETA3: web.xml の別の部分と競合する場合に備えて、web-resource-name も変更しようとしましたが、それでもうまくいきませんでした。私はアイデアがありません。

4

2 に答える 2

4

これをJBOSS7.1.1で次のように機能させました。

 <security-constraint>
     <web-resource-collection>
         <web-resource-name>*</web-resource-name>
         <url-pattern>/logon.jsp</url-pattern>
         <url-pattern>/logonReconnect.jsp</url-pattern>
         <url-pattern>/logoff.do</url-pattern>
     </web-resource-collection>
    <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>

たとえば、standalone.xmlのSSL構成とともに、ログオンを許可する3つのページがありました。これにより、ログオンページとセッションにSSLが強制されますが、他のコンテンツに制約はありません。これは、すべてのコンテンツに制約を課すとアクティブコンテンツ(ホットスポット)が無効になるというIE8以前の一種の奇妙な問題に対処するためでした。

于 2012-12-11T08:16:26.540 に答える