1

我完全是 Spring 和 Web 开发的新手。我想实现用户密码更改功能。到目前为止,我只以这种方式使用了路径:

@RequestMapping(value = "/timetable/{year}/{month}/{date}", method = RequestMethod.GET)
public String timetableDateJump(@PathVariable("year") int year, @PathVariable("month") int month..)

但我不希望用户的通行证仅在 url 中传递。它是如何在 Web 服务中完成的?什么是正常的为什么要实施?

顺便说一句:我应该从用户 tpo 服务器传递密码并在服务器端对其进行哈希处理,对吗?

4

1 回答 1

0

从我的角度来看,这里没有 spring-security 的具体细节:

1)在视图中创建表单

<form:form method="post" action="/password/change" modelAttribute="changePasswordForm">
    <form:label path="password">
        New password:
    </form:label>
    <form:password path="password" />
    <input type="submit" value="Change password" />
</form:form>

2) 创建类以将用户的值从表单绑定到 java 对象

public class ChangePasswordForm {
    private String password;

    public void setPassword(String password)
        this.password = password;
    }

    public String getPassword() {
        return password;
    }
}

3) 创建控制器

@Controller
public ChangePasswordController {

    @RequestMapping(value = "/password/change", method = RequestMethod.POST)
    public String changePassword(ChangePasswordForm form) {
        // change user password
        return "return:/user/info";
    }
}

我没有测试过这段代码,但它应该以这种方式工作。

如何更新数据库中的密码取决于您的应用程序和使用的库。

于 2012-06-01T09:26:03.290 回答