Commit 6d2d8bdf639ebf6a25f5a2c52d7f3b3520af66d0
Merge branch 'master' of
http://bj.gitlab.cnlive.com/liujicheng/cnlive_live_web into v532 # Conflicts: # target/m2e-wtp/web-resources/META-INF/maven/com.cnlive.mz.live.web/cnlive_live_web/pom.properties
Showing
14 changed files
with
1678 additions
and
1013 deletions
Too many changes to show.
To preserve performance only 14 of 84 files are displayed.
.classpath
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<classpath> | ||
| 3 | - <classpathentry kind="src" output="target/classes" path="src/main/java"> | ||
| 4 | - <attributes> | ||
| 5 | - <attribute name="optional" value="true"/> | ||
| 6 | - <attribute name="maven.pomderived" value="true"/> | ||
| 7 | - </attributes> | ||
| 8 | - </classpathentry> | ||
| 9 | - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||
| 10 | - <attributes> | ||
| 11 | - <attribute name="optional" value="true"/> | ||
| 12 | - <attribute name="maven.pomderived" value="true"/> | ||
| 13 | - </attributes> | ||
| 14 | - </classpathentry> | ||
| 15 | - <classpathentry including="**/*.java" kind="src" path="src/main/resources"/> | ||
| 16 | - <classpathentry kind="src" path="src/main/resources/i18n"/> | ||
| 17 | - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
| 18 | - <attributes> | ||
| 19 | - <attribute name="maven.pomderived" value="true"/> | ||
| 20 | - <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||
| 21 | - </attributes> | ||
| 22 | - </classpathentry> | ||
| 23 | - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||
| 24 | - <attributes> | ||
| 25 | - <attribute name="maven.pomderived" value="true"/> | ||
| 26 | - </attributes> | ||
| 27 | - </classpathentry> | ||
| 28 | - <classpathentry kind="output" path="target/classes"/> | ||
| 29 | -</classpath> | 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<classpath> | ||
| 3 | + <classpathentry kind="src" output="target/classes" path="src/main/java"> | ||
| 4 | + <attributes> | ||
| 5 | + <attribute name="optional" value="true"/> | ||
| 6 | + <attribute name="maven.pomderived" value="true"/> | ||
| 7 | + </attributes> | ||
| 8 | + </classpathentry> | ||
| 9 | + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||
| 10 | + <attributes> | ||
| 11 | + <attribute name="optional" value="true"/> | ||
| 12 | + <attribute name="maven.pomderived" value="true"/> | ||
| 13 | + </attributes> | ||
| 14 | + </classpathentry> | ||
| 15 | + <classpathentry including="**/*.java" kind="src" path="src/main/resources"/> | ||
| 16 | + <classpathentry kind="src" path="src/main/resources/i18n"/> | ||
| 17 | + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
| 18 | + <attributes> | ||
| 19 | + <attribute name="maven.pomderived" value="true"/> | ||
| 20 | + <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||
| 21 | + </attributes> | ||
| 22 | + </classpathentry> | ||
| 23 | + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||
| 24 | + <attributes> | ||
| 25 | + <attribute name="maven.pomderived" value="true"/> | ||
| 26 | + </attributes> | ||
| 27 | + </classpathentry> | ||
| 28 | + <classpathentry kind="output" path="target/classes"/> | ||
| 29 | +</classpath> |
.classpath.rej
0 → 100644
| 1 | +diff a/.classpath b/.classpath (rejected hunks) | ||
| 2 | +@@ -1,29 +0,29 @@ | ||
| 3 | +-<?xml version="1.0" encoding="UTF-8"?> | ||
| 4 | +-<classpath> | ||
| 5 | +- <classpathentry kind="src" output="target/classes" path="src/main/java"> | ||
| 6 | +- <attributes> | ||
| 7 | +- <attribute name="optional" value="true"/> | ||
| 8 | +- <attribute name="maven.pomderived" value="true"/> | ||
| 9 | +- </attributes> | ||
| 10 | +- </classpathentry> | ||
| 11 | +- <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||
| 12 | +- <attributes> | ||
| 13 | +- <attribute name="optional" value="true"/> | ||
| 14 | +- <attribute name="maven.pomderived" value="true"/> | ||
| 15 | +- </attributes> | ||
| 16 | +- </classpathentry> | ||
| 17 | ++<?xml version="1.0" encoding="UTF-8"?> | ||
| 18 | ++<classpath> | ||
| 19 | ++ <classpathentry kind="src" output="target/classes" path="src/main/java"> | ||
| 20 | ++ <attributes> | ||
| 21 | ++ <attribute name="optional" value="true"/> | ||
| 22 | ++ <attribute name="maven.pomderived" value="true"/> | ||
| 23 | ++ </attributes> | ||
| 24 | ++ </classpathentry> | ||
| 25 | ++ <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||
| 26 | ++ <attributes> | ||
| 27 | ++ <attribute name="optional" value="true"/> | ||
| 28 | ++ <attribute name="maven.pomderived" value="true"/> | ||
| 29 | ++ </attributes> | ||
| 30 | ++ </classpathentry> | ||
| 31 | + <classpathentry including="**/*.java" kind="src" path="src/main/resources"/> | ||
| 32 | +- <classpathentry kind="src" path="src/main/resources/i18n"/> | ||
| 33 | +- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
| 34 | +- <attributes> | ||
| 35 | +- <attribute name="maven.pomderived" value="true"/> | ||
| 36 | +- <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||
| 37 | +- </attributes> | ||
| 38 | +- </classpathentry> | ||
| 39 | +- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||
| 40 | +- <attributes> | ||
| 41 | +- <attribute name="maven.pomderived" value="true"/> | ||
| 42 | +- </attributes> | ||
| 43 | +- </classpathentry> | ||
| 44 | +- <classpathentry kind="output" path="target/classes"/> | ||
| 45 | +-</classpath> | ||
| 46 | ++ <classpathentry kind="src" path="src/main/resources/i18n"/> | ||
| 47 | ++ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||
| 48 | ++ <attributes> | ||
| 49 | ++ <attribute name="maven.pomderived" value="true"/> | ||
| 50 | ++ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||
| 51 | ++ </attributes> | ||
| 52 | ++ </classpathentry> | ||
| 53 | ++ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||
| 54 | ++ <attributes> | ||
| 55 | ++ <attribute name="maven.pomderived" value="true"/> | ||
| 56 | ++ </attributes> | ||
| 57 | ++ </classpathentry> | ||
| 58 | ++ <classpathentry kind="output" path="target/classes"/> | ||
| 59 | ++</classpath> |
.settings/org.eclipse.wst.common.component
| 1 | -<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> | ||
| 2 | - <wb-module deploy-name="cnlive_live_web"> | ||
| 3 | - <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> | ||
| 4 | - <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> | ||
| 5 | - <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> | ||
| 6 | - <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> | ||
| 7 | - <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources/i18n"/> | ||
| 8 | - <dependent-module archiveName="cnlive_live_model-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_live_model/cnlive_live_model"> | ||
| 9 | - <dependency-type>uses</dependency-type> | ||
| 10 | - </dependent-module> | ||
| 11 | - <dependent-module archiveName="smart-framework-4.0.1.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-framework/smart-framework"> | ||
| 12 | - <dependency-type>uses</dependency-type> | ||
| 13 | - </dependent-module> | ||
| 14 | - <dependent-module archiveName="smart-plugin-job-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-job/smart-plugin-job"> | ||
| 15 | - <dependency-type>uses</dependency-type> | ||
| 16 | - </dependent-module> | ||
| 17 | - <dependent-module archiveName="smart-plugin-dbcp-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-dbcp/smart-plugin-dbcp"> | ||
| 18 | - <dependency-type>uses</dependency-type> | ||
| 19 | - </dependent-module> | ||
| 20 | - <dependent-module archiveName="smart-plugin-rest-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-rest/smart-plugin-rest"> | ||
| 21 | - <dependency-type>uses</dependency-type> | ||
| 22 | - </dependent-module> | ||
| 23 | - <dependent-module archiveName="smart-plugin-i18n-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-i18n/smart-plugin-i18n"> | ||
| 24 | - <dependency-type>uses</dependency-type> | ||
| 25 | - </dependent-module> | ||
| 26 | - <dependent-module archiveName="cnlive_mam_commons-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_mam_commons/cnlive_mam_commons"> | ||
| 27 | - <dependency-type>uses</dependency-type> | ||
| 28 | - </dependent-module> | ||
| 29 | - <property name="java-output-path" value="/cnlive_live_web/target/classes"/> | ||
| 30 | - <property name="context-root" value="cnlive_live_web"/> | ||
| 31 | - </wb-module> | ||
| 32 | -</project-modules> | 1 | +<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> |
| 2 | + <wb-module deploy-name="cnlive_live_web"> | ||
| 3 | + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> | ||
| 4 | + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> | ||
| 5 | + <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> | ||
| 6 | + <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> | ||
| 7 | + <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources/i18n"/> | ||
| 8 | + <dependent-module archiveName="cnlive_live_model-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_live_model/cnlive_live_model"> | ||
| 9 | + <dependency-type>uses</dependency-type> | ||
| 10 | + </dependent-module> | ||
| 11 | + <dependent-module archiveName="smart-framework-4.0.1.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-framework/smart-framework"> | ||
| 12 | + <dependency-type>uses</dependency-type> | ||
| 13 | + </dependent-module> | ||
| 14 | + <dependent-module archiveName="smart-plugin-job-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-job/smart-plugin-job"> | ||
| 15 | + <dependency-type>uses</dependency-type> | ||
| 16 | + </dependent-module> | ||
| 17 | + <dependent-module archiveName="smart-plugin-dbcp-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-dbcp/smart-plugin-dbcp"> | ||
| 18 | + <dependency-type>uses</dependency-type> | ||
| 19 | + </dependent-module> | ||
| 20 | + <dependent-module archiveName="smart-plugin-rest-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-rest/smart-plugin-rest"> | ||
| 21 | + <dependency-type>uses</dependency-type> | ||
| 22 | + </dependent-module> | ||
| 23 | + <dependent-module archiveName="smart-plugin-i18n-1.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/smart-plugin-i18n/smart-plugin-i18n"> | ||
| 24 | + <dependency-type>uses</dependency-type> | ||
| 25 | + </dependent-module> | ||
| 26 | + <dependent-module archiveName="cnlive_mam_commons-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/cnlive_mam_commons/cnlive_mam_commons"> | ||
| 27 | + <dependency-type>uses</dependency-type> | ||
| 28 | + </dependent-module> | ||
| 29 | + <property name="java-output-path" value="/cnlive_live_web/target/classes"/> | ||
| 30 | + <property name="context-root" value="cnlive_live_web"/> | ||
| 31 | + </wb-module> | ||
| 32 | +</project-modules> |
src/main/java/com/cnlive/mz/live/action/CheckAction.java
0 → 100644
| 1 | +package com.cnlive.mz.live.action; | ||
| 2 | + | ||
| 3 | +import java.io.UnsupportedEncodingException; | ||
| 4 | +import java.net.URLEncoder; | ||
| 5 | +import java.util.List; | ||
| 6 | +import java.util.Map; | ||
| 7 | + | ||
| 8 | +import org.smart4j.framework.dao.bean.Pager; | ||
| 9 | +import org.smart4j.framework.ioc.annotation.Inject; | ||
| 10 | +import org.smart4j.framework.mvc.DataContext; | ||
| 11 | +import org.smart4j.framework.mvc.annotation.Action; | ||
| 12 | +import org.smart4j.framework.mvc.annotation.Request; | ||
| 13 | +import org.smart4j.framework.mvc.bean.Params; | ||
| 14 | +import org.smart4j.framework.mvc.bean.Result; | ||
| 15 | +import org.smart4j.framework.mvc.bean.View; | ||
| 16 | +import org.smart4j.framework.util.CastUtil; | ||
| 17 | + | ||
| 18 | +import com.cnlive.mz.commons.JsonUtil; | ||
| 19 | +import com.cnlive.mz.commons.net.HttpReq; | ||
| 20 | +import com.cnlive.mz.live.common.LiveUtils; | ||
| 21 | +import com.cnlive.mz.live.entity.TLive; | ||
| 22 | +import com.cnlive.mz.live.rest.BaseUtil; | ||
| 23 | +import com.cnlive.mz.live.service.TCheckService; | ||
| 24 | +import com.cnlive.mz.live.service.TLiveService; | ||
| 25 | +import com.cnlive.mz.live.service.TRoomService; | ||
| 26 | + | ||
| 27 | +@Action | ||
| 28 | +public class CheckAction { | ||
| 29 | + | ||
| 30 | + @Inject | ||
| 31 | + private TLiveService tLiveService; | ||
| 32 | + @Inject | ||
| 33 | + private TRoomService tRoomService; | ||
| 34 | + @Inject | ||
| 35 | + private TCheckService tCheckService; | ||
| 36 | + | ||
| 37 | + // @Request.Get("/check/list/{page_number}") | ||
| 38 | + // public View list(int page_number) { | ||
| 39 | + // int user_id = | ||
| 40 | + // CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 41 | + // System.out.println(user_id); | ||
| 42 | + // Pager<TLive> tLive = tCheckService.getTCheckLivePager(page_number, 9, | ||
| 43 | + // user_id); | ||
| 44 | + // List list = tLiveService.getLives(user_id); | ||
| 45 | + // View view = new View("check/check_management.jsp"); | ||
| 46 | + // view.data("tLive", tLive); | ||
| 47 | + // view.data("list", list); | ||
| 48 | + // return view; | ||
| 49 | + // //return new View("check/demo.html"); | ||
| 50 | + // } | ||
| 51 | + @Request.Post("/check/close/{id}") | ||
| 52 | + public Result coseLive(int id, Params params) throws UnsupportedEncodingException { | ||
| 53 | + String userId = params.getString("user_id"); | ||
| 54 | + String streamName = userId + "_" + id; | ||
| 55 | + String accesskey = BaseUtil.getAccessKey(); | ||
| 56 | + accesskey = java.net.URLEncoder.encode(accesskey, "utf-8"); | ||
| 57 | + String signature = BaseUtil.signature(streamName); | ||
| 58 | + String del = "del"; | ||
| 59 | + String delsignature = BaseUtil.signature(del, streamName); | ||
| 60 | + String expire = BaseUtil.getTimestamp(); | ||
| 61 | + System.out.println(expire + "---expire---"); | ||
| 62 | + // ��ӵ������� | ||
| 63 | + try { | ||
| 64 | + addBlackList(signature, accesskey, expire, streamName); | ||
| 65 | + delBlackList(delsignature, accesskey, expire, streamName); | ||
| 66 | + } catch (UnsupportedEncodingException e) { | ||
| 67 | + e.printStackTrace(); | ||
| 68 | + } | ||
| 69 | + boolean flag = tCheckService.closeLive(id); | ||
| 70 | + return new Result(flag); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * ��ӵ����� | ||
| 75 | + * | ||
| 76 | + * @param signature | ||
| 77 | + * @param accesskey | ||
| 78 | + * @param expire | ||
| 79 | + * @param streamName | ||
| 80 | + * @return | ||
| 81 | + * @throws UnsupportedEncodingException | ||
| 82 | + */ | ||
| 83 | + public String addBlackList(String signature, String accesskey, String expire, String streamName) | ||
| 84 | + throws UnsupportedEncodingException { | ||
| 85 | + String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey | ||
| 86 | + + "&expire=" + expire + "&app=live&method=add&name=" + streamName; | ||
| 87 | + System.out.println(url); | ||
| 88 | + String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 89 | + int status = HttpReq.getRequest(url); | ||
| 90 | + System.out.println(status + "......and......" + jsonArrStr); | ||
| 91 | + /* | ||
| 92 | + * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String | ||
| 93 | + * chatRoomid = (String) map.get("Content-Length"); | ||
| 94 | + */ | ||
| 95 | + return jsonArrStr; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + /** | ||
| 99 | + * �Ӻ���ɾ�� | ||
| 100 | + * | ||
| 101 | + * @param signature | ||
| 102 | + * @param accesskey | ||
| 103 | + * @param expire | ||
| 104 | + * @param streamName | ||
| 105 | + * @return | ||
| 106 | + * @throws UnsupportedEncodingException | ||
| 107 | + */ | ||
| 108 | + public Object delBlackList(String signature, String accesskey, String expire, String streamName) | ||
| 109 | + throws UnsupportedEncodingException { | ||
| 110 | + String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey | ||
| 111 | + + "&expire=" + expire + "&app=live&method=del&name=" + streamName; | ||
| 112 | + System.out.println("..url.." + url); | ||
| 113 | + String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 114 | + System.out.println("..jsonArrStr.." + jsonArrStr); | ||
| 115 | + /* | ||
| 116 | + * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String | ||
| 117 | + * chatRoomid = (String) map.get("Content-Length"); | ||
| 118 | + */ | ||
| 119 | + return jsonArrStr; | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | +} |
src/main/java/com/cnlive/mz/live/action/HttpPostArgumentTest2.java
| 1 | -package com.cnlive.mz.live.action; | ||
| 2 | - | ||
| 3 | -import java.io.File; | ||
| 4 | -import java.io.IOException; | ||
| 5 | - | ||
| 6 | -import org.apache.commons.httpclient.NameValuePair; | ||
| 7 | -import org.apache.commons.httpclient.params.HttpMethodParams; | ||
| 8 | -import org.apache.http.HttpEntity; | ||
| 9 | -import org.apache.http.HttpResponse; | ||
| 10 | -import org.apache.http.HttpStatus; | ||
| 11 | -import org.apache.http.ParseException; | ||
| 12 | -import org.apache.http.client.HttpClient; | ||
| 13 | -import org.apache.http.client.methods.HttpPost; | ||
| 14 | -import org.apache.http.entity.mime.MultipartEntity; | ||
| 15 | -import org.apache.http.entity.mime.content.FileBody; | ||
| 16 | -import org.apache.http.entity.mime.content.StringBody; | ||
| 17 | -import org.apache.http.impl.client.DefaultHttpClient; | ||
| 18 | -import org.apache.http.util.EntityUtils; | ||
| 19 | - | ||
| 20 | -import com.cnlive.mz.commons.net.HttpReq; | ||
| 21 | - | ||
| 22 | -public class HttpPostArgumentTest2 { | ||
| 23 | - | ||
| 24 | - private static String user_access_key = "cf34f28db21b46678237bfa849e239ea"; | ||
| 25 | - private static String app_access_key = "7338ebf9cab441c0843e437a18d85549"; | ||
| 26 | - | ||
| 27 | - public void SubmitPost(String url, String filepath) { | ||
| 28 | - HttpClient httpclient = new DefaultHttpClient(); | ||
| 29 | - try { | ||
| 30 | - HttpPost httppost = new HttpPost(url); | ||
| 31 | - FileBody bin = new FileBody(new File(filepath)); | ||
| 32 | - MultipartEntity reqEntity = new MultipartEntity(); | ||
| 33 | - // reqEntity.addPart("file", bin); | ||
| 34 | - reqEntity.addPart("app_access_key", new StringBody("7338ebf9cab441c0843e437a18d85549")); | ||
| 35 | - reqEntity.addPart("user_access_key", new StringBody("cf34f28db21b46678237bfa849e239ea")); | ||
| 36 | - reqEntity.addPart("direct", new StringBody("0")); | ||
| 37 | - reqEntity.addPart("upload_type", new StringBody("1")); | ||
| 38 | - reqEntity.addPart("md5", new StringBody("liujicheng")); | ||
| 39 | - reqEntity.addPart("title", new StringBody("title")); | ||
| 40 | - reqEntity.addPart("name", new StringBody("中投视频宣传片熊猫test")); | ||
| 41 | - reqEntity.addPart("server_access_key", new StringBody("3830ce241dad4b9f844d131c890231ae")); | ||
| 42 | - | ||
| 43 | - httppost.setEntity(reqEntity); | ||
| 44 | - HttpResponse response = httpclient.execute(httppost); | ||
| 45 | - int statusCode = response.getStatusLine().getStatusCode(); | ||
| 46 | - System.out.println(statusCode); | ||
| 47 | - System.out.println("服务器正常响应....."); | ||
| 48 | - HttpEntity resEntity = response.getEntity(); | ||
| 49 | - System.out.println(EntityUtils.toString(resEntity)); | ||
| 50 | - System.out.println(resEntity.getContent()); | ||
| 51 | - EntityUtils.consume(resEntity); | ||
| 52 | - | ||
| 53 | - } catch (ParseException e) { | ||
| 54 | - e.printStackTrace(); | ||
| 55 | - } catch (IOException e) { | ||
| 56 | - e.printStackTrace(); | ||
| 57 | - } finally { | ||
| 58 | - try { | ||
| 59 | - httpclient.getConnectionManager().shutdown(); | ||
| 60 | - } catch (Exception ignore) { | ||
| 61 | - ignore.printStackTrace(); | ||
| 62 | - } | ||
| 63 | - } | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - public static void redirect() { | ||
| 67 | - NameValuePair[] param = { new NameValuePair("relation_id", "283645"), new NameValuePair("video_type", "3"), | ||
| 68 | - new NameValuePair("user_access_key", user_access_key), | ||
| 69 | - new NameValuePair("app_access_key", app_access_key) }; | ||
| 70 | - String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/redirect", param); | ||
| 71 | - System.out.println(c); | ||
| 72 | - } | ||
| 73 | - | ||
| 74 | - public static void delete() { | ||
| 75 | - NameValuePair[] param = { new NameValuePair("video_type", "2"), | ||
| 76 | - new NameValuePair("app_access_key", "7338ebf9cab441c0843e437a18d85549"), | ||
| 77 | - new NameValuePair("user_access_key", "cf34f28db21b46678237bfa849e239ea"), | ||
| 78 | - new NameValuePair("video_uuid", "a8794762b3e92c7d6589a6157cf1ef27,7e26dee78a584f8c5ab1d93a9c878f1d") }; | ||
| 79 | - String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/delete", param); | ||
| 80 | - System.out.println(c); | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - private static String md5 = "ffa699fb66750acab30b71b8ceb0172d1"; | ||
| 84 | - | ||
| 85 | - public static void supload() { | ||
| 86 | - NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 87 | - new NameValuePair("user_access_key", user_access_key), new NameValuePair("video_type", "2"), | ||
| 88 | - new NameValuePair("upload_type", "0"), new NameValuePair("direct", "1"), new NameValuePair("md5", md5), | ||
| 89 | - new NameValuePair("title", "tit三道恩le1"), new NameValuePair("relation_id", "615207"), | ||
| 90 | - new NameValuePair("custom_args", "custom_args1"), new NameValuePair("name", "VID_20151224_105421.mp4"), | ||
| 91 | - new NameValuePair("server_access_key", "3830ce241dad4b9f844d131c890231ae") }; | ||
| 92 | - String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/supload", param); | ||
| 93 | - System.out.println(c); | ||
| 94 | - } | ||
| 95 | - | ||
| 96 | - public static void uploadNotify() { | ||
| 97 | - NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 98 | - new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"), | ||
| 99 | - new NameValuePair("video_type", "2"), new NameValuePair("state", "200"), | ||
| 100 | - new NameValuePair("video_uuid", md5) }; | ||
| 101 | - String c = HttpReq | ||
| 102 | - .postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/uploadNotify", param); | ||
| 103 | - System.out.println(c); | ||
| 104 | - } | ||
| 105 | - | ||
| 106 | - public static void all() { | ||
| 107 | - NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 108 | - new NameValuePair("relation_id", "498122"), | ||
| 109 | - | ||
| 110 | - new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"), | ||
| 111 | - new NameValuePair("video_type", "2"), new NameValuePair("page_no", "1"), | ||
| 112 | - new NameValuePair("video_uuid", md5) }; | ||
| 113 | - String c = HttpReq.postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/all", param); | ||
| 114 | - System.out.println(c); | ||
| 115 | - } | ||
| 116 | - | ||
| 117 | - public static void main(String[] args) { | ||
| 118 | - // new HttpPostArgumentTest2().delete(); | ||
| 119 | - //HttpPostArgumentTest2.all(); | ||
| 120 | - HttpPostArgumentTest2.redirect(); | ||
| 121 | - // HttpReq.postRequestWidthResult("http://120.132.76.51:9696/cnlive_encoding_job/task", | ||
| 122 | - // "json", "jsonjsonjsonjson");r | ||
| 123 | - } | ||
| 124 | - | ||
| 125 | -} | 1 | +package com.cnlive.mz.live.action; |
| 2 | + | ||
| 3 | +import java.io.File; | ||
| 4 | +import java.io.IOException; | ||
| 5 | + | ||
| 6 | +import org.apache.commons.httpclient.NameValuePair; | ||
| 7 | +import org.apache.commons.httpclient.params.HttpMethodParams; | ||
| 8 | +import org.apache.http.HttpEntity; | ||
| 9 | +import org.apache.http.HttpResponse; | ||
| 10 | +import org.apache.http.HttpStatus; | ||
| 11 | +import org.apache.http.ParseException; | ||
| 12 | +import org.apache.http.client.HttpClient; | ||
| 13 | +import org.apache.http.client.methods.HttpPost; | ||
| 14 | +import org.apache.http.entity.mime.MultipartEntity; | ||
| 15 | +import org.apache.http.entity.mime.content.FileBody; | ||
| 16 | +import org.apache.http.entity.mime.content.StringBody; | ||
| 17 | +import org.apache.http.impl.client.DefaultHttpClient; | ||
| 18 | +import org.apache.http.util.EntityUtils; | ||
| 19 | + | ||
| 20 | +import com.cnlive.mz.commons.net.HttpReq; | ||
| 21 | + | ||
| 22 | +public class HttpPostArgumentTest2 { | ||
| 23 | + | ||
| 24 | + private static String user_access_key = "cf34f28db21b46678237bfa849e239ea"; | ||
| 25 | + private static String app_access_key = "7338ebf9cab441c0843e437a18d85549"; | ||
| 26 | + | ||
| 27 | + public void SubmitPost(String url, String filepath) { | ||
| 28 | + HttpClient httpclient = new DefaultHttpClient(); | ||
| 29 | + try { | ||
| 30 | + HttpPost httppost = new HttpPost(url); | ||
| 31 | + FileBody bin = new FileBody(new File(filepath)); | ||
| 32 | + MultipartEntity reqEntity = new MultipartEntity(); | ||
| 33 | + // reqEntity.addPart("file", bin); | ||
| 34 | + reqEntity.addPart("app_access_key", new StringBody("7338ebf9cab441c0843e437a18d85549")); | ||
| 35 | + reqEntity.addPart("user_access_key", new StringBody("cf34f28db21b46678237bfa849e239ea")); | ||
| 36 | + reqEntity.addPart("direct", new StringBody("0")); | ||
| 37 | + reqEntity.addPart("upload_type", new StringBody("1")); | ||
| 38 | + reqEntity.addPart("md5", new StringBody("liujicheng")); | ||
| 39 | + reqEntity.addPart("title", new StringBody("title")); | ||
| 40 | + reqEntity.addPart("name", new StringBody("中投视频宣传片熊猫test")); | ||
| 41 | + reqEntity.addPart("server_access_key", new StringBody("3830ce241dad4b9f844d131c890231ae")); | ||
| 42 | + | ||
| 43 | + httppost.setEntity(reqEntity); | ||
| 44 | + HttpResponse response = httpclient.execute(httppost); | ||
| 45 | + int statusCode = response.getStatusLine().getStatusCode(); | ||
| 46 | + System.out.println(statusCode); | ||
| 47 | + System.out.println("服务器正常响应....."); | ||
| 48 | + HttpEntity resEntity = response.getEntity(); | ||
| 49 | + System.out.println(EntityUtils.toString(resEntity)); | ||
| 50 | + System.out.println(resEntity.getContent()); | ||
| 51 | + EntityUtils.consume(resEntity); | ||
| 52 | + | ||
| 53 | + } catch (ParseException e) { | ||
| 54 | + e.printStackTrace(); | ||
| 55 | + } catch (IOException e) { | ||
| 56 | + e.printStackTrace(); | ||
| 57 | + } finally { | ||
| 58 | + try { | ||
| 59 | + httpclient.getConnectionManager().shutdown(); | ||
| 60 | + } catch (Exception ignore) { | ||
| 61 | + ignore.printStackTrace(); | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public static void redirect() { | ||
| 67 | + NameValuePair[] param = { new NameValuePair("relation_id", "283645"), new NameValuePair("video_type", "3"), | ||
| 68 | + new NameValuePair("user_access_key", user_access_key), | ||
| 69 | + new NameValuePair("app_access_key", app_access_key) }; | ||
| 70 | + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/redirect", param); | ||
| 71 | + System.out.println(c); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + public static void delete() { | ||
| 75 | + NameValuePair[] param = { new NameValuePair("video_type", "2"), | ||
| 76 | + new NameValuePair("app_access_key", "7338ebf9cab441c0843e437a18d85549"), | ||
| 77 | + new NameValuePair("user_access_key", "cf34f28db21b46678237bfa849e239ea"), | ||
| 78 | + new NameValuePair("video_uuid", "a8794762b3e92c7d6589a6157cf1ef27,7e26dee78a584f8c5ab1d93a9c878f1d") }; | ||
| 79 | + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/delete", param); | ||
| 80 | + System.out.println(c); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + private static String md5 = "ffa699fb66750acab30b71b8ceb0172d1"; | ||
| 84 | + | ||
| 85 | + public static void supload() { | ||
| 86 | + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 87 | + new NameValuePair("user_access_key", user_access_key), new NameValuePair("video_type", "2"), | ||
| 88 | + new NameValuePair("upload_type", "0"), new NameValuePair("direct", "1"), new NameValuePair("md5", md5), | ||
| 89 | + new NameValuePair("title", "tit三道恩le1"), new NameValuePair("relation_id", "615207"), | ||
| 90 | + new NameValuePair("custom_args", "custom_args1"), new NameValuePair("name", "VID_20151224_105421.mp4"), | ||
| 91 | + new NameValuePair("server_access_key", "3830ce241dad4b9f844d131c890231ae") }; | ||
| 92 | + String c = HttpReq.postRequestWidthResult("http://bc.cnlive.com/api/video/supload", param); | ||
| 93 | + System.out.println(c); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + public static void uploadNotify() { | ||
| 97 | + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 98 | + new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"), | ||
| 99 | + new NameValuePair("video_type", "2"), new NameValuePair("state", "200"), | ||
| 100 | + new NameValuePair("video_uuid", md5) }; | ||
| 101 | + String c = HttpReq | ||
| 102 | + .postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/uploadNotify", param); | ||
| 103 | + System.out.println(c); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + public static void all() { | ||
| 107 | + NameValuePair[] param = { new NameValuePair("app_access_key", app_access_key), | ||
| 108 | + new NameValuePair("relation_id", "498122"), | ||
| 109 | + | ||
| 110 | + new NameValuePair("user_access_key", user_access_key), new NameValuePair("upload_type", "1"), | ||
| 111 | + new NameValuePair("video_type", "2"), new NameValuePair("page_no", "1"), | ||
| 112 | + new NameValuePair("video_uuid", md5) }; | ||
| 113 | + String c = HttpReq.postRequestWidthResult("http://localhost:8080/cnlive_live_web/api/video/all", param); | ||
| 114 | + System.out.println(c); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + public static void main(String[] args) { | ||
| 118 | + // new HttpPostArgumentTest2().delete(); | ||
| 119 | + //HttpPostArgumentTest2.all(); | ||
| 120 | + HttpPostArgumentTest2.redirect(); | ||
| 121 | + // HttpReq.postRequestWidthResult("http://120.132.76.51:9696/cnlive_encoding_job/task", | ||
| 122 | + // "json", "jsonjsonjsonjson");r | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | +} |
src/main/java/com/cnlive/mz/live/action/Init.java
0 → 100644
| 1 | +package com.cnlive.mz.live.action; | ||
| 2 | + | ||
| 3 | +import java.io.IOException; | ||
| 4 | + | ||
| 5 | +import javax.servlet.ServletConfig; | ||
| 6 | +import javax.servlet.ServletException; | ||
| 7 | +import javax.servlet.http.HttpServlet; | ||
| 8 | +import javax.servlet.http.HttpServletRequest; | ||
| 9 | +import javax.servlet.http.HttpServletResponse; | ||
| 10 | + | ||
| 11 | +import org.smart4j.plugin.job.JobHelper; | ||
| 12 | + | ||
| 13 | +import com.cnlive.mz.live.service.impl.Job; | ||
| 14 | + | ||
| 15 | +public class Init extends HttpServlet { | ||
| 16 | + | ||
| 17 | + @Override | ||
| 18 | + public void init(ServletConfig config) throws ServletException { | ||
| 19 | + // 初始化 | ||
| 20 | + JobHelper.startJob(Job.class, "0/30 * * * * ?"); | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { | ||
| 25 | + super.doGet(req, resp); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { | ||
| 30 | + super.doPost(req, resp); | ||
| 31 | + } | ||
| 32 | +} |
src/main/java/com/cnlive/mz/live/action/LiveAction.java
| 1 | -/** | ||
| 2 | - * Project Name:cnlive_live_web | ||
| 3 | - * File Name:RoomAction.java | ||
| 4 | - * Package Name:com.cnlive.mz.live.action | ||
| 5 | - * Date:2016年4月25日下午1:12:48 | ||
| 6 | - * Copyright (c) 2016, cnlive.com All Rights Reserved. | ||
| 7 | - * | ||
| 8 | - */ | ||
| 9 | - | ||
| 10 | -package com.cnlive.mz.live.action; | ||
| 11 | - | ||
| 12 | -import java.io.UnsupportedEncodingException; | ||
| 13 | -import java.util.List; | ||
| 14 | - | ||
| 15 | -import org.smart4j.framework.dao.bean.Pager; | ||
| 16 | -import org.smart4j.framework.ioc.annotation.Inject; | ||
| 17 | -import org.smart4j.framework.mvc.DataContext; | ||
| 18 | -import org.smart4j.framework.mvc.annotation.Action; | ||
| 19 | -import org.smart4j.framework.mvc.annotation.Request; | ||
| 20 | -import org.smart4j.framework.mvc.bean.Multipart; | ||
| 21 | -import org.smart4j.framework.mvc.bean.Multiparts; | ||
| 22 | -import org.smart4j.framework.mvc.bean.Params; | ||
| 23 | -import org.smart4j.framework.mvc.bean.Result; | ||
| 24 | -import org.smart4j.framework.mvc.bean.View; | ||
| 25 | -import org.smart4j.framework.util.CastUtil; | ||
| 26 | - | ||
| 27 | -import com.cnlive.mz.commons.Constants; | ||
| 28 | -import com.cnlive.mz.commons.net.HttpReq; | ||
| 29 | -import com.cnlive.mz.live.common.LiveUtils; | ||
| 30 | -import com.cnlive.mz.live.entity.TLive; | ||
| 31 | -import com.cnlive.mz.live.entity.TRoom; | ||
| 32 | -import com.cnlive.mz.live.rest.BaseUtil; | ||
| 33 | -import com.cnlive.mz.live.service.TLiveService; | ||
| 34 | -import com.cnlive.mz.live.service.TRoomService; | ||
| 35 | - | ||
| 36 | -/** | ||
| 37 | - * TODO: 机构主播和个人主播发起直播活动 <br/> | ||
| 38 | - * Date: 2016年4月25日 下午1:12:48 <br/> | ||
| 39 | - * | ||
| 40 | - * @author liujicheng | ||
| 41 | - * @version V1.0 | ||
| 42 | - * @since JDK 1.6 | ||
| 43 | - */ | ||
| 44 | -@Action | ||
| 45 | -public class LiveAction { | ||
| 46 | - @Inject | ||
| 47 | - private TLiveService tLiveService; | ||
| 48 | - @Inject | ||
| 49 | - private TRoomService tRoomService; | ||
| 50 | - | ||
| 51 | - @Request.Get("/live/preload") | ||
| 52 | - public View preload() { | ||
| 53 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 54 | - View view = new View("live/live_add.jsp"); | ||
| 55 | - List<TRoom> tRooms = tRoomService.getTRooms(user_id); | ||
| 56 | - view.data("tRooms", tRooms); | ||
| 57 | - return view; | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - @Request.Get("/live/list/{page_number}") | ||
| 61 | - public View list(int page_number) { | ||
| 62 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 63 | - System.out.println(user_id); | ||
| 64 | - Pager<TLive> tLive = tLiveService.getTLivePager(page_number, Constants.PAGE_SIZE, user_id); | ||
| 65 | - return new View("live/live_management.jsp").data("tLive", tLive); | ||
| 66 | - } | ||
| 67 | - | ||
| 68 | - @Request.Post("/live/save") | ||
| 69 | - public Result saveLive(Params params, Multiparts multiparts) { | ||
| 70 | - System.out.println(params + "....and....." + multiparts); | ||
| 71 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 72 | - Multipart multipart = multiparts.getOne(); | ||
| 73 | - tLiveService.add(user_id, params, multipart); | ||
| 74 | - return new Result(false); | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | - @Request.Get("/live/edit/{id}") | ||
| 78 | - public View edit(int id) { | ||
| 79 | - TLive tLive = tLiveService.getTLiveById(id); | ||
| 80 | - TRoom tRoom = tRoomService.getTRoomById(Integer.parseInt(tLive.getLive_room_id())); | ||
| 81 | - List<TRoom> list = tRoomService.getTRooms(tLive.getT_user_id()); | ||
| 82 | - View view = new View("live/live_edit.jsp"); | ||
| 83 | - view.data("tActivity", tLive); | ||
| 84 | - view.data("tRoom", tRoom); | ||
| 85 | - view.data("tRooms", list); | ||
| 86 | - return view; | ||
| 87 | - } | ||
| 88 | - | ||
| 89 | - // | ||
| 90 | - @Request.Get("/live/preview/{id}") | ||
| 91 | - public View preview(int id) { | ||
| 92 | - TLive tLive = tLiveService.getTLiveById(id); | ||
| 93 | - TRoom tRoom = tRoomService.getTRoomById(Integer.parseInt(tLive.getLive_room_id())); | ||
| 94 | - View view = new View("live/live_preview.jsp"); | ||
| 95 | - view.data("tLive", tLive); | ||
| 96 | - view.data("tRoom", tRoom); | ||
| 97 | - return view; | ||
| 98 | - } | ||
| 99 | - | ||
| 100 | - @Request.Get("/check/list/{page_number}") | ||
| 101 | - public View check(int page_number) { | ||
| 102 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 103 | - Pager<TLive> tLive = tLiveService.getTCheckLivePager(page_number, 12, user_id); | ||
| 104 | - View view = new View("check/monitor.jsp"); | ||
| 105 | - view.data("tLive", tLive); | ||
| 106 | - return view; | ||
| 107 | - } | ||
| 108 | - | ||
| 109 | - // 置顶 | ||
| 110 | - @Request.Get("/check/top/{id}") | ||
| 111 | - public Result top(int id) { | ||
| 112 | - tLiveService.top(id); | ||
| 113 | - return new Result(true); | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - // 切断 | ||
| 117 | - @Request.Get("/check/cut/{id}") | ||
| 118 | - public Result cut(int id) { | ||
| 119 | - return new Result(true); | ||
| 120 | - } | ||
| 121 | - | ||
| 122 | - // 通过审核 | ||
| 123 | - @Request.Get("/check/pass/{id}") | ||
| 124 | - public Result pass(int id) { | ||
| 125 | - tLiveService.pass(id); | ||
| 126 | - return new Result(true); | ||
| 127 | - } | ||
| 128 | - | ||
| 129 | - @Request.Post("/check/close/{id}") | ||
| 130 | - public Result coseLive(int id, Params params) throws UnsupportedEncodingException { | ||
| 131 | - String userId = params.getString("user_id"); | ||
| 132 | - String streamName = userId + "_" + id; | ||
| 133 | - // String streamName = "498122_57"; | ||
| 134 | - String accesskey = "I3TC8a4xboPUMe5xlp22"; | ||
| 135 | - accesskey = java.net.URLEncoder.encode(accesskey, "utf-8"); | ||
| 136 | - String signature = BaseUtil.signature(streamName); | ||
| 137 | - String expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10); | ||
| 138 | - System.out.println(expire + "---expire---"); | ||
| 139 | - // 添加到黑名单。。 | ||
| 140 | - try { | ||
| 141 | - addBlackList(signature, accesskey, expire, streamName); | ||
| 142 | - } catch (UnsupportedEncodingException e) { | ||
| 143 | - e.printStackTrace(); | ||
| 144 | - } | ||
| 145 | - boolean flag = tLiveService.closeLive(id); | ||
| 146 | - return new Result(flag); | ||
| 147 | - } | ||
| 148 | - | ||
| 149 | - /** | ||
| 150 | - * 添加到黑名单 | ||
| 151 | - * | ||
| 152 | - * @param signature | ||
| 153 | - * @param accesskey | ||
| 154 | - * @param expire | ||
| 155 | - * @param streamName | ||
| 156 | - * @return | ||
| 157 | - * @throws UnsupportedEncodingException | ||
| 158 | - */ | ||
| 159 | - public String addBlackList(String signature, String accesskey, String expire, String streamName) | ||
| 160 | - throws UnsupportedEncodingException { | ||
| 161 | - String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey | ||
| 162 | - + "&expire=" + expire + "&method=add&app=live&name=" + streamName; | ||
| 163 | - System.out.println(url); | ||
| 164 | - String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 165 | - int status = HttpReq.getRequest(url); | ||
| 166 | - System.out.println("............" + status); | ||
| 167 | - System.out.println("............" + jsonArrStr); | ||
| 168 | - /* | ||
| 169 | - * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String | ||
| 170 | - * chatRoomid = (String) map.get("Content-Length"); | ||
| 171 | - */ | ||
| 172 | - return jsonArrStr; | ||
| 173 | - } | ||
| 174 | - | ||
| 175 | - /** | ||
| 176 | - * 从黑名单删除 | ||
| 177 | - * | ||
| 178 | - * @param signature | ||
| 179 | - * @param accesskey | ||
| 180 | - * @param expire | ||
| 181 | - * @param streamName | ||
| 182 | - * @return | ||
| 183 | - * @throws UnsupportedEncodingException | ||
| 184 | - */ | ||
| 185 | - public Object delBlackList(String signature, String accesskey, String expire, String streamName) | ||
| 186 | - throws UnsupportedEncodingException { | ||
| 187 | - String url = "http://cnlive.uplive.ks-cdn.com/blacklist?signature=" + signature + "&accesskey=" + accesskey | ||
| 188 | - + "&expire=" + expire + "&method=del&app=live&name=" + streamName; | ||
| 189 | - String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 190 | - System.out.println(); | ||
| 191 | - /* | ||
| 192 | - * Map map = JsonUtil.getMapFromJsonObjStr(jsonArrStr); String | ||
| 193 | - * chatRoomid = (String) map.get("Content-Length"); | ||
| 194 | - */ | ||
| 195 | - return jsonArrStr; | ||
| 196 | - } | 1 | +/** |
| 2 | + * Project Name:cnlive_live_web | ||
| 3 | + * File Name:RoomAction.java | ||
| 4 | + * Package Name:com.cnlive.mz.live.action | ||
| 5 | + * Date:2016年4月25日下午1:12:48 | ||
| 6 | + * Copyright (c) 2016, cnlive.com All Rights Reserved. | ||
| 7 | + * | ||
| 8 | + */ | ||
| 9 | + | ||
| 10 | +package com.cnlive.mz.live.action; | ||
| 11 | + | ||
| 12 | +import java.io.UnsupportedEncodingException; | ||
| 13 | +import java.util.List; | ||
| 14 | + | ||
| 15 | +import org.smart4j.framework.dao.bean.Pager; | ||
| 16 | +import org.smart4j.framework.ioc.annotation.Inject; | ||
| 17 | +import org.smart4j.framework.mvc.DataContext; | ||
| 18 | +import org.smart4j.framework.mvc.annotation.Action; | ||
| 19 | +import org.smart4j.framework.mvc.annotation.Request; | ||
| 20 | +import org.smart4j.framework.mvc.bean.Multipart; | ||
| 21 | +import org.smart4j.framework.mvc.bean.Multiparts; | ||
| 22 | +import org.smart4j.framework.mvc.bean.Params; | ||
| 23 | +import org.smart4j.framework.mvc.bean.Result; | ||
| 24 | +import org.smart4j.framework.mvc.bean.View; | ||
| 25 | +import org.smart4j.framework.util.CastUtil; | ||
| 26 | + | ||
| 27 | +import com.cnlive.mz.commons.Constants; | ||
| 28 | +import com.cnlive.mz.commons.net.HttpReq; | ||
| 29 | +import com.cnlive.mz.live.common.LiveUtils; | ||
| 30 | +import com.cnlive.mz.live.entity.TLive; | ||
| 31 | +import com.cnlive.mz.live.entity.TRoom; | ||
| 32 | +import com.cnlive.mz.live.rest.BaseUtil; | ||
| 33 | +import com.cnlive.mz.live.service.TCheckService; | ||
| 34 | +import com.cnlive.mz.live.service.TLiveService; | ||
| 35 | +import com.cnlive.mz.live.service.TRoomService; | ||
| 36 | + | ||
| 37 | +/** | ||
| 38 | + * TODO: 机构主播和个人主播发起直播活动 <br/> | ||
| 39 | + * Date: 2016年4月25日 下午1:12:48 <br/> | ||
| 40 | + * | ||
| 41 | + * @author liujicheng | ||
| 42 | + * @version V1.0 | ||
| 43 | + * @since JDK 1.6 | ||
| 44 | + */ | ||
| 45 | +@Action | ||
| 46 | +public class LiveAction { | ||
| 47 | + @Inject | ||
| 48 | + private TLiveService tLiveService; | ||
| 49 | + @Inject | ||
| 50 | + private TRoomService tRoomService; | ||
| 51 | + @Inject | ||
| 52 | + private TCheckService tCheckService; | ||
| 53 | + @Request.Get("/live/preload") | ||
| 54 | + public View preload() { | ||
| 55 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 56 | + View view = new View("live/live_add.jsp"); | ||
| 57 | + List<TRoom> tRooms = tRoomService.getTRooms(user_id); | ||
| 58 | + view.data("tRooms", tRooms); | ||
| 59 | + return view; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + @Request.Get("/live/list/{page_number}") | ||
| 63 | + public View list(int page_number) { | ||
| 64 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 65 | + System.out.println(user_id); | ||
| 66 | + Pager<TLive> tLive = tLiveService.getTLivePager(page_number, Constants.PAGE_SIZE, user_id); | ||
| 67 | + return new View("live/live_management.jsp").data("tLive", tLive); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + @Request.Post("/live/save") | ||
| 71 | + public Result saveLive(Params params, Multiparts multiparts) { | ||
| 72 | + System.out.println(params + "....and....." + multiparts); | ||
| 73 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 74 | + Multipart multipart = multiparts.getOne(); | ||
| 75 | + tLiveService.add(user_id, params, multipart); | ||
| 76 | + return new Result(false); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + @Request.Get("/live/edit/{id}") | ||
| 80 | + public View edit(int id) { | ||
| 81 | + TLive tLive = tLiveService.getTLiveById(id); | ||
| 82 | + TRoom tRoom = tRoomService.getTRoomById(Integer.parseInt(tLive.getLive_room_id())); | ||
| 83 | + List<TRoom> list = tRoomService.getTRooms(tLive.getT_user_id()); | ||
| 84 | + View view = new View("live/live_edit.jsp"); | ||
| 85 | + view.data("tActivity", tLive); | ||
| 86 | + view.data("tRoom", tRoom); | ||
| 87 | + view.data("tRooms", list); | ||
| 88 | + return view; | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + // | ||
| 92 | + @Request.Get("/live/preview/{id}") | ||
| 93 | + public View preview(int id) { | ||
| 94 | + TLive tLive = tLiveService.getTLiveById(id); | ||
| 95 | + TRoom tRoom = tRoomService.getTRoomById(Integer.parseInt(tLive.getLive_room_id())); | ||
| 96 | + View view = new View("live/live_preview.jsp"); | ||
| 97 | + view.data("tLive", tLive); | ||
| 98 | + view.data("tRoom", tRoom); | ||
| 99 | + return view; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + @Request.Get("/check/list/{page_number}") | ||
| 103 | + public View check(int page_number) { | ||
| 104 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 105 | + Pager<TLive> tLive = tLiveService.getTCheckLivePager(page_number, 12, user_id); | ||
| 106 | + View view = new View("check/monitor.jsp"); | ||
| 107 | + view.data("tLive", tLive); | ||
| 108 | + return view; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + // 置顶 | ||
| 112 | + @Request.Get("/check/top/{id}") | ||
| 113 | + public Result top(int id) { | ||
| 114 | + tLiveService.top(id); | ||
| 115 | + return new Result(true); | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + // 切断 | ||
| 119 | + @Request.Post("/check/cut/{id}") | ||
| 120 | + public Result cut(int id,Params params) throws UnsupportedEncodingException { | ||
| 121 | + String live_url = params.getString("live_url"); | ||
| 122 | + if(live_url.isEmpty()){ | ||
| 123 | + return null; | ||
| 124 | + }else{ | ||
| 125 | + int index = live_url.lastIndexOf("live"); | ||
| 126 | + String streamName = live_url.substring(index+6); | ||
| 127 | + System.out.println("streamName==="+streamName); | ||
| 128 | + String accesskey = BaseUtil.getAccessKey(); | ||
| 129 | + accesskey = java.net.URLEncoder.encode(accesskey,"utf-8"); | ||
| 130 | + String signature = BaseUtil.signature(streamName); | ||
| 131 | + String del = "del"; | ||
| 132 | + String delsignature = BaseUtil.signature(del,streamName); | ||
| 133 | + String expire = BaseUtil.getTimestamp(); | ||
| 134 | + System.out.println(expire+"---expire---"); | ||
| 135 | + //断流。 | ||
| 136 | + try { | ||
| 137 | + addBlackList(signature,accesskey,expire,streamName); | ||
| 138 | + delBlackList(delsignature,accesskey,expire,streamName); | ||
| 139 | + } catch (UnsupportedEncodingException e) { | ||
| 140 | + e.printStackTrace(); | ||
| 141 | + } | ||
| 142 | + boolean flag = tCheckService.closeLive(id); | ||
| 143 | + return new Result(flag); | ||
| 144 | + } | ||
| 145 | + } | ||
| 146 | + // 通过审核 | ||
| 147 | + @Request.Get("/check/pass/{id}") | ||
| 148 | + public Result pass(int id) { | ||
| 149 | + tLiveService.pass(id); | ||
| 150 | + return new Result(true); | ||
| 151 | + } | ||
| 152 | + | ||
| 153 | + @Request.Post("/check/close/{id}") | ||
| 154 | + public Result coseLive(int id, Params params) throws UnsupportedEncodingException { | ||
| 155 | + String userId = params.getString("user_id"); | ||
| 156 | + String streamName = userId + "_" + id; | ||
| 157 | + // String streamName = "498122_57"; | ||
| 158 | + String accesskey = "I3TC8a4xboPUMe5xlp22"; | ||
| 159 | + accesskey = java.net.URLEncoder.encode(accesskey, "utf-8"); | ||
| 160 | + String signature = BaseUtil.signature(streamName); | ||
| 161 | + String expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10); | ||
| 162 | + System.out.println(expire + "---expire---"); | ||
| 163 | + // 添加到黑名单。。 | ||
| 164 | + try { | ||
| 165 | + addBlackList(signature, accesskey, expire, streamName); | ||
| 166 | + } catch (UnsupportedEncodingException e) { | ||
| 167 | + e.printStackTrace(); | ||
| 168 | + } | ||
| 169 | + boolean flag = tLiveService.closeLive(id); | ||
| 170 | + return new Result(flag); | ||
| 171 | + } | ||
| 172 | + | ||
| 173 | + /** | ||
| 174 | + * 添加到黑名单 | ||
| 175 | + * | ||
| 176 | + * @param signature | ||
| 177 | + * @param accesskey | ||
| 178 | + * @param expire | ||
| 179 | + * @param streamName | ||
| 180 | + * @return | ||
| 181 | + * @throws UnsupportedEncodingException | ||
| 182 | + */ | ||
| 183 | + public String addBlackList(String signature, String accesskey, String expire,String streamName) throws UnsupportedEncodingException { | ||
| 184 | + String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature="+signature+"&accesskey="+accesskey+"&expire="+expire+"&app=live&method=add&name=" + streamName; | ||
| 185 | + System.out.println(url); | ||
| 186 | + String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 187 | + int status = HttpReq.getRequest(url); | ||
| 188 | + System.out.println(status+"......and......"+jsonArrStr); | ||
| 189 | + return jsonArrStr; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + /** | ||
| 193 | + * 从黑名单删除 | ||
| 194 | + * | ||
| 195 | + * @param signature | ||
| 196 | + * @param accesskey | ||
| 197 | + * @param expire | ||
| 198 | + * @param streamName | ||
| 199 | + * @return | ||
| 200 | + * @throws UnsupportedEncodingException | ||
| 201 | + */ | ||
| 202 | + public Object delBlackList(String signature, String accesskey, String expire,String streamName) throws UnsupportedEncodingException { | ||
| 203 | + String url = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature="+signature+"&accesskey="+accesskey+"&expire="+expire+"&app=live&method=del&name=" + streamName; | ||
| 204 | + System.out.println("..url.."+url); | ||
| 205 | + String jsonArrStr = HttpReq.getRequestWidthResult(url); | ||
| 206 | + System.out.println("..jsonArrStr.."+jsonArrStr); | ||
| 207 | + return jsonArrStr; | ||
| 208 | + | ||
| 209 | + } | ||
| 197 | } | 210 | } |
| 198 | \ No newline at end of file | 211 | \ No newline at end of file |
src/main/java/com/cnlive/mz/live/action/RoomAction.java
| 1 | -/** | ||
| 2 | - * Project Name:cnlive_live_web | ||
| 3 | - * File Name:RoomAction.java | ||
| 4 | - * Package Name:com.cnlive.mz.live.action | ||
| 5 | - * Date:2016年4月25日下午1:12:48 | ||
| 6 | - * Copyright (c) 2016, cnlive.com All Rights Reserved. | ||
| 7 | - * | ||
| 8 | - */ | ||
| 9 | - | ||
| 10 | -package com.cnlive.mz.live.action; | ||
| 11 | - | ||
| 12 | -import java.util.List; | ||
| 13 | -import java.util.Map; | ||
| 14 | - | ||
| 15 | -import org.smart4j.framework.dao.bean.Pager; | ||
| 16 | -import org.smart4j.framework.ioc.annotation.Inject; | ||
| 17 | -import org.smart4j.framework.mvc.DataContext; | ||
| 18 | -import org.smart4j.framework.mvc.annotation.Action; | ||
| 19 | -import org.smart4j.framework.mvc.annotation.Request; | ||
| 20 | -import org.smart4j.framework.mvc.bean.Multiparts; | ||
| 21 | -import org.smart4j.framework.mvc.bean.Params; | ||
| 22 | -import org.smart4j.framework.mvc.bean.Result; | ||
| 23 | -import org.smart4j.framework.mvc.bean.View; | ||
| 24 | -import org.smart4j.framework.orm.DataSet; | ||
| 25 | -import org.smart4j.framework.util.CastUtil; | ||
| 26 | - | ||
| 27 | -import com.cnlive.mz.commons.Constants; | ||
| 28 | -import com.cnlive.mz.live.common.LiveUtils; | ||
| 29 | -import com.cnlive.mz.live.entity.TRoom; | ||
| 30 | -import com.cnlive.mz.live.service.TRoomService; | ||
| 31 | - | ||
| 32 | -/** | ||
| 33 | - * TODO: 这里用一句话描述当前类的作用 Date: 2016年4月25日 下午1:12:48 <br/> | ||
| 34 | - * | ||
| 35 | - * @author liujicheng | ||
| 36 | - * @version V1.0 | ||
| 37 | - * @since JDK 1.6 | ||
| 38 | - */ | ||
| 39 | -@Action | ||
| 40 | -public class RoomAction { | ||
| 41 | - @Inject | ||
| 42 | - private TRoomService tRoomService; | ||
| 43 | - int user_id = 0; | ||
| 44 | - | ||
| 45 | - @Request.Get("/room/list/{page_number}") | ||
| 46 | - public View list(int page_number) { | ||
| 47 | - // int user_id = | ||
| 48 | - // CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 49 | - Pager<TRoom> tRooms = tRoomService.getTRoomPager(page_number, Constants.PAGE_SIZE, user_id); | ||
| 50 | - return new View("room/room_management.jsp").data("tRooms", tRooms); | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - @Request.Get("/room/delete/{id}") | ||
| 54 | - public Result delete(int id) { | ||
| 55 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 56 | - boolean success = tRoomService.delete(id, user_id); | ||
| 57 | - return new Result(success); | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - // 查看读取 | ||
| 61 | - @Request.Get("/room/edit/{id}") | ||
| 62 | - public View edit(int id) { | ||
| 63 | - /*String sql = "select * " | ||
| 64 | - + "from t_video t " | ||
| 65 | - + "where t_user_id = ? and state !=207 and state !=201 and state !=601 order by t.create_time desc "; | ||
| 66 | - List<Map<String,Object>> videoList = DataSet.selectMapWithSql(sql, 9); | ||
| 67 | - System.out.println("....................."+videoList); | ||
| 68 | - for (int i = 0; i < videoList.size(); i++) { | ||
| 69 | - System.out.println("....................."); | ||
| 70 | - System.out.println(videoList.get(i)); | ||
| 71 | - }*/ | ||
| 72 | - TRoom tRoom = tRoomService.getTRoomById(id); | ||
| 73 | - View view = new View("room/room_edit.jsp"); | ||
| 74 | - view.data("tRoom", tRoom); | ||
| 75 | - return view; | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - @Request.Post("/room/add") | ||
| 79 | - public Result add(Params params, Multiparts multiparts) { | ||
| 80 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 81 | - tRoomService.save(user_id, params, multiparts); | ||
| 82 | - return new Result(true); | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - // 查看读取 | ||
| 86 | - @Request.Get("/room/pload") | ||
| 87 | - public View pload() { | ||
| 88 | - System.out.println("......."); | ||
| 89 | - View view = new View("room/room_add.jsp"); | ||
| 90 | - return view; | ||
| 91 | - } | ||
| 92 | - //room/editSave | ||
| 93 | - @Request.Post("/room/editSave") | ||
| 94 | - public Result editSave(Params params, Multiparts multiparts) { | ||
| 95 | - System.out.println(params+"..nnnn.."+multiparts); | ||
| 96 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 97 | - tRoomService.save(user_id, params, multiparts); | ||
| 98 | - return new Result(true); | ||
| 99 | - } | ||
| 100 | -} | 1 | +/** |
| 2 | + * Project Name:cnlive_live_web | ||
| 3 | + * File Name:RoomAction.java | ||
| 4 | + * Package Name:com.cnlive.mz.live.action | ||
| 5 | + * Date:2016年4月25日下午1:12:48 | ||
| 6 | + * Copyright (c) 2016, cnlive.com All Rights Reserved. | ||
| 7 | + * | ||
| 8 | + */ | ||
| 9 | + | ||
| 10 | +package com.cnlive.mz.live.action; | ||
| 11 | + | ||
| 12 | +import java.util.List; | ||
| 13 | +import java.util.Map; | ||
| 14 | + | ||
| 15 | +import org.smart4j.framework.dao.bean.Pager; | ||
| 16 | +import org.smart4j.framework.ioc.annotation.Inject; | ||
| 17 | +import org.smart4j.framework.mvc.DataContext; | ||
| 18 | +import org.smart4j.framework.mvc.annotation.Action; | ||
| 19 | +import org.smart4j.framework.mvc.annotation.Request; | ||
| 20 | +import org.smart4j.framework.mvc.bean.Multiparts; | ||
| 21 | +import org.smart4j.framework.mvc.bean.Params; | ||
| 22 | +import org.smart4j.framework.mvc.bean.Result; | ||
| 23 | +import org.smart4j.framework.mvc.bean.View; | ||
| 24 | +import org.smart4j.framework.orm.DataSet; | ||
| 25 | +import org.smart4j.framework.util.CastUtil; | ||
| 26 | + | ||
| 27 | +import com.cnlive.mz.commons.Constants; | ||
| 28 | +import com.cnlive.mz.live.common.LiveUtils; | ||
| 29 | +import com.cnlive.mz.live.entity.TRoom; | ||
| 30 | +import com.cnlive.mz.live.service.TRoomService; | ||
| 31 | + | ||
| 32 | +/** | ||
| 33 | + * TODO: 这里用一句话描述当前类的作用 Date: 2016年4月25日 下午1:12:48 <br/> | ||
| 34 | + * | ||
| 35 | + * @author liujicheng | ||
| 36 | + * @version V1.0 | ||
| 37 | + * @since JDK 1.6 | ||
| 38 | + */ | ||
| 39 | +@Action | ||
| 40 | +public class RoomAction { | ||
| 41 | + @Inject | ||
| 42 | + private TRoomService tRoomService; | ||
| 43 | + int user_id = 0; | ||
| 44 | + | ||
| 45 | + @Request.Get("/room/list/{page_number}") | ||
| 46 | + public View list(int page_number) { | ||
| 47 | + // int user_id = | ||
| 48 | + // CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 49 | + Pager<TRoom> tRooms = tRoomService.getTRoomPager(page_number, Constants.PAGE_SIZE, user_id); | ||
| 50 | + return new View("room/room_management.jsp").data("tRooms", tRooms); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + @Request.Get("/room/delete/{id}") | ||
| 54 | + public Result delete(int id) { | ||
| 55 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 56 | + boolean success = tRoomService.delete(id, user_id); | ||
| 57 | + return new Result(success); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + // 查看读取 | ||
| 61 | + @Request.Get("/room/edit/{id}") | ||
| 62 | + public View edit(int id) { | ||
| 63 | + /*String sql = "select * " | ||
| 64 | + + "from t_video t " | ||
| 65 | + + "where t_user_id = ? and state !=207 and state !=201 and state !=601 order by t.create_time desc "; | ||
| 66 | + List<Map<String,Object>> videoList = DataSet.selectMapWithSql(sql, 9); | ||
| 67 | + System.out.println("....................."+videoList); | ||
| 68 | + for (int i = 0; i < videoList.size(); i++) { | ||
| 69 | + System.out.println("....................."); | ||
| 70 | + System.out.println(videoList.get(i)); | ||
| 71 | + }*/ | ||
| 72 | + TRoom tRoom = tRoomService.getTRoomById(id); | ||
| 73 | + View view = new View("room/room_edit.jsp"); | ||
| 74 | + view.data("tRoom", tRoom); | ||
| 75 | + return view; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + @Request.Post("/room/add") | ||
| 79 | + public Result add(Params params, Multiparts multiparts) { | ||
| 80 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 81 | + tRoomService.save(user_id, params, multiparts); | ||
| 82 | + return new Result(true); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + // 查看读取 | ||
| 86 | + @Request.Get("/room/pload") | ||
| 87 | + public View pload() { | ||
| 88 | + System.out.println("......."); | ||
| 89 | + View view = new View("room/room_add.jsp"); | ||
| 90 | + return view; | ||
| 91 | + } | ||
| 92 | + //room/editSave | ||
| 93 | + @Request.Post("/room/editSave") | ||
| 94 | + public Result editSave(Params params, Multiparts multiparts) { | ||
| 95 | + System.out.println(params+"..nnnn.."+multiparts); | ||
| 96 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 97 | + tRoomService.save(user_id, params, multiparts); | ||
| 98 | + return new Result(true); | ||
| 99 | + } | ||
| 100 | +} |
src/main/java/com/cnlive/mz/live/action/VideoAction.java
| 1 | -package com.cnlive.mz.live.action; | ||
| 2 | - | ||
| 3 | -import java.util.Date; | ||
| 4 | -import java.util.LinkedHashMap; | ||
| 5 | -import java.util.Map; | ||
| 6 | - | ||
| 7 | -import org.apache.commons.lang3.StringUtils; | ||
| 8 | -import org.smart4j.framework.dao.bean.Pager; | ||
| 9 | -import org.smart4j.framework.ioc.annotation.Inject; | ||
| 10 | -import org.smart4j.framework.mvc.DataContext; | ||
| 11 | -import org.smart4j.framework.mvc.annotation.Action; | ||
| 12 | -import org.smart4j.framework.mvc.annotation.Request; | ||
| 13 | -import org.smart4j.framework.mvc.bean.ApiBean; | ||
| 14 | -import org.smart4j.framework.mvc.bean.Params; | ||
| 15 | -import org.smart4j.framework.mvc.bean.Result; | ||
| 16 | -import org.smart4j.framework.mvc.bean.View; | ||
| 17 | -import org.smart4j.framework.util.CastUtil; | ||
| 18 | - | ||
| 19 | -import com.cnlive.mz.commons.CnliveUtil; | ||
| 20 | -import com.cnlive.mz.live.common.LiveUtils; | ||
| 21 | -import com.cnlive.mz.live.entity.TLive; | ||
| 22 | -import com.cnlive.mz.live.entity.TVideo; | ||
| 23 | -import com.cnlive.mz.live.service.TDispatchServerService; | ||
| 24 | -import com.cnlive.mz.live.service.TLiveService; | ||
| 25 | -import com.cnlive.mz.live.service.TUserService; | ||
| 26 | -import com.cnlive.mz.live.service.TVideoService; | ||
| 27 | - | ||
| 28 | -@Action | ||
| 29 | -public class VideoAction { | ||
| 30 | - @Inject | ||
| 31 | - private TDispatchServerService tDispatchServerService; | ||
| 32 | - @Inject | ||
| 33 | - private TVideoService tVideoService; | ||
| 34 | - @Inject | ||
| 35 | - private TUserService tUserService; | ||
| 36 | - @Inject | ||
| 37 | - private TLiveService tLiveService; | ||
| 38 | - | ||
| 39 | - /** | ||
| 40 | - * 服务器定向 | ||
| 41 | - * | ||
| 42 | - * @param params | ||
| 43 | - * @return | ||
| 44 | - * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId" | ||
| 45 | - * :"1167015","uuid": | ||
| 46 | - * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"} | ||
| 47 | - */ | ||
| 48 | - @Request.Post("/api/video/redirect") | ||
| 49 | - public ApiBean redirect(Params params) { | ||
| 50 | - String app_access_key = params.getString("app_access_key"); | ||
| 51 | - String video_type = params.getString("video_type"); | ||
| 52 | - String user_id = params.getString("relation_id"); | ||
| 53 | - ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id); | ||
| 54 | - return apiBean; | ||
| 55 | - } | ||
| 56 | - | ||
| 57 | - @Request.Post("/api/video/supload") | ||
| 58 | - public ApiBean supload(Params params) { | ||
| 59 | - Map data = new LinkedHashMap(); | ||
| 60 | - String app_access_key = params.getString("app_access_key"); | ||
| 61 | - String video_type = params.getString("video_type"); | ||
| 62 | - String user_access_key = params.getString("user_access_key"); | ||
| 63 | - String server_access_key = params.getString("server_access_key"); | ||
| 64 | - String active_id = params.getString("active_id"); | ||
| 65 | - String title = params.getString("title"); | ||
| 66 | - String direct = params.getString("direct"); | ||
| 67 | - String description = params.getString("description"); | ||
| 68 | - String custom_args = params.getString("custom_args"); | ||
| 69 | - String md5 = params.getString("md5"); | ||
| 70 | - String relation_id = params.getString("relation_id"); | ||
| 71 | - String uuid = ""; | ||
| 72 | - if (video_type.equals("2")) { | ||
| 73 | - // 2:sdk上传录播文件 | ||
| 74 | - TVideo tVideo = new TVideo(); | ||
| 75 | - tVideo.setCustom_args(custom_args); | ||
| 76 | - tVideo.setRelation_id(relation_id); | ||
| 77 | - tVideo.setName(params.getString("name")); | ||
| 78 | - tVideo.setVideo_type(params.getString("video_type")); | ||
| 79 | - tVideo.setPlat(params.getString("plat")); | ||
| 80 | - tVideo.setState(207); | ||
| 81 | - tVideo.setMd5(md5); | ||
| 82 | - uuid = CnliveUtil.getUUID(); | ||
| 83 | - tVideo.setVideo_uuid(uuid); | ||
| 84 | - tVideo.setTitle(title); | ||
| 85 | - tVideo.setDescription(description); | ||
| 86 | - tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key); | ||
| 87 | - } else if (video_type.equals("3")) { | ||
| 88 | - TLive tLive = tLiveService.getTLiveByUUId(active_id); | ||
| 89 | - tLive.setT_status_id(1); | ||
| 90 | - tLive.setTitle(title); | ||
| 91 | - tLive.setDescription(description); | ||
| 92 | - tLive.setStart_time(new Date()); | ||
| 93 | - tLive.setUser_uuid(params.getString("name")); | ||
| 94 | - tLive.setRelation_id(relation_id); | ||
| 95 | - tLive.setCustom_args(custom_args); | ||
| 96 | - uuid = tLive.getUuid(); | ||
| 97 | - if (StringUtils.isEmpty(direct)) { | ||
| 98 | - tLive.setDirect(0); | ||
| 99 | - } else { | ||
| 100 | - tLive.setDirect(Integer.parseInt(direct)); | ||
| 101 | - } | ||
| 102 | - // tLive.setLive_url("http://cnlive.hlslive.ks-cdn.com/live/" + | ||
| 103 | - // tLive.getT_user_id() + "_" + uuid | ||
| 104 | - // + "/index.m3u8"); | ||
| 105 | - tLive.setLive_url("rtmp://cnlive.rtmplive.ks-cdn.com/live/" + tLive.getT_user_id() + "_" + uuid); | ||
| 106 | - tLiveService.startLive(tLive); | ||
| 107 | - } | ||
| 108 | - data.put("video_uuid", uuid); | ||
| 109 | - ApiBean apiBean = new ApiBean(); | ||
| 110 | - apiBean.setCode(100); | ||
| 111 | - apiBean.setMessage("请求成功"); | ||
| 112 | - apiBean.setData(data); | ||
| 113 | - return apiBean; | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | - @Request.Post("/api/video/all") | ||
| 117 | - public ApiBean all(Params params) { | ||
| 118 | - String app_access_key = params.getString("app_access_key"); | ||
| 119 | - String relationId = params.getString("relation_id"); | ||
| 120 | - String pageNo = params.getString("page_no"); | ||
| 121 | - String relation_id = params.getString("relation_id"); | ||
| 122 | - String upload_type = params.getString("upload_type"); | ||
| 123 | - // String video_type = params.getString("video_type"); | ||
| 124 | - Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo); | ||
| 125 | - ApiBean apiBean = new ApiBean(); | ||
| 126 | - apiBean.setCode(100); | ||
| 127 | - apiBean.setMessage("请求成功"); | ||
| 128 | - apiBean.setData(page); | ||
| 129 | - return apiBean; | ||
| 130 | - } | ||
| 131 | - | ||
| 132 | - @Request.Get("/video/list/{page_number}") | ||
| 133 | - public View list(int page_number) { | ||
| 134 | - int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 135 | - Pager<TVideo> page = tVideoService.list(user_id, page_number, 33); | ||
| 136 | - return new View("live/video_management.jsp").data("videos", page); | ||
| 137 | - } | ||
| 138 | - | ||
| 139 | - @Request.Get("/video/check/{page_number}") | ||
| 140 | - public View check(int page_number) { | ||
| 141 | - Pager<TVideo> page = tVideoService.list(page_number, 33); | ||
| 142 | - return new View("live/video_management.jsp").data("videos", page); | ||
| 143 | - } | ||
| 144 | - | ||
| 145 | - @Request.Get("/video/pass/{id}") | ||
| 146 | - public Result pass(int id) { | ||
| 147 | - tVideoService.pass(id); | ||
| 148 | - return new Result(true); | ||
| 149 | - } | ||
| 150 | - | ||
| 151 | - @Request.Get("/video/view/{id}") | ||
| 152 | - public View view(int id) { | ||
| 153 | - TVideo tVideo = tVideoService.getVideoById(id); | ||
| 154 | - return new View("live/video_view.jsp").data("tVideo", tVideo); | ||
| 155 | - } | ||
| 156 | - | ||
| 157 | - @Request.Post("/api/video/one") | ||
| 158 | - public ApiBean one(Params params) { | ||
| 159 | - String app_access_key = params.getString("app_access_key"); | ||
| 160 | - String video_uuid = params.getString("video_uuid"); | ||
| 161 | - TVideo page = tVideoService.getVideoByUuId(video_uuid); | ||
| 162 | - ApiBean apiBean = new ApiBean(); | ||
| 163 | - apiBean.setCode(100); | ||
| 164 | - apiBean.setMessage("请求成功"); | ||
| 165 | - apiBean.setData(page); | ||
| 166 | - return apiBean; | ||
| 167 | - } | ||
| 168 | - | ||
| 169 | - @Request.Post("/api/video/uploadNotify") | ||
| 170 | - public ApiBean uploadNotify(Params params) { | ||
| 171 | - String video_uuid = params.getString("video_uuid"); | ||
| 172 | - String upload_type = params.getString("upload_type"); | ||
| 173 | - String video_type = params.getString("video_type"); | ||
| 174 | - String state = params.getString("state"); | ||
| 175 | - if (video_type.equals("2")) { | ||
| 176 | - // 点播通知 | ||
| 177 | - tVideoService.notify(video_uuid); | ||
| 178 | - } else if (video_type.equals("3")) { | ||
| 179 | - // 直播通知 | ||
| 180 | - tLiveService.notify(video_uuid); | ||
| 181 | - } | ||
| 182 | - ApiBean apiBean = new ApiBean(); | ||
| 183 | - apiBean.setCode(100); | ||
| 184 | - apiBean.setMessage("请求成功"); | ||
| 185 | - return apiBean; | ||
| 186 | - } | ||
| 187 | - | ||
| 188 | - @Request.Get("/api/video/error/{video_uuid}") | ||
| 189 | - public ApiBean beat(String video_uuid) { | ||
| 190 | - // 直播通知 | ||
| 191 | - tLiveService.notify(video_uuid); | ||
| 192 | - ApiBean apiBean = new ApiBean(); | ||
| 193 | - apiBean.setCode(100); | ||
| 194 | - apiBean.setMessage("请求成功"); | ||
| 195 | - return apiBean; | ||
| 196 | - } | ||
| 197 | - | ||
| 198 | - @Request.Post("/api/video/delete") | ||
| 199 | - public ApiBean delete(Params params) { | ||
| 200 | - String user_access_key = params.getString("user_access_key"); | ||
| 201 | - String video_uuid = params.getString("video_uuid"); | ||
| 202 | - String app_access_key = params.getString("app_access_key"); | ||
| 203 | - String video_type = params.getString("video_type");// 视频类型 | ||
| 204 | - tVideoService.delete(video_uuid); | ||
| 205 | - ApiBean apiBean = new ApiBean(); | ||
| 206 | - apiBean.setCode(100); | ||
| 207 | - apiBean.setMessage("请求成功"); | ||
| 208 | - return apiBean; | ||
| 209 | - } | ||
| 210 | -} | 1 | +package com.cnlive.mz.live.action; |
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | +import java.util.LinkedHashMap; | ||
| 5 | +import java.util.Map; | ||
| 6 | + | ||
| 7 | +import org.apache.commons.lang3.StringUtils; | ||
| 8 | +import org.smart4j.framework.dao.bean.Pager; | ||
| 9 | +import org.smart4j.framework.ioc.annotation.Inject; | ||
| 10 | +import org.smart4j.framework.mvc.DataContext; | ||
| 11 | +import org.smart4j.framework.mvc.annotation.Action; | ||
| 12 | +import org.smart4j.framework.mvc.annotation.Request; | ||
| 13 | +import org.smart4j.framework.mvc.bean.ApiBean; | ||
| 14 | +import org.smart4j.framework.mvc.bean.Params; | ||
| 15 | +import org.smart4j.framework.mvc.bean.Result; | ||
| 16 | +import org.smart4j.framework.mvc.bean.View; | ||
| 17 | +import org.smart4j.framework.util.CastUtil; | ||
| 18 | + | ||
| 19 | +import com.cnlive.mz.commons.CnliveUtil; | ||
| 20 | +import com.cnlive.mz.live.common.LiveUtils; | ||
| 21 | +import com.cnlive.mz.live.entity.TLive; | ||
| 22 | +import com.cnlive.mz.live.entity.TVideo; | ||
| 23 | +import com.cnlive.mz.live.service.TDispatchServerService; | ||
| 24 | +import com.cnlive.mz.live.service.TLiveService; | ||
| 25 | +import com.cnlive.mz.live.service.TUserService; | ||
| 26 | +import com.cnlive.mz.live.service.TVideoService; | ||
| 27 | + | ||
| 28 | +@Action | ||
| 29 | +public class VideoAction { | ||
| 30 | + @Inject | ||
| 31 | + private TDispatchServerService tDispatchServerService; | ||
| 32 | + @Inject | ||
| 33 | + private TVideoService tVideoService; | ||
| 34 | + @Inject | ||
| 35 | + private TUserService tUserService; | ||
| 36 | + @Inject | ||
| 37 | + private TLiveService tLiveService; | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 服务器定向 | ||
| 41 | + * | ||
| 42 | + * @param params | ||
| 43 | + * @return | ||
| 44 | + * {"mediaComment":"","nickName":"阳Sir","appId":"1","mediaName":"","userId" | ||
| 45 | + * :"1167015","uuid": | ||
| 46 | + * "1167015_1463725085798_6a551f9122494a05ac8566b7a2ae1092"} | ||
| 47 | + */ | ||
| 48 | + @Request.Post("/api/video/redirect") | ||
| 49 | + public ApiBean redirect(Params params) { | ||
| 50 | + String app_access_key = params.getString("app_access_key"); | ||
| 51 | + String video_type = params.getString("video_type"); | ||
| 52 | + String user_id = params.getString("relation_id"); | ||
| 53 | + ApiBean apiBean = tDispatchServerService.redirect(video_type, app_access_key, user_id); | ||
| 54 | + return apiBean; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + @Request.Post("/api/video/supload") | ||
| 58 | + public ApiBean supload(Params params) { | ||
| 59 | + Map data = new LinkedHashMap(); | ||
| 60 | + String app_access_key = params.getString("app_access_key"); | ||
| 61 | + String video_type = params.getString("video_type"); | ||
| 62 | + String user_access_key = params.getString("user_access_key"); | ||
| 63 | + String server_access_key = params.getString("server_access_key"); | ||
| 64 | + String active_id = params.getString("active_id"); | ||
| 65 | + String title = params.getString("title"); | ||
| 66 | + String direct = params.getString("direct"); | ||
| 67 | + String description = params.getString("description"); | ||
| 68 | + String custom_args = params.getString("custom_args"); | ||
| 69 | + String md5 = params.getString("md5"); | ||
| 70 | + String relation_id = params.getString("relation_id"); | ||
| 71 | + String uuid = ""; | ||
| 72 | + if (video_type.equals("2")) { | ||
| 73 | + // 2:sdk上传录播文件 | ||
| 74 | + TVideo tVideo = new TVideo(); | ||
| 75 | + tVideo.setCustom_args(custom_args); | ||
| 76 | + tVideo.setRelation_id(relation_id); | ||
| 77 | + tVideo.setName(params.getString("name")); | ||
| 78 | + tVideo.setVideo_type(params.getString("video_type")); | ||
| 79 | + tVideo.setPlat(params.getString("plat")); | ||
| 80 | + tVideo.setState(207); | ||
| 81 | + tVideo.setMd5(md5); | ||
| 82 | + uuid = CnliveUtil.getUUID(); | ||
| 83 | + tVideo.setVideo_uuid(uuid); | ||
| 84 | + tVideo.setTitle(title); | ||
| 85 | + tVideo.setDescription(description); | ||
| 86 | + tVideoService.saveSdkVideo(tVideo, server_access_key, user_access_key, app_access_key); | ||
| 87 | + } else if (video_type.equals("3")) { | ||
| 88 | + TLive tLive = tLiveService.getTLiveByUUId(active_id); | ||
| 89 | + tLive.setT_status_id(1); | ||
| 90 | + tLive.setTitle(title); | ||
| 91 | + tLive.setDescription(description); | ||
| 92 | + tLive.setStart_time(new Date()); | ||
| 93 | + tLive.setUser_uuid(params.getString("name")); | ||
| 94 | + tLive.setRelation_id(relation_id); | ||
| 95 | + tLive.setCustom_args(custom_args); | ||
| 96 | + uuid = tLive.getUuid(); | ||
| 97 | + if (StringUtils.isEmpty(direct)) { | ||
| 98 | + tLive.setDirect(0); | ||
| 99 | + } else { | ||
| 100 | + tLive.setDirect(Integer.parseInt(direct)); | ||
| 101 | + } | ||
| 102 | + // tLive.setLive_url("http://cnlive.hlslive.ks-cdn.com/live/" + | ||
| 103 | + // tLive.getT_user_id() + "_" + uuid | ||
| 104 | + // + "/index.m3u8"); | ||
| 105 | + tLive.setLive_url("rtmp://cnlive.rtmplive.ks-cdn.com/live/" + tLive.getT_user_id() + "_" + uuid); | ||
| 106 | + tLiveService.startLive(tLive); | ||
| 107 | + } | ||
| 108 | + data.put("video_uuid", uuid); | ||
| 109 | + ApiBean apiBean = new ApiBean(); | ||
| 110 | + apiBean.setCode(100); | ||
| 111 | + apiBean.setMessage("请求成功"); | ||
| 112 | + apiBean.setData(data); | ||
| 113 | + return apiBean; | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + @Request.Post("/api/video/all") | ||
| 117 | + public ApiBean all(Params params) { | ||
| 118 | + String app_access_key = params.getString("app_access_key"); | ||
| 119 | + String relationId = params.getString("relation_id"); | ||
| 120 | + String pageNo = params.getString("page_no"); | ||
| 121 | + String relation_id = params.getString("relation_id"); | ||
| 122 | + String upload_type = params.getString("upload_type"); | ||
| 123 | + // String video_type = params.getString("video_type"); | ||
| 124 | + Pager<TVideo> page = tVideoService.findAll(app_access_key, relationId, pageNo); | ||
| 125 | + ApiBean apiBean = new ApiBean(); | ||
| 126 | + apiBean.setCode(100); | ||
| 127 | + apiBean.setMessage("请求成功"); | ||
| 128 | + apiBean.setData(page); | ||
| 129 | + return apiBean; | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + @Request.Get("/video/list/{page_number}") | ||
| 133 | + public View list(int page_number) { | ||
| 134 | + int user_id = CastUtil.castInt(DataContext.getRequest().getSession().getAttribute(LiveUtils.SESSION_KEY_ID)); | ||
| 135 | + Pager<TVideo> page = tVideoService.list(user_id, page_number, 33); | ||
| 136 | + return new View("live/video_management.jsp").data("videos", page); | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + @Request.Get("/video/check/{page_number}") | ||
| 140 | + public View check(int page_number) { | ||
| 141 | + Pager<TVideo> page = tVideoService.list(page_number, 33); | ||
| 142 | + return new View("live/video_management.jsp").data("videos", page); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + @Request.Get("/video/pass/{id}") | ||
| 146 | + public Result pass(int id) { | ||
| 147 | + tVideoService.pass(id); | ||
| 148 | + return new Result(true); | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + @Request.Get("/video/view/{id}") | ||
| 152 | + public View view(int id) { | ||
| 153 | + TVideo tVideo = tVideoService.getVideoById(id); | ||
| 154 | + return new View("live/video_view.jsp").data("tVideo", tVideo); | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + @Request.Post("/api/video/one") | ||
| 158 | + public ApiBean one(Params params) { | ||
| 159 | + String app_access_key = params.getString("app_access_key"); | ||
| 160 | + String video_uuid = params.getString("video_uuid"); | ||
| 161 | + TVideo page = tVideoService.getVideoByUuId(video_uuid); | ||
| 162 | + ApiBean apiBean = new ApiBean(); | ||
| 163 | + apiBean.setCode(100); | ||
| 164 | + apiBean.setMessage("请求成功"); | ||
| 165 | + apiBean.setData(page); | ||
| 166 | + return apiBean; | ||
| 167 | + } | ||
| 168 | + | ||
| 169 | + @Request.Post("/api/video/uploadNotify") | ||
| 170 | + public ApiBean uploadNotify(Params params) { | ||
| 171 | + String video_uuid = params.getString("video_uuid"); | ||
| 172 | + String upload_type = params.getString("upload_type"); | ||
| 173 | + String video_type = params.getString("video_type"); | ||
| 174 | + String state = params.getString("state"); | ||
| 175 | + if (video_type.equals("2")) { | ||
| 176 | + // 点播通知 | ||
| 177 | + tVideoService.notify(video_uuid); | ||
| 178 | + } else if (video_type.equals("3")) { | ||
| 179 | + // 直播通知 | ||
| 180 | + tLiveService.notify(video_uuid); | ||
| 181 | + } | ||
| 182 | + ApiBean apiBean = new ApiBean(); | ||
| 183 | + apiBean.setCode(100); | ||
| 184 | + apiBean.setMessage("请求成功"); | ||
| 185 | + return apiBean; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + @Request.Get("/api/video/error/{video_uuid}") | ||
| 189 | + public ApiBean beat(String video_uuid) { | ||
| 190 | + // 直播通知 | ||
| 191 | + tLiveService.notify(video_uuid); | ||
| 192 | + ApiBean apiBean = new ApiBean(); | ||
| 193 | + apiBean.setCode(100); | ||
| 194 | + apiBean.setMessage("请求成功"); | ||
| 195 | + return apiBean; | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + @Request.Post("/api/video/delete") | ||
| 199 | + public ApiBean delete(Params params) { | ||
| 200 | + String user_access_key = params.getString("user_access_key"); | ||
| 201 | + String video_uuid = params.getString("video_uuid"); | ||
| 202 | + String app_access_key = params.getString("app_access_key"); | ||
| 203 | + String video_type = params.getString("video_type");// 视频类型 | ||
| 204 | + tVideoService.delete(video_uuid); | ||
| 205 | + ApiBean apiBean = new ApiBean(); | ||
| 206 | + apiBean.setCode(100); | ||
| 207 | + apiBean.setMessage("请求成功"); | ||
| 208 | + return apiBean; | ||
| 209 | + } | ||
| 210 | +} |
src/main/java/com/cnlive/mz/live/rest/BaseUtil.java
| 1 | -package com.cnlive.mz.live.rest; | ||
| 2 | - | ||
| 3 | -import java.io.BufferedReader; | ||
| 4 | -import java.io.IOException; | ||
| 5 | -import java.io.InputStreamReader; | ||
| 6 | -import java.io.PrintWriter; | ||
| 7 | -import java.io.UnsupportedEncodingException; | ||
| 8 | -import java.net.URL; | ||
| 9 | -import java.net.URLConnection; | ||
| 10 | -import java.security.MessageDigest; | ||
| 11 | -import java.text.DateFormat; | ||
| 12 | -import java.text.ParseException; | ||
| 13 | -import java.text.SimpleDateFormat; | ||
| 14 | -import java.util.Calendar; | ||
| 15 | -import java.util.Date; | ||
| 16 | -import java.util.Locale; | ||
| 17 | -import java.util.UUID; | ||
| 18 | - | ||
| 19 | -import javax.crypto.Mac; | ||
| 20 | -import javax.crypto.spec.SecretKeySpec; | ||
| 21 | - | ||
| 22 | -import org.apache.commons.codec.binary.Base64; | ||
| 23 | - | ||
| 24 | -import sun.misc.BASE64Encoder; | ||
| 25 | - | ||
| 26 | -public class BaseUtil { | ||
| 27 | - | ||
| 28 | - private static final String ENCODING = "UTF-8"; | ||
| 29 | - private static final String AK_SECRET = "7SxVU5lFpqCEQIqxLprQat9BWoyZNKlKfSScTuIk"; | ||
| 30 | - private static final String AK_ID = "I3TC8a4xboPUMe5xlp22"; | ||
| 31 | - | ||
| 32 | - /* | ||
| 33 | - * 计算MD5+BASE64 | ||
| 34 | - */ | ||
| 35 | - public static String MD5Base64(String s) { | ||
| 36 | - if (s == null) | ||
| 37 | - return null; | ||
| 38 | - String encodeStr = ""; | ||
| 39 | - byte[] utfBytes = s.getBytes(); | ||
| 40 | - MessageDigest mdTemp; | ||
| 41 | - try { | ||
| 42 | - mdTemp = MessageDigest.getInstance("MD5"); | ||
| 43 | - mdTemp.update(utfBytes); | ||
| 44 | - byte[] md5Bytes = mdTemp.digest(); | ||
| 45 | - BASE64Encoder b64Encoder = new BASE64Encoder(); | ||
| 46 | - encodeStr = b64Encoder.encode(md5Bytes); | ||
| 47 | - } catch (Exception e) { | ||
| 48 | - throw new Error("Failed to generate MD5 : " + e.getMessage()); | ||
| 49 | - } | ||
| 50 | - return encodeStr; | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - /* | ||
| 54 | - * 哈希计算 HMAC-SHA1 base64 | ||
| 55 | - */ | ||
| 56 | - public static String HMACSha1(String data, String key) { | ||
| 57 | - String result; | ||
| 58 | - try { | ||
| 59 | - SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), "HmacSHA1"); | ||
| 60 | - Mac mac = Mac.getInstance("HmacSHA1"); | ||
| 61 | - mac.init(signingKey); | ||
| 62 | - byte[] rawHmac = mac.doFinal(data.getBytes()); | ||
| 63 | - //result = new String(Base64.encodeBase64(rawHmac, false), ENCODING); | ||
| 64 | - //result = (new BASE64Encoder()).encode(rawHmac); | ||
| 65 | - result = new String(Base64.encodeBase64(rawHmac),ENCODING); | ||
| 66 | - } catch (Exception e) { | ||
| 67 | - throw new Error("Failed to generate HMAC : " + e.getMessage()); | ||
| 68 | - } | ||
| 69 | - return result; | ||
| 70 | - } | ||
| 71 | - | ||
| 72 | - /** | ||
| 73 | - * 获取当前时间戳 | ||
| 74 | - * @return | ||
| 75 | - */ | ||
| 76 | - public static String getTimestamp(){ | ||
| 77 | - DateFormat df = new SimpleDateFormat("yyyyMMdd"); | ||
| 78 | - Date date = null; | ||
| 79 | - try { | ||
| 80 | - date = df.parse("20160607"); | ||
| 81 | - } catch (ParseException e) { | ||
| 82 | - e.printStackTrace(); | ||
| 83 | - } | ||
| 84 | - Calendar cal = Calendar.getInstance(); | ||
| 85 | - cal.setTime(date); | ||
| 86 | - long timestamp = cal.getTimeInMillis(); | ||
| 87 | - Calendar calendar = Calendar.getInstance(); | ||
| 88 | - calendar.add(Calendar.DATE,+1); | ||
| 89 | - SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss"); | ||
| 90 | - String motoday = sdf.format(calendar.getTime()); | ||
| 91 | - //Timestamp ts = new Timestamp(System.currentTimeMillis()); | ||
| 92 | - long currentTime=Calendar.getInstance().getTimeInMillis(); | ||
| 93 | - // System.out.println(ts+"---..ts..----"); | ||
| 94 | - // Date date = new Date(); | ||
| 95 | - // SimpleDateFormat sd = new SimpleDateFormat("MMddHHmmss"); | ||
| 96 | - // String ss = sd.format(date); | ||
| 97 | - return String.valueOf(timestamp); | ||
| 98 | - //return motoday; | ||
| 99 | - } | ||
| 100 | - /** | ||
| 101 | - * 签名算法:signature 字符串格式,由三部分组成:GET+”\n”+Expire+”\n”+Resource | ||
| 102 | - * 2016 0602171212 | ||
| 103 | - * @return | ||
| 104 | - * @throws UnsupportedEncodingException | ||
| 105 | - */ | ||
| 106 | - public static String signature(String streamName) throws UnsupportedEncodingException { | ||
| 107 | - | ||
| 108 | - String method = "GET"; | ||
| 109 | - String Expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10); | ||
| 110 | - System.out.println(Expire+"---expire----"); | ||
| 111 | - String Resource = "app=live&method=add&nonce=cnlive&public=0&vdoid=12345&stream="+streamName; | ||
| 112 | - Resource = java.net.URLEncoder.encode(Resource,"utf-8"); | ||
| 113 | - String stringToSign = method + "\n" + Expire + "\n" + Resource; | ||
| 114 | - // 2.计算 HMAC-SHA1 | ||
| 115 | - String signature = HMACSha1(stringToSign, AK_SECRET); | ||
| 116 | - System.out.println(signature+"------"); | ||
| 117 | - signature =java.net.URLEncoder.encode(signature,"utf-8"); | ||
| 118 | - return signature; | ||
| 119 | - } | ||
| 120 | - | ||
| 121 | - public static String UUid() { | ||
| 122 | - String uuid = UUID.randomUUID().toString(); | ||
| 123 | - uuid = uuid.replaceAll("-", ""); | ||
| 124 | - return uuid; | ||
| 125 | - } | ||
| 126 | - | ||
| 127 | - public static int random_7(int number) { | ||
| 128 | - int x = (int) (Math.random() * 10); | ||
| 129 | - for (int i = 0; i < number; i++) { | ||
| 130 | - String num = Math.random() * 10 + ""; | ||
| 131 | - } | ||
| 132 | - return x; | ||
| 133 | - } | ||
| 134 | - | ||
| 135 | - /* | ||
| 136 | - * 等同于javaScript中的 new Date().toUTCString(); | ||
| 137 | - */ | ||
| 138 | - public static String toGMTString(Date date) { | ||
| 139 | - SimpleDateFormat df = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.UK); | ||
| 140 | - df.setTimeZone(new java.util.SimpleTimeZone(0, "GMT")); | ||
| 141 | - return df.format(date); | ||
| 142 | - } | ||
| 143 | - | ||
| 144 | - /* | ||
| 145 | - * 发送POST请求 | ||
| 146 | - */ | ||
| 147 | - public static String sendPost(String url, String body, String ak_id, String ak_secret) { | ||
| 148 | - PrintWriter out = null; | ||
| 149 | - BufferedReader in = null; | ||
| 150 | - String result = ""; | ||
| 151 | - try { | ||
| 152 | - URL realUrl = new URL(url); | ||
| 153 | - | ||
| 154 | - /* | ||
| 155 | - * http header 参数 | ||
| 156 | - */ | ||
| 157 | - String method = "POST"; | ||
| 158 | - String accept = "json"; | ||
| 159 | - String content_type = "application/json"; | ||
| 160 | - String path = realUrl.getFile(); | ||
| 161 | - String date = toGMTString(new Date()); | ||
| 162 | - | ||
| 163 | - // 1.对body做MD5+BASE64加密 | ||
| 164 | - String bodyMd5 = MD5Base64(body); | ||
| 165 | - String stringToSign = method + "\n" + accept + "\n" + bodyMd5 + "\n" + content_type + "\n" + date + "\n" | ||
| 166 | - + path; | ||
| 167 | - // 2.计算 HMAC-SHA1 | ||
| 168 | - String signature = HMACSha1(stringToSign, ak_secret); | ||
| 169 | - // 3.得到 authorization header | ||
| 170 | - String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 171 | - | ||
| 172 | - // 打开和URL之间的连接 | ||
| 173 | - URLConnection conn = realUrl.openConnection(); | ||
| 174 | - // 设置通用的请求属性 | ||
| 175 | - conn.setRequestProperty("accept", accept); | ||
| 176 | - conn.setRequestProperty("content-type", content_type); | ||
| 177 | - conn.setRequestProperty("date", date); | ||
| 178 | - conn.setRequestProperty("Authorization", authHeader); | ||
| 179 | - // 发送POST请求必须设置如下两行 | ||
| 180 | - conn.setDoOutput(true); | ||
| 181 | - conn.setDoInput(true); | ||
| 182 | - // 获取URLConnection对象对应的输出流 | ||
| 183 | - out = new PrintWriter(conn.getOutputStream()); | ||
| 184 | - // 发送请求参数 | ||
| 185 | - out.print(body); | ||
| 186 | - // flush输出流的缓冲 | ||
| 187 | - out.flush(); | ||
| 188 | - // 定义BufferedReader输入流来读取URL的响应 | ||
| 189 | - in = new BufferedReader(new InputStreamReader(conn.getInputStream())); | ||
| 190 | - String line; | ||
| 191 | - while ((line = in.readLine()) != null) { | ||
| 192 | - result += line; | ||
| 193 | - } | ||
| 194 | - } catch (Exception e) { | ||
| 195 | - System.out.println("发送 POST 请求出现异常!" + e); | ||
| 196 | - e.printStackTrace(); | ||
| 197 | - } | ||
| 198 | - // 使用finally块来关闭输出流、输入流 | ||
| 199 | - finally { | ||
| 200 | - try { | ||
| 201 | - if (out != null) { | ||
| 202 | - out.close(); | ||
| 203 | - } | ||
| 204 | - if (in != null) { | ||
| 205 | - in.close(); | ||
| 206 | - } | ||
| 207 | - } catch (IOException ex) { | ||
| 208 | - ex.printStackTrace(); | ||
| 209 | - } | ||
| 210 | - } | ||
| 211 | - return result; | ||
| 212 | - } | ||
| 213 | - | ||
| 214 | - /* | ||
| 215 | - * GET请求 | ||
| 216 | - */ | ||
| 217 | - | ||
| 218 | - public static String sendGet(String url, String ak_id, String ak_secret) { | ||
| 219 | - String result = ""; | ||
| 220 | - BufferedReader in = null; | ||
| 221 | - try { | ||
| 222 | - URL realUrl = new URL(url); | ||
| 223 | - /* | ||
| 224 | - * http header 参数 | ||
| 225 | - */ | ||
| 226 | - String method = "GET"; | ||
| 227 | - String Expire = "1436976000"; | ||
| 228 | - String Resource = "nonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345"; | ||
| 229 | - String content_type = "application/json"; | ||
| 230 | - String path = realUrl.getFile(); | ||
| 231 | - String date = toGMTString(new Date()); | ||
| 232 | - // 1.对body做MD5+BASE64加密 | ||
| 233 | - // String bodyMd5 = MD5Base64(body); | ||
| 234 | - String stringToSign = method + "\n" + Expire + "\n" + Resource; | ||
| 235 | - // 2.计算 HMAC-SHA1 | ||
| 236 | - String signature = HMACSha1(stringToSign, ak_secret); | ||
| 237 | - // 3.得到 authorization header | ||
| 238 | - String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 239 | - // 打开和URL之间的连接 | ||
| 240 | - URLConnection connection = realUrl.openConnection(); | ||
| 241 | - // 设置通用的请求属性 | ||
| 242 | - connection.setRequestProperty("accept", "json"); | ||
| 243 | - connection.setRequestProperty("content-type", content_type); | ||
| 244 | - connection.setRequestProperty("date", date); | ||
| 245 | - connection.setRequestProperty("Authorization", authHeader); | ||
| 246 | - // 建立实际的连接 | ||
| 247 | - connection.connect(); | ||
| 248 | - // 定义 BufferedReader输入流来读取URL的响应 | ||
| 249 | - in = new BufferedReader(new InputStreamReader(connection.getInputStream())); | ||
| 250 | - String line; | ||
| 251 | - while ((line = in.readLine()) != null) { | ||
| 252 | - result += line; | ||
| 253 | - } | ||
| 254 | - } catch (Exception e) { | ||
| 255 | - System.out.println("发送GET请求出现异常!" + e); | ||
| 256 | - e.printStackTrace(); | ||
| 257 | - } | ||
| 258 | - // 使用finally块来关闭输入流 | ||
| 259 | - finally { | ||
| 260 | - try { | ||
| 261 | - if (in != null) { | ||
| 262 | - in.close(); | ||
| 263 | - } | ||
| 264 | - } catch (Exception e) { | ||
| 265 | - e.printStackTrace(); | ||
| 266 | - } | ||
| 267 | - } | ||
| 268 | - return result; | ||
| 269 | - } | ||
| 270 | - | ||
| 271 | - public static void main(String[] args) throws Exception { | ||
| 272 | - // 发送POST请求示例 | ||
| 273 | - /* | ||
| 274 | - * String ak_id = "fWUN8KDtJZJGo0ArQ4qo"; // 用户ak String ak_secret = | ||
| 275 | - * "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret String url | ||
| 276 | - * = "https://kmr-cn-beijing.ksyun.com"; String body = | ||
| 277 | - * "{\"param1\": \"GET\n1436976000\nnonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345\", \"param2\":\"fWUN8KDtJZJGo0ArQ4qo\"}" | ||
| 278 | - * ; System.out.println("response body:" + sendPost(url, body, AK_ID, | ||
| 279 | - * AK_SECRET)); | ||
| 280 | - */ | ||
| 281 | - | ||
| 282 | - Date date = new Date(); | ||
| 283 | - System.out.println(toGMTString(date)); | ||
| 284 | - String hh = HMACSha1("GET\n1436976124\nnonce=4e1f2519c626cbfbab1520c255830c26&public=1&vdoid=1", | ||
| 285 | - "fWUN8KDtJZJGo0ArQ4qo"); | ||
| 286 | - String hhhh = MD5Base64(hh); | ||
| 287 | - System.out.println(hh); | ||
| 288 | - System.out.println(".............."); | ||
| 289 | - //String str = signature(); | ||
| 290 | - //System.out.println(str);//L2muBoImPzyvwyzfBtGXEu+wRNE= | ||
| 291 | - /*// 发送GET请求 | ||
| 292 | - String ak_id1 = "fWUN8KDtJZJGo0ArQ4qo"; //用户ak | ||
| 293 | - String ak_secret1 = "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret | ||
| 294 | - String url1 = "http://cnlive.uplive.ks-cdn.com?signature=L2muBoImPzyvwyzfBtGXEu+wRNE=&accesskey=fWUN8KDtJZJGo0ArQ4qo&expire=1436976000&method=add&app=live&name=498122_57"; | ||
| 295 | - System.out.println("response body:" +sendGet(url1, ak_id1, ak_secret1));*/ | ||
| 296 | - //long d = getTimestamp(); | ||
| 297 | - //System.out.println(d); | ||
| 298 | - } | ||
| 299 | -} | 1 | +package com.cnlive.mz.live.rest; |
| 2 | + | ||
| 3 | +import java.io.BufferedReader; | ||
| 4 | +import java.io.IOException; | ||
| 5 | +import java.io.InputStreamReader; | ||
| 6 | +import java.io.PrintWriter; | ||
| 7 | +import java.io.UnsupportedEncodingException; | ||
| 8 | +import java.net.URL; | ||
| 9 | +import java.net.URLConnection; | ||
| 10 | +import java.security.MessageDigest; | ||
| 11 | +import java.text.DateFormat; | ||
| 12 | +import java.text.ParseException; | ||
| 13 | +import java.text.SimpleDateFormat; | ||
| 14 | +import java.util.Calendar; | ||
| 15 | +import java.util.Date; | ||
| 16 | +import java.util.Locale; | ||
| 17 | +import java.util.UUID; | ||
| 18 | + | ||
| 19 | +import javax.crypto.Mac; | ||
| 20 | +import javax.crypto.spec.SecretKeySpec; | ||
| 21 | + | ||
| 22 | +import org.apache.commons.codec.binary.Base64; | ||
| 23 | + | ||
| 24 | +import com.cnlive.mz.commons.net.HttpReq; | ||
| 25 | + | ||
| 26 | +import sun.misc.BASE64Encoder; | ||
| 27 | + | ||
| 28 | +public class BaseUtil { | ||
| 29 | + | ||
| 30 | + private static final String ENCODING = "UTF-8"; | ||
| 31 | + | ||
| 32 | + // AccessKey、SecretKey | ||
| 33 | + private static final String SECRET_KEY = "iqljE4WxQaSMeSd1QP+PPYSpvtK0uWyH0/r6tgi7"; | ||
| 34 | + private static final String ACCESS_KEY = "I3TC8a4xboN9kSJnUIQh"; | ||
| 35 | + | ||
| 36 | + | ||
| 37 | + /* | ||
| 38 | + * 计算MD5+BASE64 | ||
| 39 | + */ | ||
| 40 | + public static String MD5Base64(String s) { | ||
| 41 | + if (s == null) | ||
| 42 | + return null; | ||
| 43 | + String encodeStr = ""; | ||
| 44 | + byte[] utfBytes = s.getBytes(); | ||
| 45 | + MessageDigest mdTemp; | ||
| 46 | + try { | ||
| 47 | + mdTemp = MessageDigest.getInstance("MD5"); | ||
| 48 | + mdTemp.update(utfBytes); | ||
| 49 | + byte[] md5Bytes = mdTemp.digest(); | ||
| 50 | + BASE64Encoder b64Encoder = new BASE64Encoder(); | ||
| 51 | + encodeStr = b64Encoder.encode(md5Bytes); | ||
| 52 | + } catch (Exception e) { | ||
| 53 | + throw new Error("Failed to generate MD5 : " + e.getMessage()); | ||
| 54 | + } | ||
| 55 | + return encodeStr; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + /* | ||
| 59 | + * 哈希计算 HMAC-SHA1 base64 | ||
| 60 | + */ | ||
| 61 | + public static String HMACSha1(String data, String key) { | ||
| 62 | + String result; | ||
| 63 | + try { | ||
| 64 | + SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), "HmacSHA1"); | ||
| 65 | + Mac mac = Mac.getInstance("HmacSHA1"); | ||
| 66 | + mac.init(signingKey); | ||
| 67 | + byte[] rawHmac = mac.doFinal(data.getBytes()); | ||
| 68 | + //result = new String(Base64.encodeBase64(rawHmac, false), ENCODING); | ||
| 69 | + //result = (new BASE64Encoder()).encode(rawHmac); | ||
| 70 | + result = new String(Base64.encodeBase64(rawHmac),ENCODING); | ||
| 71 | + } catch (Exception e) { | ||
| 72 | + throw new Error("Failed to generate HMAC : " + e.getMessage()); | ||
| 73 | + } | ||
| 74 | + return result; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + /** | ||
| 78 | + * 获取当前时间戳 | ||
| 79 | + * @return | ||
| 80 | + */ | ||
| 81 | + public static String getTimestamp(){ | ||
| 82 | + DateFormat df = new SimpleDateFormat("yyyyMMdd"); | ||
| 83 | + Date date = null; | ||
| 84 | + try { | ||
| 85 | + date = df.parse("20160607"); | ||
| 86 | + } catch (ParseException e) { | ||
| 87 | + e.printStackTrace(); | ||
| 88 | + } | ||
| 89 | + Calendar cal = Calendar.getInstance(); | ||
| 90 | + cal.setTime(date); | ||
| 91 | + long timestamp = cal.getTimeInMillis(); | ||
| 92 | + System.out.println("------timestamp-----"+timestamp); | ||
| 93 | + //return String.valueOf(timestamp).substring(0, 10); | ||
| 94 | + Calendar calendar = Calendar.getInstance(); | ||
| 95 | + calendar.add(Calendar.DATE,+1); | ||
| 96 | + SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss"); | ||
| 97 | + String motoday = sdf.format(calendar.getTime()); | ||
| 98 | + //Timestamp ts = new Timestamp(System.currentTimeMillis()); | ||
| 99 | + long currentTime=Calendar.getInstance().getTimeInMillis(); | ||
| 100 | + // System.out.println(ts+"---..ts..----"); | ||
| 101 | + // Date date = new Date(); | ||
| 102 | + // SimpleDateFormat sd = new SimpleDateFormat("MMddHHmmss"); | ||
| 103 | + // String ss = sd.format(date); | ||
| 104 | + return String.valueOf(timestamp); | ||
| 105 | + //return motoday; | ||
| 106 | + | ||
| 107 | + } | ||
| 108 | + /** | ||
| 109 | + * 签名算法:signature 字符串格式,由三部分组成:GET+”\n”+Expire+”\n”+Resource | ||
| 110 | + * 2016 0602171212 | ||
| 111 | + * @return | ||
| 112 | + * @throws UnsupportedEncodingException | ||
| 113 | + */ | ||
| 114 | + public static String signature(String streamName) throws UnsupportedEncodingException { | ||
| 115 | + | ||
| 116 | + String method = "GET"; | ||
| 117 | + String expire = BaseUtil.getTimestamp(); | ||
| 118 | + String app = "live"; | ||
| 119 | + String methodadd = "add"; | ||
| 120 | + String name = streamName; | ||
| 121 | + app = java.net.URLEncoder.encode(app, "utf-8"); | ||
| 122 | + methodadd = java.net.URLEncoder.encode(methodadd, "utf-8"); | ||
| 123 | + name = java.net.URLEncoder.encode(name, "utf-8"); | ||
| 124 | + System.out.println(expire + "---expire----"); | ||
| 125 | + String Resource = "app="+app+"&method="+methodadd+"&name=" + name; | ||
| 126 | + //Resource = java.net.URLEncoder.encode(Resource, "utf-8"); | ||
| 127 | + String stringToSign = method + "\n" + expire + "\n" + Resource; | ||
| 128 | + System.out.println("--stringToSign--"+stringToSign); | ||
| 129 | + // 2.计算 HMAC-SHA1 | ||
| 130 | + String signature = HMACSha1(stringToSign, SECRET_KEY); | ||
| 131 | + System.out.println( "---signature---"+signature ); | ||
| 132 | + signature = java.net.URLEncoder.encode(signature, "utf-8"); | ||
| 133 | + return signature; | ||
| 134 | + } | ||
| 135 | + public static String signature(String methodNname,String streamName) throws UnsupportedEncodingException { | ||
| 136 | + | ||
| 137 | + String method = "GET"; | ||
| 138 | + String expire = BaseUtil.getTimestamp(); | ||
| 139 | + String app = "live"; | ||
| 140 | + //String methodadd = methodNname; | ||
| 141 | + //String name = streamName; | ||
| 142 | + app = java.net.URLEncoder.encode(app, "utf-8"); | ||
| 143 | + methodNname = java.net.URLEncoder.encode(methodNname, "utf-8"); | ||
| 144 | + streamName = java.net.URLEncoder.encode(streamName, "utf-8"); | ||
| 145 | + System.out.println(expire + "---expire----"); | ||
| 146 | + String Resource = "app="+app+"&method="+methodNname+"&name=" + streamName; | ||
| 147 | + //Resource = java.net.URLEncoder.encode(Resource, "utf-8"); | ||
| 148 | + String stringToSign = method + "\n" + expire + "\n" + Resource; | ||
| 149 | + System.out.println("--stringToSign--"+stringToSign); | ||
| 150 | + // 2.计算 HMAC-SHA1 | ||
| 151 | + String signature = HMACSha1(stringToSign, SECRET_KEY); | ||
| 152 | + System.out.println( "---signature---"+signature ); | ||
| 153 | + signature = java.net.URLEncoder.encode(signature, "utf-8"); | ||
| 154 | + return signature; | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + public static String UUid() { | ||
| 158 | + | ||
| 159 | + String uuid = UUID.randomUUID().toString(); | ||
| 160 | + uuid = uuid.replaceAll("-", ""); | ||
| 161 | + return uuid; | ||
| 162 | + } | ||
| 163 | + public static String getAccessKey() { | ||
| 164 | + return ACCESS_KEY; | ||
| 165 | + } | ||
| 166 | + | ||
| 167 | + public static int random_7(int number) { | ||
| 168 | + int x = (int) (Math.random() * 10); | ||
| 169 | + for (int i = 0; i < number; i++) { | ||
| 170 | + String num = Math.random() * 10 + ""; | ||
| 171 | + } | ||
| 172 | + return x; | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + /* | ||
| 176 | + * 等同于javaScript中的 new Date().toUTCString(); | ||
| 177 | + */ | ||
| 178 | + public static String toGMTString(Date date) { | ||
| 179 | + SimpleDateFormat df = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.UK); | ||
| 180 | + df.setTimeZone(new java.util.SimpleTimeZone(0, "GMT")); | ||
| 181 | + return df.format(date); | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + /* | ||
| 185 | + * 发送POST请求 | ||
| 186 | + */ | ||
| 187 | + public static String sendPost(String url, String body, String ak_id, String ak_secret) { | ||
| 188 | + PrintWriter out = null; | ||
| 189 | + BufferedReader in = null; | ||
| 190 | + String result = ""; | ||
| 191 | + try { | ||
| 192 | + URL realUrl = new URL(url); | ||
| 193 | + | ||
| 194 | + /* | ||
| 195 | + * http header 参数 | ||
| 196 | + */ | ||
| 197 | + String method = "POST"; | ||
| 198 | + String accept = "json"; | ||
| 199 | + String content_type = "application/json"; | ||
| 200 | + String path = realUrl.getFile(); | ||
| 201 | + String date = toGMTString(new Date()); | ||
| 202 | + | ||
| 203 | + // 1.对body做MD5+BASE64加密 | ||
| 204 | + String bodyMd5 = MD5Base64(body); | ||
| 205 | + String stringToSign = method + "\n" + accept + "\n" + bodyMd5 + "\n" + content_type + "\n" + date + "\n" | ||
| 206 | + + path; | ||
| 207 | + // 2.计算 HMAC-SHA1 | ||
| 208 | + String signature = HMACSha1(stringToSign, ak_secret); | ||
| 209 | + // 3.得到 authorization header | ||
| 210 | + String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 211 | + | ||
| 212 | + // 打开和URL之间的连接 | ||
| 213 | + URLConnection conn = realUrl.openConnection(); | ||
| 214 | + // 设置通用的请求属性 | ||
| 215 | + conn.setRequestProperty("accept", accept); | ||
| 216 | + conn.setRequestProperty("content-type", content_type); | ||
| 217 | + conn.setRequestProperty("date", date); | ||
| 218 | + conn.setRequestProperty("Authorization", authHeader); | ||
| 219 | + // 发送POST请求必须设置如下两行 | ||
| 220 | + conn.setDoOutput(true); | ||
| 221 | + conn.setDoInput(true); | ||
| 222 | + // 获取URLConnection对象对应的输出流 | ||
| 223 | + out = new PrintWriter(conn.getOutputStream()); | ||
| 224 | + // 发送请求参数 | ||
| 225 | + out.print(body); | ||
| 226 | + // flush输出流的缓冲 | ||
| 227 | + out.flush(); | ||
| 228 | + // 定义BufferedReader输入流来读取URL的响应 | ||
| 229 | + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); | ||
| 230 | + String line; | ||
| 231 | + while ((line = in.readLine()) != null) { | ||
| 232 | + result += line; | ||
| 233 | + } | ||
| 234 | + } catch (Exception e) { | ||
| 235 | + System.out.println("发送 POST 请求出现异常!" + e); | ||
| 236 | + e.printStackTrace(); | ||
| 237 | + } | ||
| 238 | + // 使用finally块来关闭输出流、输入流 | ||
| 239 | + finally { | ||
| 240 | + try { | ||
| 241 | + if (out != null) { | ||
| 242 | + out.close(); | ||
| 243 | + } | ||
| 244 | + if (in != null) { | ||
| 245 | + in.close(); | ||
| 246 | + } | ||
| 247 | + } catch (IOException ex) { | ||
| 248 | + ex.printStackTrace(); | ||
| 249 | + } | ||
| 250 | + } | ||
| 251 | + return result; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + /* | ||
| 255 | + * GET请求 | ||
| 256 | + */ | ||
| 257 | + | ||
| 258 | + public static String sendGet(String url, String ak_id, String ak_secret) { | ||
| 259 | + String result = ""; | ||
| 260 | + BufferedReader in = null; | ||
| 261 | + try { | ||
| 262 | + URL realUrl = new URL(url); | ||
| 263 | + /* | ||
| 264 | + * http header 参数 | ||
| 265 | + */ | ||
| 266 | +// String method = "GET"; | ||
| 267 | +// String Expire = "1436976000"; | ||
| 268 | +// String Resource = "nonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345"; | ||
| 269 | +// String content_type = "application/json"; | ||
| 270 | +// String path = realUrl.getFile(); | ||
| 271 | +// String date = toGMTString(new Date()); | ||
| 272 | +// // 1.对body做MD5+BASE64加密 | ||
| 273 | +// // String bodyMd5 = MD5Base64(body); | ||
| 274 | +// String stringToSign = method + "\n" + Expire + "\n" + Resource; | ||
| 275 | +// // 2.计算 HMAC-SHA1 | ||
| 276 | +// String signature = HMACSha1(stringToSign, ak_secret); | ||
| 277 | +// // 3.得到 authorization header | ||
| 278 | +// String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 279 | + // 打开和URL之间的连接 | ||
| 280 | + URLConnection connection = realUrl.openConnection(); | ||
| 281 | + // 设置通用的请求属性 | ||
| 282 | +// connection.setRequestProperty("accept", "json"); | ||
| 283 | +// connection.setRequestProperty("content-type", content_type); | ||
| 284 | +// connection.setRequestProperty("date", date); | ||
| 285 | +// connection.setRequestProperty("Authorization", authHeader); | ||
| 286 | + // 建立实际的连接 | ||
| 287 | + connection.connect(); | ||
| 288 | + // 定义 BufferedReader输入流来读取URL的响应 | ||
| 289 | + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); | ||
| 290 | + String line; | ||
| 291 | + while ((line = in.readLine()) != null) { | ||
| 292 | + result += line; | ||
| 293 | + } | ||
| 294 | + } catch (Exception e) { | ||
| 295 | + System.out.println("发送GET请求出现异常!" + e); | ||
| 296 | + e.printStackTrace(); | ||
| 297 | + } | ||
| 298 | + // 使用finally块来关闭输入流 | ||
| 299 | + finally { | ||
| 300 | + try { | ||
| 301 | + if (in != null) { | ||
| 302 | + in.close(); | ||
| 303 | + } | ||
| 304 | + } catch (Exception e) { | ||
| 305 | + e.printStackTrace(); | ||
| 306 | + } | ||
| 307 | + } | ||
| 308 | + return result; | ||
| 309 | + } | ||
| 310 | + | ||
| 311 | + public static void main(String[] args) throws Exception { | ||
| 312 | + // 发送POST请求示例 | ||
| 313 | + /* | ||
| 314 | + * String ak_id = "fWUN8KDtJZJGo0ArQ4qo"; // 用户ak String ak_secret = | ||
| 315 | + * "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret String url | ||
| 316 | + * = "https://kmr-cn-beijing.ksyun.com"; String body = | ||
| 317 | + * "{\"param1\": \"GET\n1436976000\nnonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345\", \"param2\":\"fWUN8KDtJZJGo0ArQ4qo\"}" | ||
| 318 | + * ; System.out.println("response body:" + sendPost(url, body, AK_ID, | ||
| 319 | + * AK_SECRET)); | ||
| 320 | + */ | ||
| 321 | + | ||
| 322 | + Date date = new Date(); | ||
| 323 | + System.out.println(toGMTString(date)); | ||
| 324 | + String hh = HMACSha1("GET\n1436976124\nnonce=4e1f2519c626cbfbab1520c255830c26&public=1&vdoid=1", | ||
| 325 | + "fWUN8KDtJZJGo0ArQ4qo"); | ||
| 326 | + String hhhh = MD5Base64(hh); | ||
| 327 | + System.out.println(hh); | ||
| 328 | + System.out.println(".............."); | ||
| 329 | + | ||
| 330 | + // String str = signature(); | ||
| 331 | + // System.out.println(str);//L2muBoImPzyvwyzfBtGXEu+wRNE= | ||
| 332 | + | ||
| 333 | + // 发送GET请求 | ||
| 334 | + String url1 = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=iDPKaesXXW3A26CScNyjpNkzxZs%3D&accesskey=I3TC8a4xboPUMe5xlp22&expire=1483200000&app=live&method=add&stream=310166_863"; | ||
| 335 | + System.out.println("response body:" +sendGet(url1, ACCESS_KEY, SECRET_KEY)); | ||
| 336 | + | ||
| 337 | + // long d = getTimestamp(); | ||
| 338 | + // System.out.println(d); | ||
| 339 | + | ||
| 340 | + //String str = signature(); | ||
| 341 | + //System.out.println(str);//L2muBoImPzyvwyzfBtGXEu+wRNE= | ||
| 342 | + /*// 发送GET请求 | ||
| 343 | + String ak_id1 = "fWUN8KDtJZJGo0ArQ4qo"; //用户ak | ||
| 344 | + String ak_secret1 = "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret | ||
| 345 | + String url1 = "http://cnlive.uplive.ks-cdn.com?signature=L2muBoImPzyvwyzfBtGXEu+wRNE=&accesskey=fWUN8KDtJZJGo0ArQ4qo&expire=1436976000&method=add&app=live&name=498122_57"; | ||
| 346 | + System.out.println("response body:" +sendGet(url1, ak_id1, ak_secret1));*/ | ||
| 347 | + //long d = getTimestamp(); | ||
| 348 | + //System.out.println(d); | ||
| 349 | + | ||
| 350 | + } | ||
| 351 | +} |
src/main/java/com/cnlive/mz/live/rest/BaseUtil.java.bak
0 → 100644
| 1 | +package com.cnlive.mz.live.rest; | ||
| 2 | + | ||
| 3 | +import java.io.BufferedReader; | ||
| 4 | +import java.io.IOException; | ||
| 5 | +import java.io.InputStreamReader; | ||
| 6 | +import java.io.PrintWriter; | ||
| 7 | +import java.io.UnsupportedEncodingException; | ||
| 8 | +import java.net.URL; | ||
| 9 | +import java.net.URLConnection; | ||
| 10 | +import java.security.MessageDigest; | ||
| 11 | +import java.text.DateFormat; | ||
| 12 | +import java.text.ParseException; | ||
| 13 | +import java.text.SimpleDateFormat; | ||
| 14 | +import java.util.Calendar; | ||
| 15 | +import java.util.Date; | ||
| 16 | +import java.util.Locale; | ||
| 17 | +import java.util.UUID; | ||
| 18 | + | ||
| 19 | +import javax.crypto.Mac; | ||
| 20 | +import javax.crypto.spec.SecretKeySpec; | ||
| 21 | + | ||
| 22 | +import org.apache.commons.codec.binary.Base64; | ||
| 23 | + | ||
| 24 | +import com.cnlive.mz.commons.net.HttpReq; | ||
| 25 | + | ||
| 26 | +import sun.misc.BASE64Encoder; | ||
| 27 | + | ||
| 28 | +public class BaseUtil { | ||
| 29 | + | ||
| 30 | + private static final String ENCODING = "UTF-8"; | ||
| 31 | +<<<<<<< HEAD | ||
| 32 | + // AccessKey、SecretKey | ||
| 33 | + private static final String SECRET_KEY = "iqljE4WxQaSMeSd1QP+PPYSpvtK0uWyH0/r6tgi7"; | ||
| 34 | + private static final String ACCESS_KEY = "I3TC8a4xboN9kSJnUIQh"; | ||
| 35 | +======= | ||
| 36 | + private static final String AK_SECRET = "7SxVU5lFpqCEQIqxLprQat9BWoyZNKlKfSScTuIk"; | ||
| 37 | + private static final String AK_ID = "I3TC8a4xboPUMe5xlp22"; | ||
| 38 | +>>>>>>> 180640a4e451ae2b82ae745eb6b1d1651dc5f17f | ||
| 39 | + | ||
| 40 | + /* | ||
| 41 | + * 计算MD5+BASE64 | ||
| 42 | + */ | ||
| 43 | + public static String MD5Base64(String s) { | ||
| 44 | + if (s == null) | ||
| 45 | + return null; | ||
| 46 | + String encodeStr = ""; | ||
| 47 | + byte[] utfBytes = s.getBytes(); | ||
| 48 | + MessageDigest mdTemp; | ||
| 49 | + try { | ||
| 50 | + mdTemp = MessageDigest.getInstance("MD5"); | ||
| 51 | + mdTemp.update(utfBytes); | ||
| 52 | + byte[] md5Bytes = mdTemp.digest(); | ||
| 53 | + BASE64Encoder b64Encoder = new BASE64Encoder(); | ||
| 54 | + encodeStr = b64Encoder.encode(md5Bytes); | ||
| 55 | + } catch (Exception e) { | ||
| 56 | + throw new Error("Failed to generate MD5 : " + e.getMessage()); | ||
| 57 | + } | ||
| 58 | + return encodeStr; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + /* | ||
| 62 | + * 哈希计算 HMAC-SHA1 base64 | ||
| 63 | + */ | ||
| 64 | + public static String HMACSha1(String data, String key) { | ||
| 65 | + String result; | ||
| 66 | + try { | ||
| 67 | + SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), "HmacSHA1"); | ||
| 68 | + Mac mac = Mac.getInstance("HmacSHA1"); | ||
| 69 | + mac.init(signingKey); | ||
| 70 | + byte[] rawHmac = mac.doFinal(data.getBytes()); | ||
| 71 | + //result = new String(Base64.encodeBase64(rawHmac, false), ENCODING); | ||
| 72 | + //result = (new BASE64Encoder()).encode(rawHmac); | ||
| 73 | + result = new String(Base64.encodeBase64(rawHmac),ENCODING); | ||
| 74 | + } catch (Exception e) { | ||
| 75 | + throw new Error("Failed to generate HMAC : " + e.getMessage()); | ||
| 76 | + } | ||
| 77 | + return result; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * 获取当前时间戳 | ||
| 82 | + * @return | ||
| 83 | + */ | ||
| 84 | + public static String getTimestamp(){ | ||
| 85 | + DateFormat df = new SimpleDateFormat("yyyyMMdd"); | ||
| 86 | + Date date = null; | ||
| 87 | + try { | ||
| 88 | + date = df.parse("20160607"); | ||
| 89 | + } catch (ParseException e) { | ||
| 90 | + e.printStackTrace(); | ||
| 91 | + } | ||
| 92 | + Calendar cal = Calendar.getInstance(); | ||
| 93 | + cal.setTime(date); | ||
| 94 | + long timestamp = cal.getTimeInMillis(); | ||
| 95 | +<<<<<<< HEAD | ||
| 96 | + System.out.println("------timestamp-----"+timestamp); | ||
| 97 | + //return String.valueOf(timestamp).substring(0, 10); | ||
| 98 | + return "1483200000"; | ||
| 99 | +======= | ||
| 100 | + Calendar calendar = Calendar.getInstance(); | ||
| 101 | + calendar.add(Calendar.DATE,+1); | ||
| 102 | + SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss"); | ||
| 103 | + String motoday = sdf.format(calendar.getTime()); | ||
| 104 | + //Timestamp ts = new Timestamp(System.currentTimeMillis()); | ||
| 105 | + long currentTime=Calendar.getInstance().getTimeInMillis(); | ||
| 106 | + // System.out.println(ts+"---..ts..----"); | ||
| 107 | + // Date date = new Date(); | ||
| 108 | + // SimpleDateFormat sd = new SimpleDateFormat("MMddHHmmss"); | ||
| 109 | + // String ss = sd.format(date); | ||
| 110 | + return String.valueOf(timestamp); | ||
| 111 | + //return motoday; | ||
| 112 | +>>>>>>> 180640a4e451ae2b82ae745eb6b1d1651dc5f17f | ||
| 113 | + } | ||
| 114 | + /** | ||
| 115 | + * 签名算法:signature 字符串格式,由三部分组成:GET+”\n”+Expire+”\n”+Resource | ||
| 116 | + * 2016 0602171212 | ||
| 117 | + * @return | ||
| 118 | + * @throws UnsupportedEncodingException | ||
| 119 | + */ | ||
| 120 | + public static String signature(String streamName) throws UnsupportedEncodingException { | ||
| 121 | + | ||
| 122 | + String method = "GET"; | ||
| 123 | +<<<<<<< HEAD | ||
| 124 | + String expire = BaseUtil.getTimestamp(); | ||
| 125 | + String app = "live"; | ||
| 126 | + String methodadd = "add"; | ||
| 127 | + String name = streamName; | ||
| 128 | + app = java.net.URLEncoder.encode(app, "utf-8"); | ||
| 129 | + methodadd = java.net.URLEncoder.encode(methodadd, "utf-8"); | ||
| 130 | + name = java.net.URLEncoder.encode(name, "utf-8"); | ||
| 131 | + System.out.println(expire + "---expire----"); | ||
| 132 | + String Resource = "app="+app+"&method="+methodadd+"&name=" + name; | ||
| 133 | + //Resource = java.net.URLEncoder.encode(Resource, "utf-8"); | ||
| 134 | + String stringToSign = method + "\n" + expire + "\n" + Resource; | ||
| 135 | + System.out.println("--stringToSign--"+stringToSign); | ||
| 136 | + // 2.计算 HMAC-SHA1 | ||
| 137 | + String signature = HMACSha1(stringToSign, SECRET_KEY); | ||
| 138 | + System.out.println( "---signature---"+signature ); | ||
| 139 | + signature = java.net.URLEncoder.encode(signature, "utf-8"); | ||
| 140 | +======= | ||
| 141 | + String Expire = String.valueOf(BaseUtil.getTimestamp()).substring(0, 10); | ||
| 142 | + System.out.println(Expire+"---expire----"); | ||
| 143 | + String Resource = "app=live&method=add&nonce=cnlive&public=0&vdoid=12345&stream="+streamName; | ||
| 144 | + Resource = java.net.URLEncoder.encode(Resource,"utf-8"); | ||
| 145 | + String stringToSign = method + "\n" + Expire + "\n" + Resource; | ||
| 146 | + // 2.计算 HMAC-SHA1 | ||
| 147 | + String signature = HMACSha1(stringToSign, AK_SECRET); | ||
| 148 | + System.out.println(signature+"------"); | ||
| 149 | + signature =java.net.URLEncoder.encode(signature,"utf-8"); | ||
| 150 | +>>>>>>> 180640a4e451ae2b82ae745eb6b1d1651dc5f17f | ||
| 151 | + return signature; | ||
| 152 | + } | ||
| 153 | + public static String signature(String methodNname,String streamName) throws UnsupportedEncodingException { | ||
| 154 | + | ||
| 155 | +<<<<<<< HEAD | ||
| 156 | + String method = "GET"; | ||
| 157 | + String expire = BaseUtil.getTimestamp(); | ||
| 158 | + String app = "live"; | ||
| 159 | + //String methodadd = methodNname; | ||
| 160 | + //String name = streamName; | ||
| 161 | + app = java.net.URLEncoder.encode(app, "utf-8"); | ||
| 162 | + methodNname = java.net.URLEncoder.encode(methodNname, "utf-8"); | ||
| 163 | + streamName = java.net.URLEncoder.encode(streamName, "utf-8"); | ||
| 164 | + System.out.println(expire + "---expire----"); | ||
| 165 | + String Resource = "app="+app+"&method="+methodNname+"&name=" + streamName; | ||
| 166 | + //Resource = java.net.URLEncoder.encode(Resource, "utf-8"); | ||
| 167 | + String stringToSign = method + "\n" + expire + "\n" + Resource; | ||
| 168 | + System.out.println("--stringToSign--"+stringToSign); | ||
| 169 | + // 2.计算 HMAC-SHA1 | ||
| 170 | + String signature = HMACSha1(stringToSign, SECRET_KEY); | ||
| 171 | + System.out.println( "---signature---"+signature ); | ||
| 172 | + signature = java.net.URLEncoder.encode(signature, "utf-8"); | ||
| 173 | + return signature; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + public static String getUUid() { | ||
| 177 | +======= | ||
| 178 | + public static String UUid() { | ||
| 179 | +>>>>>>> 180640a4e451ae2b82ae745eb6b1d1651dc5f17f | ||
| 180 | + String uuid = UUID.randomUUID().toString(); | ||
| 181 | + uuid = uuid.replaceAll("-", ""); | ||
| 182 | + return uuid; | ||
| 183 | + } | ||
| 184 | + public static String getAccessKey() { | ||
| 185 | + return ACCESS_KEY; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + public static int random_7(int number) { | ||
| 189 | + int x = (int) (Math.random() * 10); | ||
| 190 | + for (int i = 0; i < number; i++) { | ||
| 191 | + String num = Math.random() * 10 + ""; | ||
| 192 | + } | ||
| 193 | + return x; | ||
| 194 | + } | ||
| 195 | + | ||
| 196 | + /* | ||
| 197 | + * 等同于javaScript中的 new Date().toUTCString(); | ||
| 198 | + */ | ||
| 199 | + public static String toGMTString(Date date) { | ||
| 200 | + SimpleDateFormat df = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.UK); | ||
| 201 | + df.setTimeZone(new java.util.SimpleTimeZone(0, "GMT")); | ||
| 202 | + return df.format(date); | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + /* | ||
| 206 | + * 发送POST请求 | ||
| 207 | + */ | ||
| 208 | + public static String sendPost(String url, String body, String ak_id, String ak_secret) { | ||
| 209 | + PrintWriter out = null; | ||
| 210 | + BufferedReader in = null; | ||
| 211 | + String result = ""; | ||
| 212 | + try { | ||
| 213 | + URL realUrl = new URL(url); | ||
| 214 | + | ||
| 215 | + /* | ||
| 216 | + * http header 参数 | ||
| 217 | + */ | ||
| 218 | + String method = "POST"; | ||
| 219 | + String accept = "json"; | ||
| 220 | + String content_type = "application/json"; | ||
| 221 | + String path = realUrl.getFile(); | ||
| 222 | + String date = toGMTString(new Date()); | ||
| 223 | + | ||
| 224 | + // 1.对body做MD5+BASE64加密 | ||
| 225 | + String bodyMd5 = MD5Base64(body); | ||
| 226 | + String stringToSign = method + "\n" + accept + "\n" + bodyMd5 + "\n" + content_type + "\n" + date + "\n" | ||
| 227 | + + path; | ||
| 228 | + // 2.计算 HMAC-SHA1 | ||
| 229 | + String signature = HMACSha1(stringToSign, ak_secret); | ||
| 230 | + // 3.得到 authorization header | ||
| 231 | + String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 232 | + | ||
| 233 | + // 打开和URL之间的连接 | ||
| 234 | + URLConnection conn = realUrl.openConnection(); | ||
| 235 | + // 设置通用的请求属性 | ||
| 236 | + conn.setRequestProperty("accept", accept); | ||
| 237 | + conn.setRequestProperty("content-type", content_type); | ||
| 238 | + conn.setRequestProperty("date", date); | ||
| 239 | + conn.setRequestProperty("Authorization", authHeader); | ||
| 240 | + // 发送POST请求必须设置如下两行 | ||
| 241 | + conn.setDoOutput(true); | ||
| 242 | + conn.setDoInput(true); | ||
| 243 | + // 获取URLConnection对象对应的输出流 | ||
| 244 | + out = new PrintWriter(conn.getOutputStream()); | ||
| 245 | + // 发送请求参数 | ||
| 246 | + out.print(body); | ||
| 247 | + // flush输出流的缓冲 | ||
| 248 | + out.flush(); | ||
| 249 | + // 定义BufferedReader输入流来读取URL的响应 | ||
| 250 | + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); | ||
| 251 | + String line; | ||
| 252 | + while ((line = in.readLine()) != null) { | ||
| 253 | + result += line; | ||
| 254 | + } | ||
| 255 | + } catch (Exception e) { | ||
| 256 | + System.out.println("发送 POST 请求出现异常!" + e); | ||
| 257 | + e.printStackTrace(); | ||
| 258 | + } | ||
| 259 | + // 使用finally块来关闭输出流、输入流 | ||
| 260 | + finally { | ||
| 261 | + try { | ||
| 262 | + if (out != null) { | ||
| 263 | + out.close(); | ||
| 264 | + } | ||
| 265 | + if (in != null) { | ||
| 266 | + in.close(); | ||
| 267 | + } | ||
| 268 | + } catch (IOException ex) { | ||
| 269 | + ex.printStackTrace(); | ||
| 270 | + } | ||
| 271 | + } | ||
| 272 | + return result; | ||
| 273 | + } | ||
| 274 | + | ||
| 275 | + /* | ||
| 276 | + * GET请求 | ||
| 277 | + */ | ||
| 278 | + | ||
| 279 | + public static String sendGet(String url, String ak_id, String ak_secret) { | ||
| 280 | + String result = ""; | ||
| 281 | + BufferedReader in = null; | ||
| 282 | + try { | ||
| 283 | + URL realUrl = new URL(url); | ||
| 284 | + /* | ||
| 285 | + * http header 参数 | ||
| 286 | + */ | ||
| 287 | +// String method = "GET"; | ||
| 288 | +// String Expire = "1436976000"; | ||
| 289 | +// String Resource = "nonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345"; | ||
| 290 | +// String content_type = "application/json"; | ||
| 291 | +// String path = realUrl.getFile(); | ||
| 292 | +// String date = toGMTString(new Date()); | ||
| 293 | +// // 1.对body做MD5+BASE64加密 | ||
| 294 | +// // String bodyMd5 = MD5Base64(body); | ||
| 295 | +// String stringToSign = method + "\n" + Expire + "\n" + Resource; | ||
| 296 | +// // 2.计算 HMAC-SHA1 | ||
| 297 | +// String signature = HMACSha1(stringToSign, ak_secret); | ||
| 298 | +// // 3.得到 authorization header | ||
| 299 | +// String authHeader = "Dataplus " + ak_id + ":" + signature; | ||
| 300 | + // 打开和URL之间的连接 | ||
| 301 | + URLConnection connection = realUrl.openConnection(); | ||
| 302 | + // 设置通用的请求属性 | ||
| 303 | +// connection.setRequestProperty("accept", "json"); | ||
| 304 | +// connection.setRequestProperty("content-type", content_type); | ||
| 305 | +// connection.setRequestProperty("date", date); | ||
| 306 | +// connection.setRequestProperty("Authorization", authHeader); | ||
| 307 | + // 建立实际的连接 | ||
| 308 | + connection.connect(); | ||
| 309 | + // 定义 BufferedReader输入流来读取URL的响应 | ||
| 310 | + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); | ||
| 311 | + String line; | ||
| 312 | + while ((line = in.readLine()) != null) { | ||
| 313 | + result += line; | ||
| 314 | + } | ||
| 315 | + } catch (Exception e) { | ||
| 316 | + System.out.println("发送GET请求出现异常!" + e); | ||
| 317 | + e.printStackTrace(); | ||
| 318 | + } | ||
| 319 | + // 使用finally块来关闭输入流 | ||
| 320 | + finally { | ||
| 321 | + try { | ||
| 322 | + if (in != null) { | ||
| 323 | + in.close(); | ||
| 324 | + } | ||
| 325 | + } catch (Exception e) { | ||
| 326 | + e.printStackTrace(); | ||
| 327 | + } | ||
| 328 | + } | ||
| 329 | + return result; | ||
| 330 | + } | ||
| 331 | + | ||
| 332 | + public static void main(String[] args) throws Exception { | ||
| 333 | + // 发送POST请求示例 | ||
| 334 | + /* | ||
| 335 | + * String ak_id = "fWUN8KDtJZJGo0ArQ4qo"; // 用户ak String ak_secret = | ||
| 336 | + * "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret String url | ||
| 337 | + * = "https://kmr-cn-beijing.ksyun.com"; String body = | ||
| 338 | + * "{\"param1\": \"GET\n1436976000\nnonce=4e1f2519c626cbfbab1520c255830c26&public=0&vdoid=12345\", \"param2\":\"fWUN8KDtJZJGo0ArQ4qo\"}" | ||
| 339 | + * ; System.out.println("response body:" + sendPost(url, body, AK_ID, | ||
| 340 | + * AK_SECRET)); | ||
| 341 | + */ | ||
| 342 | + | ||
| 343 | + Date date = new Date(); | ||
| 344 | + System.out.println(toGMTString(date)); | ||
| 345 | + String hh = HMACSha1("GET\n1436976124\nnonce=4e1f2519c626cbfbab1520c255830c26&public=1&vdoid=1", | ||
| 346 | + "fWUN8KDtJZJGo0ArQ4qo"); | ||
| 347 | + String hhhh = MD5Base64(hh); | ||
| 348 | + System.out.println(hh); | ||
| 349 | + System.out.println(".............."); | ||
| 350 | +<<<<<<< HEAD | ||
| 351 | + // String str = signature(); | ||
| 352 | + // System.out.println(str);//L2muBoImPzyvwyzfBtGXEu+wRNE= | ||
| 353 | + | ||
| 354 | + // 发送GET请求 | ||
| 355 | + String url1 = "http://cnlive.dashboard.ks-cdn.com/blacklist?signature=iDPKaesXXW3A26CScNyjpNkzxZs%3D&accesskey=I3TC8a4xboPUMe5xlp22&expire=1483200000&app=live&method=add&stream=310166_863"; | ||
| 356 | + System.out.println("response body:" +sendGet(url1, ACCESS_KEY, SECRET_KEY)); | ||
| 357 | + | ||
| 358 | + // long d = getTimestamp(); | ||
| 359 | + // System.out.println(d); | ||
| 360 | +======= | ||
| 361 | + //String str = signature(); | ||
| 362 | + //System.out.println(str);//L2muBoImPzyvwyzfBtGXEu+wRNE= | ||
| 363 | + /*// 发送GET请求 | ||
| 364 | + String ak_id1 = "fWUN8KDtJZJGo0ArQ4qo"; //用户ak | ||
| 365 | + String ak_secret1 = "UIWPYVeaV8kq2vWImDkLBvWs/pwmTJVF9MCNHDsC"; // 用户ak_secret | ||
| 366 | + String url1 = "http://cnlive.uplive.ks-cdn.com?signature=L2muBoImPzyvwyzfBtGXEu+wRNE=&accesskey=fWUN8KDtJZJGo0ArQ4qo&expire=1436976000&method=add&app=live&name=498122_57"; | ||
| 367 | + System.out.println("response body:" +sendGet(url1, ak_id1, ak_secret1));*/ | ||
| 368 | + //long d = getTimestamp(); | ||
| 369 | + //System.out.println(d); | ||
| 370 | +>>>>>>> 180640a4e451ae2b82ae745eb6b1d1651dc5f17f | ||
| 371 | + } | ||
| 372 | +} |
src/main/resources/logging.properties
0 → 100644
| 1 | +handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler | ||
| 2 | + | ||
| 3 | +############################################################ | ||
| 4 | +# Handler specific properties. | ||
| 5 | +# Describes specific configuration info for Handlers. | ||
| 6 | +############################################################ | ||
| 7 | + | ||
| 8 | +org.apache.juli.FileHandler.level = FINE | ||
| 9 | +org.apache.juli.FileHandler.directory = ${catalina.base}/logs | ||
| 10 | +org.apache.juli.FileHandler.prefix = error-debug. | ||
| 11 | + | ||
| 12 | +java.util.logging.ConsoleHandler.level = FINE | ||
| 13 | +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter | ||
| 0 | \ No newline at end of file | 14 | \ No newline at end of file |
src/main/webapp/crossdomain.xml
| 1 | -<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | -<cross-domain-policy> | ||
| 3 | - <allow-access-from domain="*"/> | 1 | +<?xml version="1.0" encoding="utf-8"?> |
| 2 | +<cross-domain-policy> | ||
| 3 | + <allow-access-from domain="*"/> | ||
| 4 | </cross-domain-policy> | 4 | </cross-domain-policy> |
| 5 | \ No newline at end of file | 5 | \ No newline at end of file |
src/main/webapp/pages/check/check_management.jsp
| @@ -160,13 +160,14 @@ body { | @@ -160,13 +160,14 @@ body { | ||
| 160 | <div id="a1_${item.id}" class="a1_class" | 160 | <div id="a1_${item.id}" class="a1_class" |
| 161 | style="height: 150px"> | 161 | style="height: 150px"> |
| 162 | <input type="hidden" value='${item.id}' name="liveid" | 162 | <input type="hidden" value='${item.id}' name="liveid" |
| 163 | - id="liveid"> <input type="hidden" | ||
| 164 | - value='${item.title}' name="title" id="title"> <input | ||
| 165 | - type="hidden" value='${item.live_url}' name="live_url" | ||
| 166 | - id="live_url_${item.id}"> <input type="hidden" | ||
| 167 | - value='${item.start_time}' name="start_time" | ||
| 168 | - id="start_time"> <input type="hidden" | ||
| 169 | - value='${item.end_time}' name="end_time" id="end_time"> | 163 | + id="liveid"> |
| 164 | + <input type="hidden"value='${item.title}' name="title" id="title"> | ||
| 165 | + <input type="hidden" value='${item.live_url}' name="live_url" | ||
| 166 | + id="live_url_${item.id}"> | ||
| 167 | + <input type="hidden"value='${item.start_time}' name="start_time" | ||
| 168 | + id="start_time"> | ||
| 169 | + <input type="hidden"value='${item.end_time}' name="end_time" id="end_time"> | ||
| 170 | + <input type="hidden"value='${item.t_user_id}' name="t_user_id" id="t_user_${item.id}"> | ||
| 170 | <%-- <h4 class="blue smaller"> | 171 | <%-- <h4 class="blue smaller"> |
| 171 | <i class="icon-picture orange"></i>视频源 : ${item.title} | 172 | <i class="icon-picture orange"></i>视频源 : ${item.title} |
| 172 | </h4> --%> | 173 | </h4> --%> |
| @@ -209,7 +210,9 @@ body { | @@ -209,7 +210,9 @@ body { | ||
| 209 | 210 | ||
| 210 | $(".a1_class #liveid").each(function() { | 211 | $(".a1_class #liveid").each(function() { |
| 211 | var id = $(this).val(); | 212 | var id = $(this).val(); |
| 212 | - var live_url = $('#live_url_' + id).val(); | 213 | + var live_url = $('#live_url_' + id).val(); |
| 214 | + var t_user_id = $('#t_user_'+id).val(); | ||
| 215 | + | ||
| 213 | var flashvars = { | 216 | var flashvars = { |
| 214 | p : 1, | 217 | p : 1, |
| 215 | e : 1, | 218 | e : 1, |
| @@ -218,29 +221,28 @@ body { | @@ -218,29 +221,28 @@ body { | ||
| 218 | }; | 221 | }; |
| 219 | var video = [live_url ]; | 222 | var video = [live_url ]; |
| 220 | var support = [ 'all' ]; | 223 | var support = [ 'all' ]; |
| 221 | - CKobject.embedHTML5('a1_' + id, 'ckplayer_' + id, | ||
| 222 | - 250, 153, video, flashvars, support); | ||
| 223 | - | 224 | + CKobject.embedHTML5('a1_' + id, 'ckplayer_' + id,250, 153, video, flashvars, support); |
| 225 | + | ||
| 224 | //m3u8 文件播放 | 226 | //m3u8 文件播放 |
| 225 | - /* var flashvars={ | 227 | + /* var flashvars={ |
| 226 | f:'http://localhost:8080/cnlive_live_web/static/assets/ckplayer/m3u8.swf', | 228 | f:'http://localhost:8080/cnlive_live_web/static/assets/ckplayer/m3u8.swf', |
| 227 | - a:'http://wideo01.cnlive.com/video/data1/2016/0524/124235/1500/b148a555a7984a539b56d7e17cb360f7_124235_1500.m3u8', | 229 | + a:live_url, |
| 228 | s:4, | 230 | s:4, |
| 229 | c:0, | 231 | c:0, |
| 230 | p:1 | 232 | p:1 |
| 231 | }; | 233 | }; |
| 232 | var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:'transparent'}; | 234 | var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:'transparent'}; |
| 233 | - var video=['http://wideo01.cnlive.com/video/data1/2016/0524/124235/1500/b148a555a7984a539b56d7e17cb360f7_124235_1500.m3u8']; | ||
| 234 | - CKobject.embed('http://localhost:8080/cnlive_live_web/static/assets/ckplayer/ckplayer.swf', 'a1_' + id, 'ckplayer_' + id, 250, 153,false,flashvars,video,params); */ | 235 | + var video=[live_url]; |
| 236 | + CKobject.embed('http://localhost:8080/cnlive_live_web/static/assets/ckplayer/ckplayer.swf', 'a1_' + id, 'ckplayer_' + id, 250, 153,false,flashvars,video,params); */ | ||
| 235 | // rtmp 直播流播放。 | 237 | // rtmp 直播流播放。 |
| 236 | - /* var flashvars = { | 238 | + /* var flashvars = { |
| 237 | // f:'rtmp://localhost/live/livestreame', | 239 | // f:'rtmp://localhost/live/livestreame', |
| 238 | - f : 'rtmp://cnlive.uplive.ks-cdn.com/live/LIVEVJ154A34CF536', | 240 | + f :'http://cnlive.uplive.ks-cdn.com/live/'+t_user_id+'_'+id, |
| 239 | c : 0 | 241 | c : 0 |
| 240 | }; | 242 | }; |
| 241 | - var video = [ 'http://cnlive.hlslive.ks-cdn.com/live/LIVEVJ154A34CF536/index.m3u8']; | 243 | + var video = [ 'http://cnlive.hlslive.ks-cdn.com/live/'+t_user_id+'_'+id+'/index.m3u8']; |
| 242 | CKobject.embed('../../static/assets/ckplayer/ckplayer.swf','a1_' + id, 'ckplayer_' + id, 250, | 244 | CKobject.embed('../../static/assets/ckplayer/ckplayer.swf','a1_' + id, 'ckplayer_' + id, 250, |
| 243 | - 153, false, flashvars, video); */ | 245 | + 153, false, flashvars, video); */ |
| 244 | 246 | ||
| 245 | }); | 247 | }); |
| 246 | 248 |