try {
logger.finest("uid : " + uid +" password : " + oldPassword + " / " + newPassword + " / " + newPassword2);
User user = service.get(uid);
if (user != null && user.equals(getLoginUser())) {
// 本人しか変更できない
Validators v = new Validators(request);
logger.finest("old password : " + user.getPassword());
// パスワードが空なら古いパスワードのチェックはしない。
if (null != oldPassword) {
v.add("oldPassword", new StringValidator(user.getPassword()));
}
v.add(
"newPassword",
v.required(),
v.minlength(VALID_MIN_PASSWD),
v.maxlength(VALID_MAX_PASSWD),
new StringValidator(oldPassword, true));
v.add("newPassword2", v.required(), new StringValidator(
newPassword));
if (v.validate()) {
// パスワード更新
service.savePassword(uid, newPassword);
// ログイン状態にする
setLoginUser(user);