/**
-
项目名称:lwp
-
Package名称:com.changx.ipf.controller
- 文件名称:TurnController.java
- 版本:1.00
- 创建日期:2019年7月18日
- Copyright©2007 .All Rights Reserved.
*/
package com.changx.ipf.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cbf.changx.cbfutil.net.NetworkUtil;
import cbf.changx.cbfutil.security.encript.SHA256Encript;
import cbf.changx.cbfutil.stringutil.StringUtils;
/**
-
- 类说明:
- @author:Administrator
- @version 1.00
/
/*
*
*/
@Controller
@RequestMapping (“turn”)
public class TurnController {
private Log log = LogFactory.getLog (TurnController.class);
String address = "http://223.255.255.250:500/cms/services/IAuthService?wsdl";
String URL = "http://223.255.255.250:500/cms/loginCas?ticket=";
@RequestMapping ("/hkws")
@ResponseBody
public String queryHKWS (HttpServletRequest request, HttpServletResponse response) {
String user = "admin";
String password = "Hik12345";
String ip = "";
try {
ip = NetworkUtil.getIpAddress (request);
password = SHA256Encript.getSHA256Str (password);
}
catch (Exception e1) {
e1.printStackTrace ();
}
// request.getRequestURI ();
// StringBuffer a = new StringBuffer ();
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance ();
Client client = dcf.createClient (address);
// namespace是命名空间,methodName是方法名
QName login = new QName ("http://ws.cms.ivms6.hikvision.com", "login");
QName applyToken = new QName ("http://ws.cms.ivms6.hikvision.com", "applyToken");
// String xmlStr = pram;
Object[] objects;
System.out.println ("local IP:" + ip);
try {
objects = client.invoke (login, user, password, "223.255.255.250", ip, "");
System.out.println (objects[0].toString ());
// a.append (objects[0].toString ());
// 解析login的xml
String tgc = dom4jXmlLogin (objects[0].toString ());
if (StringUtils.isNotEmpty (tgc)) {
objects = client.invoke (applyToken, tgc);
// 解析applyToken的xml
String st = dom4jXmlApplyToken (objects[0].toString ());
if (StringUtils.isNotEmpty (st)) {
URL = URL + st;
}
}
response.sendRedirect (URL);
}
catch (Exception e) {
e.printStackTrace ();
}
return null;
}
// 解析applyToken的xml
private String dom4jXmlApplyToken (String string) throws Exception {
String st = "";
Document document = DocumentHelper.parseText (string);
Element root = document.getRootElement ();
Element head = root.element ("head");
Element result = head.element ("result");
String result_code = result.attributeValue ("result_code");
if ("0".equals (result_code)) {
Element rows = root.element ("rows");
Element row = rows.element ("row");
st = row.attributeValue ("st");
}
/*
* else {
*
* }
*/
return st;
}
// 解析login接口返回的xml
public String dom4jXmlLogin (String string) throws Exception {
String tgc = "";
Document document = DocumentHelper.parseText (string);
Element root = document.getRootElement ();
Element head = root.element ("head");
Element result = head.element ("result");
String result_code = result.attributeValue ("result_code");
if ("0".equals (result_code)) {
Element rows = root.element ("rows");
Element row = rows.element ("row");
tgc = row.attributeValue ("tgc");
}
/*
* else {
*
* }
*/
return tgc;
}
}