0

フォームベースのセキュリティを活用する必要のあるWebアプリケーションの設定がTomcat 7にあります。このWebアプリケーションでは、org.tuckey.web.filters.urlrewrite.UrlRewriteFilterを使用してURLを書き換えます。私は、Webアプリケーションにアクセスしようとすると、セキュリティはバイパスされUrlRewriteFilterがFORM認証で間違ったlogin.htmlページにリダイレクトされる

<security-role> 
    <role-name>foo.pr</role-name> 
</security-role> 

<security-constraint> 
    <display-name>Security Constraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>Protected Area</web-resource-name> 
     <!-- Define the context-relative URL(s) to be protected --> 
     <url-pattern>/*</url-pattern> 
     <!-- If you list http methods, only those methods are protected --> 
    </web-resource-collection> 
    <auth-constraint> 
     <!-- Anyone with one of the listed roles may access this area --> 
     <role-name>all.foo</role-name> 
    </auth-constraint> 
    <!-- <user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> --> 
</security-constraint> 

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>Authentication</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> 

<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    <init-param> 
    <param-name>confReloadCheckInterval</param-name> 
    <param-value>60</param-value> <!-- -1, 0, or something like 60 --> 
    </init-param> 
    <init-param> 
    <param-name>logLevel</param-name> 
    <param-value>INFO</param-value> 
    </init-param> 
    <init-param> 
    <param-name>statusEnabledOnHosts</param-name> 
    <param-value>localhost, 192.168.188.*</param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

、およびlogin.htmlファイルがUrlRewriteFilterを通過さ:

参考のために、ここで私のwebapps/.../WEB-INFディレクトリにweb.xmlファイルの関連部分です。私はこの振る舞いを望まない。 webapps/ROOTにあるlogin.htmlファイルを取得します。

これに関するガイダンスは本当に感謝しています。私は何か基本的なことを誤解しているかもしれません。他のファイルを参照する必要がある場合は、私に知らせてください。

ありがとうございます!

答えて

0

これはの完全なの回答ではありませんが、それは私の問題を解決しました。

URLが書き換えられる前にユーザーをlogin.htmlファイルに移動させる方法を理解するのにかなりの間苦労しましたが、わかりませんでした。ですから、私が代わりに行ったのは、URLRewriter設定ファイルのlogin.htmlファイルとerror.htmlファイルの例外を追加して、書き直されないようにすることです。

私はまだ、ウェブアプリがフィルタではなくセキュリティにユーザーを送信すると思っていますが、私が得ることができるものを取り上げます。

関連する問題