use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.
the class UserServiceImpl method loginVerification.
@Override
public UserDO loginVerification(String username, String password) {
// check username, get user information
UserDO user;
try {
user = this.getUserInfoByName(username);
} catch (ServiceException ae) {
// prevent user know real error message
throw new ServiceException(ApiMessage.USERNAME_OR_PASSWORD_INCORRECT).log(ae.getLog());
}
String cipherText = this.encryptUserPassword(password);
if (!cipherText.equals(user.getPassword())) {
throw new ServiceException(ApiMessage.USERNAME_OR_PASSWORD_INCORRECT).log(LogWarnEnum.US7);
}
return user;
}
use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.
the class UserServiceImpl method alterUserProfile.
@Override
public Map<String, Object> alterUserProfile(String username, int sex, String birthday, String position, String description) {
this.getUserInfoByName(username);
UserDO updateUser = new UserDO();
updateUser.setName(username);
updateUser.setSex(sex);
updateUser.setBirthday(birthday == null ? "" : birthday);
updateUser.setPosition(position == null ? "" : position);
updateUser.setDescription(description == null ? "" : description);
// update forum_user by username, if 4 fields not null, will be updated
if (userDAO.updateUser(updateUser) == 0) {
throw new ServiceException(ApiMessage.DATABASE_EXCEPTION).log(LogWarnEnum.US2);
}
return this.getUserInfoModelMap(userDAO.getUserByName(username));
}
use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.
the class TopicServiceImpl method getTopicContentModelMap.
@Override
public Map<String, Object> getTopicContentModelMap(int topicId) {
TopicDO topic = this.getTopicNotNull(topicId);
TopicContentDO topicContent = this.getTopicContentNotNull(topicId);
TopicCategoryDO topicCategory = this.getTopicCategoryNotNullById(topic.getCategoryid());
UserDO topicAuthorUser = this.getUserNotNullById(topic.getUserid());
Map<String, Object> topicInfoMap = this.getTopicInfoMap(topic);
Map<String, Object> topicContentInfoMap = this.getTopicContentInfoMap(topicContent);
Map<String, Object> topicCategoryInfoMap = this.getTopicCategoryInfoMap(topicCategory);
Map<String, Object> authorUserInfoMap = this.getTopicUserInfoMap(topicAuthorUser);
Map<String, Object> lastReplyUserInfoMap = this.getTopicUserInfoMap(this.getUserNotNullById(topic.getLastreplyuserid()));
// get topic reply list, and add to map
List<TopicReplyDO> listReply = topicReplyDAO.listTopicReplyByTopicId(topicId);
List<Map<String, Object>> listReplyInfoMap = new ArrayList<>(listReply.size());
for (TopicReplyDO reply : listReply) {
Map<String, Object> replyInfoMap = this.getTopicReplyInfoMap(reply);
replyInfoMap.put(ParamConst.USER, this.getTopicUserInfoMap(userDAO.getUserById(reply.getUserid())));
listReplyInfoMap.add(replyInfoMap);
}
// merge all information map
topicInfoMap.putAll(topicContentInfoMap);
topicInfoMap.put(ParamConst.CATEGORY, topicCategoryInfoMap);
topicInfoMap.put(ParamConst.USER, authorUserInfoMap);
topicInfoMap.put(ParamConst.LAST_REPLY_USER, lastReplyUserInfoMap);
topicInfoMap.put(ParamConst.REPLY_LIST, listReplyInfoMap);
return topicInfoMap;
}
use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.
the class SecretUtil method decryptUserInfoToken.
/**
* 解密用户信息 Token
* - 解密 JWT 生成的用户信息 Token, 获取 UserDO 对象
*
* @param token 密文 token
* @return UserDO 用户信息对象(包含 id,name,rank,state 属性)
*/
public static UserDO decryptUserInfoToken(String token) {
checkParamNotNull(token);
DecodedJWT decodedJWT;
try {
// decrypt HS256
JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SetConst.JWT_TOKEN_SECRET_KEY)).build();
// decoding Base64
decodedJWT = verifier.verify(token);
} catch (UnsupportedEncodingException | TokenExpiredException e) {
throw new UtilClassException(ApiMessage.UNKNOWN_ERROR).log(LogWarnEnum.UC10);
}
// Get User information(id, name, rank ,state)
UserDO user = new UserDO();
user.setId(decodedJWT.getClaim(ParamConst.ID).asInt());
user.setName(decodedJWT.getClaim(ParamConst.NAME).asString());
user.setRank(decodedJWT.getClaim(ParamConst.RANK).asString());
user.setState(decodedJWT.getClaim(ParamConst.STATE).asInt());
return user;
}
use of org.neusoft.neubbs.entity.UserDO in project neubbs by nuitcoder.
the class UserServiceImpl method registerUser.
@Override
public UserDO registerUser(String username, String password, String email) {
// judge username, email is occupied
this.confirmUserNotOccupiedByUsername(username);
this.confirmUserNotOccupiedByEmail(email);
// build UserDO, UserActionDO
UserDO user = new UserDO();
user.setName(username);
user.setEmail(email);
user.setPassword(this.encryptUserPassword(password));
UserActionDO userAction = new UserActionDO();
// insert forum_user, forum_user_action
if (userDAO.saveUser(user) == 0) {
throw new ServiceException(ApiMessage.DATABASE_EXCEPTION).log(LogWarnEnum.US1);
}
userAction.setUserId(user.getId());
if (userActionDAO.saveUserAction(userAction) == 0) {
throw new ServiceException(ApiMessage.DATABASE_EXCEPTION).log(LogWarnEnum.US33);
}
// update forum_user 'fu_avator', set default avatar
if (userDAO.updateUserAvatorByName(user.getName(), ParamConst.USER_DEFAULT_IMAGE) == 0) {
throw new ServiceException(ApiMessage.DATABASE_EXCEPTION).log(LogWarnEnum.US2);
}
// re-query user information
return this.getUserInfoById(user.getId());
}
Aggregations