6

Squidプロキシの背後にSpringSecurityを備えたSpring3アプリがあります。問題は、Springが内部のsquid URLのみを認識しているため、ログインが成功すると、にリダイレクトされるのではexample.com/loginなく、にリダイレクトさexample.com/homeれることinternal.example.comです。

誰かがこの状況に対処する方法を知っていますか?

私の構成:

<security:http use-expressions="true" auto-config="true">
    <security:intercept-url pattern="/" access="hasRole('ROLE_ANONYMOUS') or hasRole('ROLE_GENERAL_ADMINISTRATION')"/>
    <security:intercept-url pattern="/**" access="hasRole('ROLE_GENERAL_ADMINISTRATION')"/>
    <security:intercept-url pattern="/static/**" filters="none"/>
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/"/>
    <security:form-login login-page="/" default-target-url="/dashboard"/>
    <security:anonymous/>
</security:http>

編集:

私の場合、管理者がmod_jkを正しく設定していなかったため、squidと上記の構成ですべてが正常でした。

4

2 に答える 2

1

私はApacheHTTPリバースプロキシの背後にあるSpringセキュリティを備えたWebアプリケーションと、上記のように動作するいくつかの愚かなアプリケーションを持っています。私たちの解決策は、mod_rewriteモジュールを使用することでした。

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

とにかく、正しいSpringセキュリティ構成は相対URLを使用する必要があり、天候に関係なく、内部または外部ホストがURLで使用されるため、あなたが言っていることは非常に奇妙です。

URLを設定する場合

 <security:form-login login-page="//login.jsp" login-processing-url="/login" always-use-default-target="true"/>

内部URLでも外部URLでも同じように動作するはずですが、構成に問題があるようです。

于 2011-05-31T16:57:51.513 に答える
0

私の(現在はPHP)アプリの前にnginxリバースプロキシを使用して同様の問題がありますが、URLを修正する作業はプロキシで行うことを推奨する人もいます。 .aspx?p=169534 :

応答ヘッダーの再マッピング。応答ヘッダーには、コンテンツ Web サーバーを明示的に指す情報が含まれている場合があります。一例は、リダイレクトで使用される「Location:」ヘッダーです。リバース プロキシ サーバーは、"Location:" フィールドを再マップし、コンテンツ Web サーバーへの参照を独自のアドレスに置き換えます。

また、関連する質問に対する回答: 「Spring を使用するいくつかのサービスについて https にリダイレクトする」 .

于 2013-07-10T14:12:12.870 に答える