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

📄 conductorcontrollerservlet.java

📁 Sun公司Dream项目
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            }
        }
    }
    
    private void sendDeniedResponse(HttpServletRequest request, HttpServletResponse response) {
        String session_id = request.getParameter("session_id");
        String licenseServerURL = request.getParameter(Const.LICENSE_SERVER_URL);
        if(licenseServerURL == null) {
            // NEED TO FIX
            licenseServerURL = (String) osLicenseServerURLMap.get("SUN");
        }
        logger.info("licenseServerURL="+licenseServerURL);
        String encryptedURL = licenseServerURL + "?" +"action=verify_signature&session_id="+session_id;
        logger.finer("CONDUCTOR redirecting to LICENSE SERVER: ");
        
        try {
            logger.finer("Sending redirect");
            String encodedRedirectURLencodedURL = response.encodeRedirectURL(response.encodeURL(encryptedURL));
            logger.finer("ENCODED REDIRECT URL ENCODED URL"+encodedRedirectURLencodedURL);
            response.sendRedirect(response.encodeRedirectURL(response.encodeURL(encryptedURL)));
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
        
        logger.finer("Leaving generateLicense()");
    }
    
    private void incrementCountFromRelease(HttpServletRequest request, com.sun.sjc.idtv.vod.shared.data.RightsInfo[] ri) {
        logger.finer("Entering incrementCountFromRequest");
        // check user
        // check if the user has rights to content
        // check if the rights has not expired
        // check if the user has rights to apply verb on content
        // check if the user has remaining rights to apply verb on content
        // check if the user has rights to apply verb on content with the verb specific arguments
///        MMIMessage mmiMessageResponse = new MMIMessage();
///        mmiMessageResponse.setMMIVersion("1.0");
///        MMIResponse mmiResponse = new MMIResponse();
        String strQuery = request.getQueryString();
        logger.finer("INCREMENTCOUNTFROMREQUEST QUERY="+strQuery);
        String strMMIMessage = strQuery.substring(strQuery.indexOf("MMIVersion"),strQuery.indexOf("&password"));
        logger.info("EXTRACTED QUERY="+strMMIMessage);
        
        MMIMessage mmiMessageRequest = null;
        MMIParserFactory mmiParserFactory = MMIParserFactory.PLAINTEXT;
        MMIPlainTextParser mmiPlainTextParser = (MMIPlainTextParser)mmiParserFactory.createParser();
        try {
            mmiMessageRequest = mmiPlainTextParser.parseMessage(strMMIMessage);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        if(mmiMessageRequest == null) {
            logger.finer("INCREMENTCOUNTFROMREQUEST: MMIMESSAGEREQUEST IS EMPTY");
        }
        MMIRequest mmiRequest = (MMIRequest)mmiMessageRequest.getMMIDataObject();
        MMIRightsRequestElement[] mmiRightsRequestElement = mmiRequest.getRightsSegment().getMMIRightsRequestElement();
        boolean found = false;
        boolean denied = false; boolean granted = false;
        int riCountCheck = 0, CountCheck=0;
        Vector v = new Vector();
        for(int i=0; i<mmiRightsRequestElement.length; i++) {
            int grantCount = 0;
            int verbCount = 0;
            String strReqElemId = mmiRightsRequestElement[i].getReqElemId().getReqElemId();
///            mmiRightsResponseElement[i] = new MMIRightsResponseElement();
            
            // assign request element id to identify the current request element
///            mmiRightsResponseElement[i].setReqElemId(new ReqElemId(strReqElemId));
            boolean userFound = false;
            for(int j=0; j<ri.length; j++) {
                // interating through rightsInfo
                logger.finer("J="+j);
                
                ContentId[] contentId = mmiRightsRequestElement[i].getContentId();
                if(contentId == null) {
                    
                } else {
                    // FIX - THERE SEEMS TO BE SOME REUSABLE LOGIC BETWEEN HERE
                    // and /DReaM/DReaMLicensor/src/com/sun/licenseserver/LicenseServer.java
                    //
                    for(int k=0;k<contentId.length;k++) {
                        logger.finer("K="+k);
                        // check contentId against RightsInfo
                        if(ri[j].movieName.equals(contentId[k].getContentId())) {
                            org.omc.dream.mmi.common.VerbElement[] verbElements = mmiRightsRequestElement[i].getVerbElement();
                            int intNumVerbElements = verbElements.length;
                            
                            
                            for(int l=0;l<intNumVerbElements;l++) {
                                
                                logger.finer("L="+l);
                                
                                com.sun.sjc.idtv.vod.shared.data.VerbElement[] riVerbElements = ri[j].verbElements;
                                for(int n=0; n<riVerbElements.length; n++) {
                                    logger.finer("N="+n);
                                    if(verbElements[l].getVerb().getVerb().equalsIgnoreCase(riVerbElements[n].verbName)) {
                                        verbCount++;
                                        logger.finer("riVerbElements="+riVerbElements[n].verbName);
                                        try {
                                            if(riVerbElements[n].verbArgName.equalsIgnoreCase("Count")) {
                                                riCountCheck++;
                                                if(verbElements[l].getCount()!= null) {
                                                    
                                                    /*
                                                     if(Integer.parseInt(verbElements[l].getCount().getCount()) <= Integer.parseInt(riVerbElements[n].verbArgValue)) {
                                                     
                                                        logger.finer("OLD COUNT: "+riVerbElements[n].verbArgValue);
                                                        int value = Integer.parseInt(riVerbElements[n].verbArgValue) - Integer.parseInt(verbElements[l].getCount().getCount());
                                                        logger.finer("NEW COUNT: "+value);
                                                        ri[j].verbElements[n].verbArgValue = String.valueOf(value);
                                                        v.add(ri[j]);
                                                        granted = true; n=riVerbElements.length; grantCount++;
                                                        logger.finer("GRANTED");
                                                    } else {
                                                        logger.finer("DENIED");
                                                        denied = true; n=riVerbElements.length;
                                                    }
                                                     */
                                                    logger.finer("OLD COUNT: "+riVerbElements[n].verbArgValue);
                                                    int value = Integer.parseInt(riVerbElements[n].verbArgValue) + Integer.parseInt(verbElements[l].getCount().getCount());
                                                    logger.finer("NEW COUNT: "+value);
                                                    ri[j].verbElements[n].verbArgValue = String.valueOf(value);
                                                    v.add(ri[j]);
                                                    granted = true; n=riVerbElements.length; grantCount++;
                                                    logger.finer("GRANTED");
                                                }
                                            }
                                        } catch (Exception e) {
                                            e.printStackTrace();
                                        }
                                    }
                                }
                                if (riCountCheck == 0 && verbCount > 0) {
                                    granted=true;grantCount++;
                                }
                                riCountCheck=0;
                                verbCount=0;
                            }
                        }
                    }
                }
            }
            if(grantCount==mmiRightsRequestElement[i].getVerbElement().length) {
                // decrement counter here
///                mmiRightsResponseElement[i].setNotification(new Notification("granted"));
                logger.finer("INCREMENTING");
                for(int z=0;z<v.size();z++) {
                    try {
                        sms.updateFixedRightsInfo((com.sun.sjc.idtv.vod.shared.data.RightsInfo)v.elementAt(z));
                    } catch(java.rmi.RemoteException rmire) {
                        logger.finer("CONDUCTOR NOT ABLE TO INCREMENT COUNT");
                        rmire.printStackTrace();
                    } catch(java.sql.SQLException sqle) {
                        logger.finer("CONDUCTOR NOT ABLE TO INCREMENT COUNT");
                        sqle.printStackTrace();
                    }
                }
            } else {
///                mmiRightsResponseElement[i].setNotification(new Notification("denied"));
                logger.finer("NOT INCREMENTING");
            }
            grantCount=0;
        }
    }
    
    private void decrementCountFromRequest(HttpServletRequest request, com.sun.sjc.idtv.vod.shared.data.RightsInfo[] ri) {
        logger.finer("Entering decrementCountFromRequest");
        // check user
        // check if the user has rights to content
        // check if the rights has not expired
        // check if the user has rights to apply verb on content
        // check if the user has remaining rights to apply verb on content
        // check if the user has rights to apply verb on content with the verb specific arguments
///        MMIMessage mmiMessageResponse = new MMIMessage();
///        mmiMessageResponse.setMMIVersion("1.0");
///        MMIResponse mmiResponse = new MMIResponse();
        String strQuery = request.getQueryString();
        logger.finer("DECREMENTCOUNTFROMREQUEST QUERY="+strQuery);
        String strMMIMessage = strQuery.substring(strQuery.indexOf("MMIVersion"),strQuery.indexOf("&password"));
        logger.info("EXTRACTED QUERY="+strMMIMessage);
        
        MMIMessage mmiMessageRequest = null;
        MMIParserFactory mmiParserFactory = MMIParserFactory.PLAINTEXT;
        MMIPlainTextParser mmiPlainTextParser = (MMIPlainTextParser)mmiParserFactory.createParser();
        try {
            mmiMessageRequest = mmiPlainTextParser.parseMessage(strMMIMessage);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        if(mmiMessageRequest == null) {
            logger.finer("DECREMENTCOUNTFROMREQUEST: MMIMESSAGEREQUEST IS EMPTY");
        }
        MMIRequest mmiRequest = (MMIRequest)mmiMessageRequest.getMMIDataObject();
        MMIRightsRequestElement[] mmiRightsRequestElement = mmiRequest.getRightsSegment().getMMIRightsRequestElement();
///        Status status = new Status("RequestOK");
        
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
///        mmiResponse.setStatus(status);
///        mmiResponse.setResponseId(new ResponseId("1003"));
//        logger.finer("SignatureSegment"+mmiRequest.getSignatureSegment().print("/n"));
//        mmiResponse.setSignatureSegment(mmiRequest.getSignatureSegment());
///        RequestHash requestHash = new RequestHash("jAxX0LfgwutvEdJb748IU4L8obXZPXfqTZ");  //
///        HashAlg hashAlg = new HashAlg("http://www.w3.org/2001/10/xml-exc-c14n#");
///        RequestHashSegment requestHashSegment = new RequestHashSegment();
///        requestHashSegment.setHashAlg(hashAlg);
///        requestHashSegment.setRequestHash(requestHash);
///        mmiResponse.setRequestHashSegment(requestHashSegment);
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
        //******************************************  FIX THIS **************************************************/
///        MMIRightsResponseElement[] mmiRightsResponseElement = new MMIRightsResponseElement[mmiRightsRequestElement.length];
        boolean found = false;
        boolean denied = false; boolean granted = false;
        int riCountCheck = 0, CountCheck=0;
        Vector v = new Vector();
        for(int i=0; i<mmiRightsRequestElement.length; i++) {
            int grantCount = 0;
            int verbCount = 0;
            String strReqElemId = mmiRightsRequestElement[i].getReqElemId().getReqElemId();
///            mmiRightsResponseElement[i] = new MMIRightsResponseElement();
            
            // assign request element id to identify the current request element
///            mmiRightsResponseElement[i].setReqElemId(new ReqElemId(strReqElemId));
            boolean userFound = false;
            for(int j=0; j<ri.length; j++) {
                // interating through rightsInfo
                logger.finer("J="+j);
                
                ContentId[] contentId = mmiRightsRequestElement[i].getContentId();
                if(contentId == null) {
                    
                } else {
                    for(int k=0;k<contentId.length;k++) {
                        logger.finer("K="+k);
                        // check contentId against RightsInfo
                        if(ri[j].movieName.equals(contentId[k].getContentId())) {
                            org.omc.dream.mmi.common.VerbElement[] verbElements = mmiRightsRequestElement[i].getVerbElement();
                            int intNumVerbElements = verbElements.length;
                            
                            
                            for(int l=0;l<intNumVerbElements;l++) {
                                
                                logger.finer("L="+l);
                                
                                com.sun.sjc.idtv.vod.shared.data.VerbElement[] riVerbElements = ri[j].verbElements;
                                for(int n=0; n<riVerbElements.length; n++) {
                                    logger.finer("N="+n);
                                    if(verbElements[l].getVerb().getVerb().equalsIgnoreCase(riVerbElements[n].verbName)) {
                                        verbCount++;
                                        logger.finer("riVerbElements="+riVerbElements[n].verbName);
                                        try {
                                            if(riVerbElements[n].verbArgName.equalsIgnoreCase("Count")) {

⌨️ 快捷键说明

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