⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 onlineuserfactoryimpl.java

📁 解觖java技术中后台无法上传数给的情况
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        } catch (DatabaseException e) {
            log.error("Unexpected error validating user", e);
            throw new AuthenticationException(NotLoginException.NOT_LOGIN);//we dont want this line to happen
        }
    }

    public OnlineUser getAnonymousUser(HttpServletRequest req)
        throws DatabaseException, AssertionException {

        GenericRequest request = new GenericRequestServletImpl(req);
        return this.getAnonymousUser(request);
    }

    public OnlineUser getAnonymousUser(GenericRequest request)
        throws DatabaseException, AssertionException {

        int memberID = MVNForumConstant.MEMBER_ID_OF_GUEST;
        String memberName = MVNForumConfig.getDefaultGuestName();
        double timeZone = MVNForumConfig.getDefaultGuestTimeZone();
        String localeName = "";
        Timestamp lastLogon = null;
        String lastLogonIP = null;
        int postsPerPage = MVNForumConfig.getRowsPerPage();

        try {
            MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
            if (memberBean.getMemberStatus() != MemberBean.MEMBER_STATUS_ENABLE) {
                //@todo: for now, Guest is always enabled
            }
            memberName = memberBean.getMemberName();
            timeZone = memberBean.getMemberTimeZone();
            localeName = memberBean.getMemberLanguage();
            lastLogon = memberBean.getMemberLastLogon();
            postsPerPage = memberBean.getMemberPostsPerPage();
            lastLogonIP = memberBean.getMemberLastIP();

            //@todo: Should we update LastLogon? I think we should, so we know when we had last guest visiting the site.
            Timestamp now = DateUtil.getCurrentGMTTimestamp();
            //@todo should we remember these information for the Guest
            DAOFactory.getMemberDAO().updateLastLogon(memberID, now, request.getRemoteAddr());

            OnlineUserImpl anonymousUser = new OnlineUserImpl(request, true/*isGuest*/);
            anonymousUser.setMemberID(memberID);
            anonymousUser.setMemberName(memberName);
            anonymousUser.setTimeZone(timeZone);
            MVNForumPermission permission = MVNForumPermissionFactory.getAnonymousPermission();
            anonymousUser.setPermission(permission);
            anonymousUser.setLocaleName(localeName);
            anonymousUser.setLastLogonTimestamp(lastLogon);
            anonymousUser.setLastLogonIP(lastLogonIP);
            //no gender; anonymousUser.setGender(memberBean.getMemberGender() != 0);
            anonymousUser.setPostsPerPage(postsPerPage);
            return anonymousUser;
        } catch (ObjectNotFoundException e) {
            OnlineUserImpl anonymousUser = new OnlineUserImpl(request, true/*isGuest*/);
            //anonymousUser.setMemberID(MVNForumConstant.MEMBER_ID_OF_GUEST);
            //anonymousUser.setMemberName(MVNForumConfig.getDefaultGuestName());
            MVNForumPermission permission = MVNForumPermissionFactory.getAnonymousPermission();
            anonymousUser.setPermission(permission);
            anonymousUser.setLocaleName("");
            anonymousUser.setLastLogonTimestamp(new Timestamp(0));
            anonymousUser.setPostsPerPage(postsPerPage);
            anonymousUser.setTimeZone(timeZone);
            return anonymousUser;
        } catch (DatabaseException e) {
            OnlineUserImpl anonymousUser = new OnlineUserImpl(request, true/*isGuest*/);
            //anonymousUser.setMemberID(MVNForumConstant.MEMBER_ID_OF_GUEST);
            //anonymousUser.setMemberName(MVNForumConfig.getDefaultGuestName());
            MVNForumPermission permission = MVNForumPermissionFactory.getAnonymousPermission();
            anonymousUser.setPermission(permission);
            anonymousUser.setLocaleName("");
            anonymousUser.setLastLogonTimestamp(new Timestamp(0));
            anonymousUser.setPostsPerPage(postsPerPage);
            anonymousUser.setTimeZone(timeZone);
            return anonymousUser;
        }
    }

    public void postLogin(HttpServletRequest request, HttpServletResponse response, OnlineUser onlineUser)
        throws DatabaseException {

        // We create default Message Folder for this user
        int folderOption = 0;
        int folderType = 0;
        int folderStatus = 0;
        Timestamp now = DateUtil.getCurrentGMTTimestamp();
        try {
            try {
                DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_INBOX, onlineUser.getMemberID(),
                                            0/*folderOrder*/, folderStatus, folderOption, folderType, now, now);
            } catch (DuplicateKeyException ex) {
                // Already existed, just go ahead
            }

            try {
                DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_DRAFT, onlineUser.getMemberID(),
                                            1/*folderOrder*/, folderStatus, folderOption, folderType, now, now);
            } catch (DuplicateKeyException ex) {
                // Already existed, just go ahead
            }

            try {
                DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_SENT, onlineUser.getMemberID(),
                                            2/*folderOrder*/, folderStatus, folderOption, folderType, now, now);
            } catch (DuplicateKeyException ex) {
                // Already existed, just go ahead
            }

            try {
                DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_TRASH, onlineUser.getMemberID(),
                                            3/*folderOrder*/, folderStatus, folderOption, folderType, now, now);
            } catch (DuplicateKeyException ex) {
                // Already existed, just go ahead
            }
        } catch (CreateException ce) {
            throw new DatabaseException("Cannot created Message Folder.");
        } catch (ForeignKeyNotFoundException fe) {
            throw new DatabaseException("Cannot created Message Folder because the foreign key is not existed.");
        }
    }

    public void logout(HttpServletRequest request, HttpServletResponse response) {
        //do nothing
    }

    public void logout(GenericRequest request, GenericResponse response) {
        //do nothing
    }

    public String getEncodedPassword(String loginName, String password) {
        return Encoder.getMD5_Base64(password);
    }

    public boolean validatePassword(String loginName, String password, boolean isEncodedPassword)
        throws AuthenticationException {

        try {
            int memberId = DAOFactory.getMemberDAO().getMemberIDFromMemberName(loginName);
            if ((memberId == 0) || (memberId == MVNForumConstant.MEMBER_ID_OF_GUEST)) {
                return true;
            }

            String encodedPassword;
            if (isEncodedPassword) {
                encodedPassword = password;
            } else {
                encodedPassword = getEncodedPassword(loginName, password);
            }

            if (isEncodedPassword && password.equals(OnlineUserManager.PASSWORD_OF_METHOD_REALM)) {
                if (MVNForumConfig.getEnableLoginInfoInRealm()) {
                    return true;
                }
            }
            if (isEncodedPassword && password.equals(OnlineUserManager.PASSWORD_OF_METHOD_CUSTOMIZATION)) {
                if (MVNForumConfig.getEnableLoginInfoInCustomization()) {
                    return true;
                }
            }
            return encodedPassword.equals(DAOFactory.getMemberDAO().getPassword(memberId));
        } catch (ObjectNotFoundException e) {
            throw new AuthenticationException(NotLoginException.WRONG_NAME);
        } catch (Exception e) {
            /** @todo find a beter one than NotLoginException.NOT_LOGIN */
            throw new AuthenticationException(NotLoginException.NOT_LOGIN);
        }
    }

    public void ensureCorrectPassword(String loginName, String password, boolean isEncodedPassword)
        throws AuthenticationException {

        boolean isCorrectPassword = validatePassword(loginName, password, isEncodedPassword);
        if (isCorrectPassword == false) {
            throw new AuthenticationException(NotLoginException.WRONG_PASSWORD);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -