java - 如何使用电子邮件创建Spring登录?

标签 java spring hibernate spring-mvc

我是 Spring 新手,正在学习。我被困在使用用户电子邮件的登录页面上。我可以使用 jdbc-user-service 使用用户名和密码创建登录。但现在我想使用 UserEmail 更改登录名。

用户名和密码登录的示例配置如下:

<security:form-login login-page="/login"
    default-target-url="/product/productList/all" authentication-failure-url="/login?error"
    username-parameter="username" password-parameter="password" />
<security:logout logout-success-url="/login?logout" />
</security:http>
<security:authentication-manager>
    <security:authentication-provider>
        <security:jdbc-user-service data-source-ref="dataSource"
            authorities-by-username-query="SELECT username, authority FROM authorities WHERE username = ?"
            users-by-username-query="SELECT username, password, enabled FROM users WHERE username = ?" />
        <security:password-encoder ref="bcryptEncoder" />
    </security:authentication-provider>
</security:authentication-manager>

登录表单如下:

<form name="loginForm" action="<c:url value="/j_spring_security_check" />" method="post">

    <c:if test="${not empty error}">
        <div class="error" style="color: #ff0000;">${error}</div>
    </c:if>

    <div class="form-group">
        <label for="username">UserName : </label>
        <input type="text" id="username" name="username" class="form-control" />
    </div>
    <div class="form-group">
        <label for="password">Passwrod:</label>
        <input type="password" id="password" name="password" class="form-control" />
    </div>
    <input type="submit" value="Submit" class="btn btn-default">
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>

如何更改为使用电子邮件验证用户并同时绑定(bind)用户授权?请帮助我获取演示教程。

非常感谢。

最佳答案

您是否尝试过更改 SQL 查询,以便选择电子邮件地址而不是用户名。

示例:.. WHERE 电子邮件地址 而不是 .. WHERE 用户名

关于java - 如何使用电子邮件创建Spring登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42540239/

相关文章:

java - 在 Spring Boot MVC 应用程序中在 JPA 和 Mongo 之间切换

java - Spring 交易不起作用?

java - 使用 Springs OSGI 动态模块时是否需要 blueprint.xml?

java - 从 hibernate DAO 实现中抛出有意义的异常

java - Spring JdbcTemplate 的 queryForList() 带有许多参数,不可读; SQLQuery 没有给我包含列名的列表

java - 使用路径变量进行 GET 映射的自定义验证

具有后台线程的 Java WebSocket

java - 按钮被背景图像隐藏

java - 使用 Jena 以编程方式生成 OWL 类层次结构

java - Spring引导2.0.0.BUILD-SNAPSHOT其余: Can not override _serializer?