12.23SSO已绑定邮箱显示
环境:
项目地址:D:\supermap\ideaworkspaces\UserAccount
访问地址:http://127.0.0.1/v101/account/manager/manager.do;jsessionid=DCB22738846EDF12FD8A1B6AE8DDB777?manager=accountInfo项目
userManager.jsp 邮箱显示
UserStatusUtil.java 邮箱过滤判断问题:
1. 数据库有email,返回前端false
1.显示立即绑定,以此修改email
1. 数据库有email,返回前端true
1.显示email,不能修改
2.强制加立即绑定的a标签,修改不成功,已有账号##一、项目修改
##第一种:
###1.UserStatusUtil.java
java
/**
* 根据邮箱来判断用户是否绑定过邮箱 修改为支持所有邮箱修改
* @param email
* @return
*/
public static boolean isBoundEmail(String email) {
if(StringUtils.isBlank(email)) {//邮箱为空,说明没有绑定过邮箱
return false;
}
if(email.indexOf(CASConstants.THIRD_PARTY_LOGIN_SUFFIX) != -1) {//第三方用户的邮箱类型,说明用户没有绑定过邮箱
return false;
}
if(email.indexOf(CASConstants.PHONE_PARTY_LOGIN_SUFFIX) != -1) {//手机用户的邮箱类型,说明用户没有绑定过邮箱
return false;
}
if(Pattern.matches(DITUHUI_REGEX, email)) {//匹配到地图慧那边的邮箱类型,说明用户没有绑定过邮箱
return false;
}
return true;
}2.userManager.jsp
html
77 - 84
<c:if test="${!isBoundEmail}">
<li class="mt15">
<lable class="f16"><spring:message code="usermanager_not_bound_mailbox"/></lable>
<a class="f16 userManager_binding" href="./emailModify.jsp"><spring:message code="usermanager_now_binding"/>
<img class="vm height18" src="../resources/img/userManager/icon_email.png" /></a>
</li>
</c:if>
<c:if test="${isBoundEmail}">
<li class="mt15 userManager_btn_disabled">
<lable class="f16"><spring:message code="usermanager_bound_mailbox"/></lable>
<a class="f16 userManager_binding" href="./emailModify.jsp">${processedEmail}
<!--<lable class="f16">${processedEmail}</lable>-->
<img class="vm height18" alt="" src="../resources/img/userManager/icon_email.png" /></a>
</li>
</c:if>###3.注释'已有邮箱判断'
java
注释两个判断1.点击'发送验证码' 2.点击邮箱连接
isBoundEmail
AccountManager.java下sendBindingUrlToMailBox
//绑定过邮箱的话,不能发送绑定链接
if(UserStatusUtil.isBoundEmail(user.getEmail())) {
addDatasToModelAndView(mv, ViewConstants.SENDEMAIL_FAILD, getMessage(CasManagerResource.CURRENT_ACCOUNT_EMAIL_BOUND));
return mv;
}
RegisterValidationAction.java 下doBindUserInfo 159
// 如果用户绑定过邮箱,那就不能再次绑定
if (UserStatusUtil.isBoundEmail(user.getEmail())) {
context.getFlowScope().put("isSuccess", isSuccess);
context.getFlowScope()
.put("result",
messageSource
.getMessage(MessageCode.CURRENT_ACCOUNT_EMAIL_BOUND));
return new Event(this, "error");
}第二种:
jsp
userManager.jsp
<c:if test="${!isBoundEmail}">
<c:if test="${!processedEmail}">
<li class="mt15">
<lable class="f16"><spring:message code="usermanager_not_bound_mailbox"/></lable>
<a class="f16 userManager_binding" href="./emailModify.jsp"><spring:message code="usermanager_now_binding"/>
<img class="vm height18" src="../resources/img/userManager/icon_email.png" /></a>
</li>
</c:if>
<c:if test="${processedEmail}">
<li class="mt15 userManager_btn_disabled">
<lable class="f16"><spring:message code="usermanager_bound_mailbox"/></lable>
<a class="f16 userManager_binding" href="./emailModify.jsp">${processedEmail}
<!--<lable class="f16">${processedEmail}</lable>-->
<img class="vm height18" alt="" src="../resources/img/userManager/icon_email.png" /></a>
</li>
</c:if>
</c:if>
<c:if test="${isBoundEmail}">
<li class="mt15 userManager_btn_disabled">
<lable class="f16"><spring:message code="usermanager_bound_mailbox"/></lable>
<lable class="f16">${processedEmail}</lable>
<img class="vm height18" alt="" src="../resources/img/userManager/icon_email.png" />
</li>
</c:if>java
AccountManager.java initModelViweBasicInfo
if(!isBoundEmail) {
mv.addObject(AccountManagerConstants.PROCESSED_EMAIL, "".equals(user.getEmail())?null:CommonUtils.getEncodeEmail(user.getEmail()));
}###4.缓存
AccountManager.java 下 sendBindingUrlToMailBox
user.setEmail(bindingInfo.getBindingParam());