2011-12-15 22 views
2

私は、メイン機能のための「アプリケーション」と、ログインのための「ログイン」/パスワードの忘れ/新しいユーザ機能の登録の2つのモジュールからなるGWTアプリケーションを持っています。成功したログイン後にSpringセキュリティで他のGWTモジュールにナビゲート

私は成功したログインにApplication.htmlにユーザーをリダイレクトするために春のセキュリティを使用してい

<security:http auto-config="true"> 
    <security:intercept-url pattern="/Application.html**" access="ROLE_USER"/> 
    <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
    <security:form-login login-page="/Login.html" default-target-url="/MainApplication.html" 
     always-use-default-target="true" authentication-failure-url="/Login.html?failed=true"/> 
</security:http> 

login.htmlと、Application.htmlモジュールを介して成功したユーザ認証がロードされ、対応する要求がサーバに実行された後、ブラウザのコンテンツはそのままで、アドレスバーのURLはまだ "Login.html"です!

質問:なぜリダイレクトが発生しないのですか?

ありがとうございます!

答えて

0

SpringSecurityFilterを使用してApplication.htmlをインターセプトし、ターゲットURLがMainApplication.htmlとして指定されています。 mainApplication.htmlでは、これを置くようにしてください

 <meta http-equiv="REFRESH" content="0;url=Application.html"> 

これでApplication.htmlに戻ります。必要に応じていくつかの権限を与えることができます。また、DelegatingFilterProxyがweb.xmlに正しく設定されているかどうかを確認してください。

私の設定は以下の通りです。私は私のwelcome.jspに私のweb.xml

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

に私のjsp

<form name="login" action="<c:url value="j_spring_security_check"/>" method="POST"> 

にGWTアプリ

を使用

<sec:authorize ifAnyGranted="<%=gRoles%>">  
    <meta http-equiv="REFRESH" content="0; url=demoApp/demoApp.jsp"> 
</sec:authorize> 

春-のsecurity.xml

<http auto-config="false" access-denied-page="/login.jsp?error=Access%20Denied"> 
    <intercept-url pattern="/login.jsp*" filters="none" /> 
    <intercept-url pattern="/demoApp/**" access="${app.roles}" /> 

    <form-login login-page="/login.jsp" 
       default-target-url="/welcome.jsp" 
       always-use-default-target="true" 
       authentication-failure-url="/login.jsp?error=true" /> 
    <logout logout-success-url="/login.jsp"/> 
    <anonymous/> 

+0

返信いただきありがとうございます。 web.xmlで春のセキュリティをチェックしました。これはあなたのものと同じで、正しいと思われます。 あなたが提案したようにタグを追加しました.Applet.htmlはLogin.htmlにリダイレクトし、Application.htmlにリダイレクトされます。 これはまさにSpringのセキュリティーが "Application"モジュールのロード中にどこかのアクセスを拒否したのとまったく同じように動作しますが、私は_definetly_すべての権限が正当であることを確信しています。 - すべてのリソースへの匿名アクセスを可能にするセキュリティ設定を減らし、DEBUGそれを記録する。 – Valrog

+0

@Valrogこの問題を解決するには、回答を記入してください。 –

関連する問題