Authentication JBossAS7中Vaadin/Spring应用程序的登录配置

Authentication JBossAS7中Vaadin/Spring应用程序的登录配置,authentication,jboss7.x,Authentication,Jboss7.x,我正试图在JBossAS7中部署的Vaadin/Spring应用程序中配置身份验证,但我找不到任何关于这方面的文档。我已经成功地配置了应用程序,以便只有经过身份验证的用户才能使用它。以下是my web.xml的一部分: <security-constraint> <display-name>SecureApplicationConstraint</display-name> <web-resource-collection>

我正试图在JBossAS7中部署的Vaadin/Spring应用程序中配置身份验证,但我找不到任何关于这方面的文档。我已经成功地配置了应用程序,以便只有经过身份验证的用户才能使用它。以下是my web.xml的一部分:

    <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应用服务器,但找不到如何配置。我曾经使用JBoss5,在那里这个配置是在login-config.xml文件中完成的。是否有人知道如何在JBoss7中配置身份验证域,并在用户尚未通过身份验证时让Vaadin应用程序将其重定向到登录表单?谢谢你的帮助

再见,
菲利普首先,有几个问题- 1尝试访问资源时发生的情况, 2安全约束覆盖/保护域中的任何内容。 但是你的登录页面也在那里。
您是否尝试将url模式限制为不包含登录页面的内容,如/myprotectedfolder/*等?

我发现在Vaadin中基于表单的登录很棘手,因为Vaadin servlet默认映射为/*,这意味着您的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>

我希望这有帮助。

谢谢你的回答。我已经解决了这个问题。问题出在Spring应用程序上下文配置中,这与我以前使用的有点不同。