微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JDBC领域表单身份验证如何[重复]

如何解决JDBC领域表单身份验证如何[重复]

||                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        您使用哪种容器?jBoss?Tomcat?Derby? 您还需要使用永久性存储->是,需要DBMS。它将是哪一个?MySQL,Sysbase,Oracle PL / SQL,MS SQL? 文档可供初学者使用: http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm 通常,您需要具有数据库后端,JDBC-ODBC驱动程序(jar)和容器来为您执行身份验证。 但是,我会为您提供一些指导和见解,以帮助您避免遇到困难。 假设您使用的是Tomcat 7.0+和MySQL 5.5,请按照以下步骤操作: 乍一看似乎很乏味,但实际上却很简单。 首先安装MySQL或所需的其他DBMS。这里最关键的事情之一就是命名并注册一个MySQL服务,安装程序将自动为您*服务*。尝试连接到数据库**。成功完成后,更改默认DBMS特权用户的用户名(root)和密码(\“ \”)。创建一个项目架构。 在名为\'users \'和\'rights \'的架构中创建2个表。 第一个表(用户)必须具有两列:用户名和密码。 第二个(权利)还必须具有两列:用户名和角色。 对于初学者,请将两个表都留为空白。 现在,您必须编辑位于tomcat \的Catalina(又名home)conf(iguration)目录中的tomcat-users.xml和server.xml。 tomcat-users.xml:此文件包含可由tomcat识别的角色。因此,您需要至少添加一个这样的角色,例如\'client \',\'customer \',\'unauthenticated \'e.t.c。 此外,此文件中至少有一个tomcat用户名和密码实例,当您手动或作为服务或通过IDE启动tomcat时会使用该实例。该实例需要插入数据库中,因此您需要手动添加该实例(SQL代码),以便容器对自身进行身份验证(否则,容器自身将出现永久性登录失败)。 server.xml:现在,假设将JDBC-ODBC驱动程序添加到项目的类路径中,请注释掉UserDatabaseRealm
<Realm className=\"org.apache.catalina.realm.UserDatabaseRealm\"
        resourceName=\"UserDatabase\"/>
并在LockoutRealm中添加类似的内容(已经存在)  
<Realm className=\"org.apache.catalina.realm.JDBCRealm\" 
        connectionURL=\"jdbc:mysql://localhost:3306/SCHEMA_NAME_IN_DB?user=DB_USER;password=DB_PASS\" debug=\"99\" driverName=\"com.mysql.jdbc.Driver\" 
userTable=\"users\" userNameCol=\"username\" userCredCol=\"password\" 
userRoleTable=\"rights\" roleNameCol=\"role\"/>
  (或者如果您不想拥有一个LockOutRealm,也可以不这样做->然后将其注释掉并粘贴上面的Realm) SCHEMA_NAME_IN_DB,DB_USER和DB_PASS是在创建架构并更改DBMS特权用户的用户名和密码时设置的值。 现在,您需要做的就是在数据库中添加正在运行的tomcat的实例用户名和密码(角色:\'manager-script \')以及MySQL特权用户的角色(角色:custom,即\'client \')。 还添加一个或两个测试用户进行展示,并将其与您在tomcat-users.xml中手动添加的角色相关联。 最后,您需要编辑项目的web.xml文件。在那里,您需要提供以下内容: 登录配置,安全角色和安全约束。 登录配置:提供登录页面和登录错误页面。 安全角色:在此处添加您手动添加到users-tomcat.xml文件中的安全角色,并且用户必须具有这些安全角色才能通过登录来访问任何页面。 安全限制:指定哪些页面需要登录用户进行身份验证访问。 例子(weeeh!)
<security-constraint>
<display-name>URLsConstraintMechanism</display-name>
   
<web-resource-collection>
   
<web-resource-name>clientURL</web-resource-name>
   
<description>Required access to specified URL with client permissions </description>
        
<url-pattern>/securedURL/index.html</url-pattern>
        
<http-method>GET</http-method>
        
<http-method>PUT</http-method>
        
<http-method>POST</http-method>
        
<http-method>DELETE</http-method>
        
</web-resource-collection>
        ...(此处有更多网络资源收藏)        
<auth-constraint>
       
<description>Required privileges to access securely constraint URLs.</description>
       
<role-name>client</role-name>
       
</auth-constraint>
</security constraint>
<login-config>
    
<auth-method>FORM</auth-method>
        
<form-login-config>
           
<form-login-page>/index.html</form-login-page>
           
<form-error-page>/index_denied.html</form-error-page>
        
</form-login-config>
    
</login-config>
    
<security-role>
       
<description>Required privileges to access securely constraint URLs.</description>
    
<role-name>client</role-name>
    
</security-role>
如果使用IDE(尤其是针对Web.xml的NetBeans),这将更加容易。 玩得开心!!!祝你好运:D :):D 关于*和**: MySQL 5.5的安装程序中有2个严重的错误。 如果需要帮助,请检查此URL: https://serverfault.com/questions/214435/error-1067-the-process-terminated-unexpectedly-when-trying-to-install-mysql-on 附注:我明天会添加一些提示。现在,我要睡觉了! xD     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。