如何使用 glassfish JDBC Realm 在 jsp 网络应用程序中实现用户身份验证?

How to implement user authentication in a jsp web application, using a glassfish JDBC Realm?

我们一直在尝试使用 JDBC 领域在我们的 JSP 网络应用程序上创建用户登录名,紧随 this tutorial。我们已经按照教程一劳永逸地学习了,但就是行不通!基本上,登录表单不接受任何凭据,但是我们不知道这是由于通信问题还是没有通信!

这是我们的一些代码,希望足以说明问题所在!

我们的相关数据库表:

我们的 web.xml 文件:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<jsp-config>
    <jsp-property-group>
        <description>JSP configuration for Bandy</description>
        <url-pattern>/index.jsp</url-pattern>            
        <url-pattern>/WEB-INF/view/*</url-pattern>
        <include-prelude>/WEB-INF/jspf/menu.jspf</include-prelude>
        <include-coda>/WEB-INF/jspf/seal.jspf</include-coda>
    </jsp-property-group>    
</jsp-config>     
<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>bandyRealm</realm-name>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/error.jsp</form-error-page>
    </form-login-config>       
</login-config>        
<security-constraint>        
    <web-resource-collection>
        <web-resource-name>Bandy user</web-resource-name>
        <url-pattern>/protected/protected.jsp</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>        
    <auth-constraint>
        <role-name>ADMIN</role-name>
        <role-name>USER</role-name>
    </auth-constraint>
</security-constraint>    

我们的玻璃鱼-web.xml 文件:

<glassfish-web-app error-url="">
<class-loader delegate="true"/>
<jsp-config>
    <property name="keepgenerated" value="true">
        <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
</jsp-config>
<security-role-mapping>
    <role-name>ADMIN</role-name>
    <group-name>ADMIN</group-name>
</security-role-mapping>
<security-role-mapping>
    <role-name>USER</role-name>
    <group-name>USER</group-name>
</security-role-mapping>    

我们的 jdbc 领域设置:

我们的项目结构:

您在 web.xml (bandyRealm) 中声明的领域不存在。尝试将其设置为您在 glassfish 中命名的名称,即 "jdbc-realm"