📄 conductorcontrollerservlet.java
字号:
}
}
}
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 + -