2012-01-20 15 views
1

私は二重認証に問題があります。私は常に上にポップアップウィンドウを介して認証フォームを実装しています。しかし、私はおそらくアプリケーションの開始前にTomcatによる認証要求を引き起こすインターセプタに問題がある:GWT/EXT + Spring Securityアプリケーションでの二重認証

ユーザ名とパスワードがhttp://127.0.0.1:8888によって要求されています。 サイトと言う:「春のセキュリティアプリケーション」

私はインターセプタを無効にした場合、私はSecurityContextHolderは匿名としてユーザーを扱うことをログに表示されます。

私の質問は: どうすれば最初のTomcatログイン画面を無効にすることはできますか?

私の春のセキュリティ設定のXMLは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
      xmlns:beans="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
           http://www.springframework.org/schema/security 
           http://www.springframework.org/schema/security/spring-security-3.0.xsd"> 


<authentication-manager alias="authenticationManager"> 
    <authentication-provider ref="customAuthenticationProvider"/> 
</authentication-manager> 

<beans:bean id="customAuthenticationProvider" class="com.myCompany.model.security.CustomAuthenticationProvider" > 
    <beans:property name="databaseId" value="${configuration.databaseId}" /> 
    <beans:property name="applicationId" value="${configuration.applicationId}" /> 
</beans:bean> 

<http auto-config="true" > 
     <intercept-url pattern="/myApp/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
     <intercept-url pattern="/MyApp.html*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
     <intercept-url pattern="/gwt/**" access="ROLE_USER"/> 
     <intercept-url pattern="/**/*.html" access="ROLE_USER"/> 

     <intercept-url pattern="/css/**" filters="none"/> 
     <intercept-url pattern="/**" access="ROLE_USER" /> 

     <http-basic /> 
</http> 

<global-method-security secured-annotations="enabled" /> 

</beans:beans> 
+1

問題は、Spring Securityはリダイレクトに基づいていることです。かつて私はそれと戦おうとしましたが、それはSSの内部に行きすぎる必要があったので、私はこの考えから辞任しました。 SSを使ってチャンネルをフィルタリングするのは私の意見ではあまりにも多くのオーバーヘッドで、単純なHttpFilterで十分です。 –

+0

@lechlukasz:あなたが私に何を期待しているのかは分かりません。詳細な説明を書けますか? は私がすべてのインターセプタを削除し、これだけのままにしてみました: '<= '/ **' のアクセスをインターセプト、URLパターンを= 'ROLE_ANONYMOUS、ROLE_CHANGE_PASS、ROLE_VIEWER、ROLE_USER、ROLE_ADMIN' />' が、SSには、ユーザーを扱います認証後も匿名のままです。 – Mario

答えて

0

あなたの質問はあまりにも明らかではありません。あなたがログインできるように、あなたのWebアプリケーションの最初の画面であると想定しているTomcatのログイン画面について言及します。

これが正しい場合、ログインページの名前はlogin.htmlこのケースでは

<intercept-url pattern="/**/login.*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
<intercept-url pattern="/gwt/**" access="ROLE_USER"/> 
<intercept-url pattern="/**/*.html" access="ROLE_USER"/> 

<intercept-url pattern="/css/**" filters="none"/> 
<intercept-url pattern="/**" access="ROLE_USER" /> 
1

をPAGE-に私はあなたが二重の認証などに問題がある正しい方法であなたの質問を理解して匿名アクセスを許可するようにインターセプタを設定されなければなりませんTomcat認証またはApache Basic AuthおよびSpring認証メカニズムを使用して、

ながら私はApacheの基本認証セキュリティ・メカニズムに問題が関連していた最後のプロジェクト。起動前に、私はサイトへのアクセスを「保護する」という簡単な手口で、Apache Basic Authです。「春のセキュリティアプリケーション」すべての時間を示してきた

をこの現象の解決策は、オートコンフィグを無効にした。これを有効にすることによりApacheの構成では同じことを開始しました:

<security:http auto-config="false" ...> 
    ... 
</security:http> 
関連する問題