2011-12-09 13 views
0

JBoss AS 7にデプロイされたVaadin/Springアプリケーションで認証を設定しようとしていますが、これに関する文書が見つかりません。私は、認証されたユーザーだけが使用できるようにアプリケーションを構成することができました。ここに私のweb.xmlの一部です:ユーザーが認証されるまで、JBoss AS 7のVaadin/Springアプリケーションのログイン設定

<security-constraint> 
    <display-name>SecureApplicationConstraint</display-name> 
    <web-resource-collection> 
     <web-resource-name>Vaadin application</web-resource-name> 
     <description>The entire Vaadin application is protected</description> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <description>Only valid users are allowed</description> 
     <role-name>ROLE_ADMIN</role-name> 
     <role-name>ROLE_DOCTOR</role-name> 
     <role-name>ROLE_PATIENT</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>file</realm-name> 
    <form-login-config> 
     <form-login-page>/login.jsp</form-login-page> 
     <form-error-page>/loginError.jsp</form-error-page> 
    </form-login-config> 
</login-config> 
<security-role> 
    <description/> 
    <role-name>ROLE_ADMIN</role-name> 
</security-role> 
<security-role> 
    <description/> 
    <role-name>ROLE_DOCTOR</role-name> 
</security-role> 
<security-role> 
    <description/> 
    <role-name>ROLE_PATIENT</role-name> 
</security-role> 

はこれでアプリケーションは表示されません。私が期待したのは、ユーザーが自動的にログインフォームにリダイレクトされるということでした。私はまだJBossアプリケーションサーバーを設定する必要がありますが、方法は見つけられません。以前はJBoss 5で作業していましたが、この設定はlogin-config.xmlファイルで行われました。誰かがJBoss 7で認証REALMを設定し、Vaadinアプリケーションをまだ認証されていない場合にログインフォームにリダイレクトさせるよう、hoeを知っていますか?あなたの助けのおかげ、

さようなら、 フィリップ

答えて

0

まず、質問のカップル - あなたはリソースにアクセスしようとすると、 (1)何が起こっている、 及び(2)セキュリティ制約はカバー/保護ドメイン内のすべて あなたのログインページもあります。 url-patternを/ myprotectedfolder/*のようなログインページを含まないものに制限しようとしますか?

+0

ご回答ありがとうございます。私はすでにこれを解決しました。この問題は、Springアプリケーションのコンテキスト設定にありました。これは以前使っていたものとは少し異なります。 –

0

Vaadinサーブレットはデフォルトで/*にマップされているため、フォームベースのログインはVaadinでは難しいことがわかりました。これは、login.jspもこれによって処理されることを意味します。 LoginFormを使用してプログラムでログインを実装しました。これはより良い統合のようです。しかし、それはあなたの質問が実際にあなたの質問ではありません...

JBoss AS 7では、設定に応じて{jboss}/standalone/configuration/standalone.xmlまたは{jboss}/standalone/configuration/domain.xmlに移動しました。ほとんどの場合、standalone.xmlです。私のデータベース駆動型セキュリティドメインのサンプルは以下の通りです:

<subsystem xmlns="urn:jboss:domain:security:1.0"> 
     <security-domains> 
      <security-domain name="MySecurityDomain"> 
       <authentication> 
        <login-module code="Database" flag="required"> 
         <module-option name="dsJndiName" value="java:jboss/datasources/MyDS"/> 
         <module-option name="principalsQuery" value="SELECT PASSWORD FROM PRINCIPAL WHERE USERNAME=?"/> 
         <module-option name="rolesQuery" value="SELECT r.name, 'Roles' FROM role r, principal_role pr, principal p WHERE p.username=? AND p.user_id=pr.user_id AND pr.role_id=r.role_id"/> 
         <module-option name="hashAlgorithm" value="MD5"/> 
         <module-option name="hashEncoding" value="hex"/> 
        </login-module> 
       </authentication> 
      </security-domain> 
     </security-domains> 
    </subsystem> 

私はこれが役立つことを望みます。

関連する問題