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

📄 urlverify.java

📁 流媒体服务器防盗链插件
💻 JAVA
字号:
package com.avaw.urlverify.util;

import com.avaw.util.MD5;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.jsp.JspWriter;

/**
 * <p>Title: URLVerify插件点播串生成类</p>
 *
 * <p>Description: URL Verify</p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: Avaw urlverify.avaw.com</p>
 *
 * @author madfool@avaw.com
 * @version 1.0
 */
public class UrlVerify {
  private String RealIPAndPort[] = null;    //Real或Media Service服务器的IP和端口号(默认端口号为554)
  private String FileName;  //电影文件名
  private String IPAddress; //你要使用这个点播串的IP地址(一般情况下,应该是客户端的IP地址)
  private String UserID;    //用户在Web页面或系统中登陆的ID号,服务端插件利用它来识别用户
  private String Form;      //点播串的生成来源(可以用来区分各业务系统)
  private String MoveID;    //要点播的文件的ID号
  private String Token;     //随机加密的密码名称串名称
  private String TokenPasswd; //随机加密的密码名称串
  private String StringMd5; //MD5签名
  private String NewUrl;
  private int iRand;
  /**
   * 构造方法
   */
  public UrlVerify() {
    NewUrl = "";
    StringMd5 = "";
    Init();
  }
  /**
   * 构造方法 (主要是用于支持TestConfig.jsp)
   * @param out JspWriter 输出流
   */
  public UrlVerify(JspWriter  out) {
    NewUrl = "";
    StringMd5 = "";
    Init(out);
  }
  /**
   * 初始化,用于加载配置信息
   */
  private void Init() {
    Init(null);
  }
  /**
   * 初始化,用于加载配置信息 (主要是用于支持TestConfig.jsp)
   * @param out JspWriter 输出流
   */
  private void Init(JspWriter out) {
    if (out == null && UrlVerifyConfig.TokenSize() > 0) return; //如果不是测试,且已经加载配置信息则返回
    InputStream in = null;
    Properties Props = new Properties();
    try {
      in = getClass().getResourceAsStream("/UrlVerify.properties"); //得到文件输入流
      Props.load(in); //加载属性文件
      if (UrlVerifyConfig.InitProperties(Props) == false && out != null) {
        out.println("Test Fail! Please Check You Setup.<br><br>");
        out.println("1." + UrlVerifyConfig.ErrorMessage + "<br>");
        out.println("2.Read install.txt or install.mth File.<br>");
        out.println("3.Check UrlVerify.properties File.<br>");
        out.println("4.Check UrlVerify.xml File.<br>");
        out.println("5.Check Web Server Configure.<br>");
        out.println("6.Send You Error Info to http://urlverify.avaw.com<br>");
        return;
      }
      if (out != null) {
        out.println("Test OK!<br>");
      }
    }
    catch (Exception e) { e.printStackTrace(); }
    finally {
      try {
        if (in != null) in.close();
        if (Props != null) Props = null;
      }
      catch (Exception e) {}
    }
  }
  /**
   * 设置Real或Media Service服务器的IP和端口号(如果不设置,默认端口号为554)
   * @param IPAndPort String  服务器的IP和端口号
   */
  public void setRealIPAndPort(String IPAndPort) {
    if (IPAndPort == null || IPAndPort.length()<=0) return;
    RealIPAndPort = IPAndPort.split(":");  //拆分服务器的IP和端口号
  }
  /**
   * 设置电影文件名
   * @param FileName String 电影文件名
   */
  public void setFileName(String FileName) { this.FileName = FileName; }
  /**
   * 设置你要使用这个点播串的IP地址(一般情况下,应该是客户端的IP地址)
   * @param IPAddress String 客户端IP地址
   */
  public void setIPAddress(String IPAddress) { this.IPAddress = IPAddress; }
  /**
   * 设置用户在Web页面或系统中登陆的ID号,服务端插件利用它来识别用户
   * @param UserID String 用户ID
   */
  public void setUserID(String UserID) { this.UserID = UserID; }
  /**
   * 设置点播串的生成来源(可以用来区分各业务系统)
   * @param Form String 点播来源ID
   */
  public void setForm(String Form) { this.Form = Form; }
  /**
   * 设置要点播的文件的ID号
   * @param MoveID String 点播的文件的ID号
   */
  public void setMoveID(String MoveID) { this.MoveID = MoveID; }
  /**
   * 随机选择Token(MD5密钥)中的一个
   */
  private void RandomToken() {
    double drand = Math.random() * 1000;
    iRand = (int )drand % UrlVerifyConfig.TokenSize(); //生成随机数
    Token = "p" + iRand;
  }
  /**
   * 组合生成点播的URL
   */
  private void GenerateURL() {
    if (FileName == null || FileName.length() <=0) return;
    if (IPAddress == null || IPAddress.length() <=0) return;
    if (UserID == null || UserID.length() <=0) return;
    if (Form == null || Form.length() <=0) return;
    if (MoveID == null || MoveID.length() <=0) return;
    NewUrl = FileName + "?ip=" + IPAddress + "&uid=" + UserID + "&form=" + Form + "&mid=" + MoveID +
        "&st=" + System.currentTimeMillis() / 1000 + "&token=" + Token;
    if (RealIPAndPort != null && RealIPAndPort.length == 2) { //如果长度为2,则证明带端口号(不带则默认为554)
      if (RealIPAndPort[1].equals("554") == false) //如果带的端口号不是554则...
        NewUrl += "&port=" + RealIPAndPort[1];  //加入新的端口号参数
    }
  }

  /**
   * 根据点播URL生成MD5加密数据,此方法暂不公开.
   */
  private void GenerateMD5() {
    StringMd5 = 生成的加密签名字符串; //生成加密签名字符串的方法暂不公开.
  }

  /**
   * 获取加密的RTSP或MMS点播串
   * @return String 返回生成的串,生成失败返回空
   */
  public String GetUrl() {
    RandomToken();
    GenerateURL();
    GenerateMD5();
    if (StringMd5 == null || StringMd5.length() <=0) return null;
    else return NewUrl + "&Key="+StringMd5;
  }
}

⌨️ 快捷键说明

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