如何使用 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"
我们一直在尝试使用 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"