Search in sources :

Example 56 with UserDO

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;
}
Also used : ServiceException(org.neusoft.neubbs.exception.ServiceException) UserDO(org.neusoft.neubbs.entity.UserDO)

Example 57 with UserDO

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));
}
Also used : ServiceException(org.neusoft.neubbs.exception.ServiceException) UserDO(org.neusoft.neubbs.entity.UserDO)

Example 58 with UserDO

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;
}
Also used : TopicContentDO(org.neusoft.neubbs.entity.TopicContentDO) UserDO(org.neusoft.neubbs.entity.UserDO) TopicReplyDO(org.neusoft.neubbs.entity.TopicReplyDO) ArrayList(java.util.ArrayList) TopicDO(org.neusoft.neubbs.entity.TopicDO) TopicCategoryDO(org.neusoft.neubbs.entity.TopicCategoryDO) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map)

Example 59 with UserDO

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;
}
Also used : UtilClassException(org.neusoft.neubbs.exception.UtilClassException) TokenExpiredException(com.auth0.jwt.exceptions.TokenExpiredException) UserDO(org.neusoft.neubbs.entity.UserDO) UnsupportedEncodingException(java.io.UnsupportedEncodingException) DecodedJWT(com.auth0.jwt.interfaces.DecodedJWT) JWTVerifier(com.auth0.jwt.JWTVerifier)

Example 60 with UserDO

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());
}
Also used : UserActionDO(org.neusoft.neubbs.entity.UserActionDO) ServiceException(org.neusoft.neubbs.exception.ServiceException) UserDO(org.neusoft.neubbs.entity.UserDO)

Aggregations

UserDO (org.neusoft.neubbs.entity.UserDO)60 Test (org.junit.Test)28 Transactional (javax.transaction.Transactional)21 ApiJsonDTO (org.neusoft.neubbs.dto.ApiJsonDTO)15 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)15 AccountActivation (org.neusoft.neubbs.controller.annotation.AccountActivation)11 LoginAuthorization (org.neusoft.neubbs.controller.annotation.LoginAuthorization)11 Cookie (javax.servlet.http.Cookie)6 JSONArray (com.alibaba.fastjson.JSONArray)4 Map (java.util.Map)4 LinkedHashMap (java.util.LinkedHashMap)3 UserActionDO (org.neusoft.neubbs.entity.UserActionDO)3 ServiceException (org.neusoft.neubbs.exception.ServiceException)3 TopicContentDO (org.neusoft.neubbs.entity.TopicContentDO)2 TopicReplyDO (org.neusoft.neubbs.entity.TopicReplyDO)2 UserDynamicDO (org.neusoft.neubbs.entity.UserDynamicDO)2 PermissionException (org.neusoft.neubbs.exception.PermissionException)2 HandlerMethod (org.springframework.web.method.HandlerMethod)2 JWTVerifier (com.auth0.jwt.JWTVerifier)1 TokenExpiredException (com.auth0.jwt.exceptions.TokenExpiredException)1