java - Tomcat j_security_check 用户 ID

标签 java tomcat j-security-check

关于 Tomcat j_security_check 的快速问题...

任何人都知道如何在 user_role 表中为 'id' 更改 'user_name',正如我希望的那样 通过匹配 ID 而不是用户名来验证

服务器.xml

<Realm  className="org.apache.catalina.realm.JDBCRealm"
        driverName="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost/test"
        connectionName="root" connectionPassword="password"
        userTable="user" userNameCol="user_name" userCredCol="user_pass"
        userRoleTable="user_role_link" roleNameCol="role_id" />

表格

user
    id INT PK
    user_name PK
    user_pass
role
    id INT PK
    role_name
user_role
    user_id FK user_id to user.id
    role_id FK role_id to role.id

表格仍然是:

<form method="post" action="j_security_check" name="loginForm">        
    <j:if test='${not empty param["failed"]}'>
        Invalid sign-in credentials<br/>
    </j:if>        
    <h:inputText id="j_username" autocomplete="off" />
    <br/>
    <h:inputSecret id="j_password" autocomplete="off"/>
    <br/>
    <h:commandButton type="reset" value="Clear"/>
    <h:commandButton type="submit" value="Login"/>          
</form>       

我有 role_id 可以工作,但是使用 user_id 我只能得到一个

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'user_name' in 'where clause'

异常

提前致谢

KPS

最佳答案

您不能通过 tomcat j_security_check 做到这一点。如果 username 是一个唯一字段,那么删除 id 是更好的解决方案。但是我建议你合并这两个表。您只能存储一个包含以下字段的表:usernamepasswordrole。 (或者您可以向其中添加 id!)

我想这样你的问题就迎刃而解了!

关于java - Tomcat j_security_check 用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598202/

相关文章:

java - loadClass(String name) 和 loadClass(String name, boolean resolve) 的区别

java - 如何将 "plaintext"Java 源代码点以编程方式转换为 Python3 中的表情符号?

tomcat - 从 META-INF/context.xml 获取 Web 应用程序上下文路径以生成导航结果

java - Array-List 里面的构造函数作为参数之一,如何创建一个新对象?

tomcat - keystore 文件未正确生成

tomcat - 如何通过在 Virtual PC 2007 上运行的本地主机访问 tomcat 5.5 安装?

jsp - 生/tomcat : set session variable after j_security_check

tomcat - UTF-8 编码的 j_security_check 用户名在 Tomcat 领域中被错误地解码为 Latin-1

java - 如何在 Vaadin 中执行 j_security_check 用户凭据检查?

java - 在存在序列化的情况下理解 Java 内存模型下的一个棘手案例