spring security:密码更改页面实现

时间:2012-05-31 18:59:40

标签: spring spring-mvc spring-security

我对弹簧和网络开发都很陌生。我想实现用户密码更改功能。直到现在,我只使用这种路径:

@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服务器传递密码并在服务器端散列,对吗?

1 个答案:

答案 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";
    }
}

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

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