我对弹簧和网络开发都很陌生。我想实现用户密码更改功能。直到现在,我只使用这种路径:
@RequestMapping(value = "/timetable/{year}/{month}/{date}", method = RequestMethod.GET)
public String timetableDateJump(@PathVariable("year") int year, @PathVariable("month") int month..)
但我不希望用户的传递只是在url中传递。它是如何在Web服务中完成的?为什么要实现它是什么?
btw:coruse我应该从用户tpo服务器传递密码并在服务器端散列,对吗?
答案 0 :(得分:0)
从我的观点来看,这里没有弹簧安全特定的细节:
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";
}
}
我没有测试过这段代码,但它应该以这种方式工作。
如何在数据库中更新密码,这取决于您的应用程序和使用过的库。