Skip to content

Commit cf9be24

Browse files
committed
restful api token and cut off supported
1 parent dfed7ee commit cf9be24

34 files changed

+1003
-44
lines changed

core/src/main/java/org/iottree/core/UAPrj.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ private PropGroup getPrjRestfulApiGroup()
450450
{
451451
Lan lan = Lan.getPropLangInPk(this.getClass()) ;
452452

453-
PropGroup r = new PropGroup("prj_restful", lan,"/doc/"+Lan.getUsingLang()+"/doc/advanced/adv_restful_out.md");//"Project");
453+
PropGroup r = new PropGroup("prj_restful", lan,"/doc/advanced/adv_restful_out.md");//"Project");
454454

455455
r.addPropItem(new PropItem("token_en", lan, PValTP.vt_bool, false, null, null,false));
456456
r.addPropItem(new PropItem("token_users",lan, PValTP.vt_str, false, null, null,"").withTxtMultiLine(true));

core/src/main/java/org/iottree/core/UATag.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,6 +1456,9 @@ private boolean RT_writeValDriver(Object v)
14561456
if(dd==null)
14571457
return false;
14581458

1459+
if(!dd.RT_isRunning())
1460+
return false;
1461+
14591462
ValTranser vtrans = this.getValTranserObj() ;
14601463
if(vtrans!=null)
14611464
{

core/src/main/java/org/iottree/core/util/web/PrjFilter.java

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,12 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
213213
}
214214
}
215215

216-
boolean bres = doPut(req, resp,(UATag)node,prj) ;
217-
resp.getWriter().write("{\"result\":"+bres+"}");
216+
StringBuilder failedr = new StringBuilder() ;
217+
boolean bres = doPut(req, resp,(UATag)node,prj,failedr) ;
218+
if(bres)
219+
resp.getWriter().write("{\"result\":true}");
220+
else
221+
resp.getWriter().write("{\"result\":false,\"err\":\""+failedr.toString()+"\"}");
218222
return ;
219223
}
220224
}
@@ -254,7 +258,7 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
254258
}
255259

256260

257-
protected boolean doPut(HttpServletRequest req, HttpServletResponse resp,UATag tag,UAPrj prj) throws ServletException, IOException
261+
protected boolean doPut(HttpServletRequest req, HttpServletResponse resp,UATag tag,UAPrj prj,StringBuilder failedr) throws ServletException, IOException
258262
{
259263
//super.doPut(req, resp);
260264
//update restful api
@@ -274,23 +278,36 @@ protected boolean doPut(HttpServletRequest req, HttpServletResponse resp,UATag t
274278

275279
boolean cutoff = isWriteTagCutoff(prj);
276280

277-
//String pv0 = req.getParameter("_pv") ;
278-
for(Enumeration<String> ens = req.getParameterNames() ;ens.hasMoreElements();)
281+
try
279282
{
280-
String pn = ens.nextElement() ;
281-
String pv = req.getParameter(pn) ;
282-
if(cutoff)
283-
{
284-
log.warn("cut off write tag ["+tag.getNodePath()+"] with "+pn+"="+pv);
285-
}
286-
else
283+
//String pv0 = req.getParameter("_pv") ;
284+
for(Enumeration<String> ens = req.getParameterNames() ;ens.hasMoreElements();)
287285
{
288-
if(log.isDebugEnabled())
289-
log.debug("write tag ["+tag.getNodePath()+"] with "+pn+"="+pv);
290-
tag.JS_set(pn, pv);
286+
String pn = ens.nextElement() ;
287+
String pv = req.getParameter(pn) ;
288+
if(cutoff)
289+
{
290+
log.warn("cut off write tag ["+tag.getNodePath()+"] with "+pn+"="+pv);
291+
}
292+
else
293+
{
294+
if(log.isDebugEnabled())
295+
log.debug("write tag ["+tag.getNodePath()+"] with "+pn+"="+pv);
296+
tag.JS_set(pn, pv);
297+
}
291298
}
299+
300+
return true;
301+
}
302+
catch(Exception ee)
303+
{
304+
if(log.isDebugEnabled())
305+
log.debug(ee);
306+
307+
failedr.append(ee.getMessage()) ;
308+
return false;
292309
}
293-
return true;
310+
294311
}
295312

296313
@Override

core/src/main/java/org/iottree/core/util/web/Token.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
/**
1515
* Token token = Token(user,psw) ;
1616
*
17-
* Restful 每次请求,http头token属性都必须生成一个新的
17+
* Every time it is called, a new Restful HTTP header token attribute must be create new one
1818
*
1919
* String newtoken = token.createNew() ;
2020
*
@@ -64,7 +64,7 @@ public String createNew() throws Exception
6464
{
6565
String uuid = UUID.randomUUID().toString();
6666
//System.out.println("new uuid=" + uuid);
67-
String dd = uuid;
67+
String dd = user+"="+uuid;
6868

6969
byte[] bs = dd.getBytes("UTF-8");
7070
int blen = 0;
@@ -103,7 +103,14 @@ public String[] parseToken(String token) throws Exception
103103
if (bs[last - 1] != 0)
104104
break;
105105
}
106-
String uuid = new String(bs, 0, last, "UTF-8");
106+
String user_uuid = new String(bs, 0, last, "UTF-8");
107+
k = user_uuid.indexOf('=') ;
108+
if(k<=0)
109+
return null ;
110+
String retuser = user_uuid.substring(0,k) ;
111+
String uuid = user_uuid.substring(k+1) ;
112+
if(!retuser.equals(user))
113+
return null;
107114
//System.out.println("token uuid=" + uuid);
108115
return new String[] { usr, uuid };
109116
}
@@ -197,6 +204,6 @@ public static void main(String[] args) throws Exception
197204
String newtk = tk.createNew();
198205
System.out.println("new token=" + newtk);
199206
String[] ret = tk.parseToken(newtk);
200-
System.out.println("parsed ret=" + ret);
207+
System.out.println("parsed ret=" + ret+" uuid="+ret[1]);
201208
}
202209
}

web/ROOT/head.jsp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,28 @@ String ver = Config.getVersion() ;
4141
}
4242
if(oc)
4343
{
44+
File f = new File(Config.getWebappBase()+"/_js/oc/oc.js") ;
45+
long dt = 0 ;
46+
if(f.exists())
47+
dt = f.lastModified() ;
48+
//System.out.println("dt="+dt) ;
4449
%>
4550
<script src="/_js/oc/hmi_util.js?v=<%=ver%>"></script>
46-
<script src="/_js/oc/oc.js?v=<%=ver%>"></script>
51+
<script src="/_js/oc/oc.js?v=<%=dt%>"></script>
4752
<script src="/_js/oc/oc_util.js?v=<%=ver%>"></script>
4853
<link type="text/css" href="/_js/oc/oc.css?v=<%=ver%>" rel="stylesheet" />
4954

5055
<%
5156
}
5257
if(oc_min)
5358
{
59+
File f = new File(Config.getWebappBase()+"/_js/oc/oc.min.js") ;
60+
long dt = 0 ;
61+
if(f.exists())
62+
dt = f.lastModified() ;
63+
//System.out.println("dt="+dt) ;
5464
%>
55-
<script src="/_js/oc/oc.min.js?v=<%=ver%>"></script>
65+
<script src="/_js/oc/oc.min.js?v=<%=dt%>"></script>
5666
<script src="/_js/oc/oc_util.js?v=<%=ver%>"></script>
5767
<link type="text/css" href="/_js/oc/oc.css?v=<%=ver%>" rel="stylesheet" />
5868
<%

web/ROOT/hmi.jsp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
<head>
110110
<meta charset="utf-8">
111111
<title><%=hmitt %></title>
112+
<%--
112113
<script src="/_js/jquery-1.12.0.min.js"></script>
113114
<script src="/_js/bootstrap/js/bootstrap.min.js"></script>
114115
<script type="text/javascript" src="/_js/ajax.js"></script>
@@ -119,6 +120,11 @@
119120
<script src="/_js/oc/oc.min.js?v=<%=Config.getVersion()%>"></script>
120121
<link type="text/css" href="/_js/oc/oc.css?v=<%=Config.getVersion()%>" rel="stylesheet" />
121122
<link href="/_js/font6/css/all.css" rel="stylesheet">
123+
--%>
124+
<jsp:include page="head.jsp">
125+
<jsp:param value="true" name="oc_min"/>
126+
</jsp:include>
127+
<script src="/_js/oc/hmi_util.js?v=<%=Config.getVersion()%>"></script>
122128
<style>
123129
body {
124130
margin: 0px;

web/admin/src/main/java/org/iottree/web/admin/WSCxtRT.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ public class WSCxtRT extends WSRoot
4545
//System.out.println(" cxt ws class is loading ................>>>>>>>>>>>>>>>>>>>>>>") ;
4646
}
4747

48-
49-
5048
@OnOpen
5149
public void onOpen(Session session, @PathParam(value = "prjname") String prjname,
5250
@PathParam(value = "nodeid") String nodeid,EndpointConfig config) throws Exception //

web/admin/ua/ui_prop.jsp

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
return ;
1919
}
2020
21+
String usingln = Lan.getUsingLang() ;
2122
/*
2223
String repid = request.getParameter("repid") ;
2324
String id = request.getParameter("id") ;
@@ -52,17 +53,10 @@
5253
<head>
5354
<meta charset="utf-8">
5455
<title>Properties Editor</title>
55-
<script src="/_js/jquery-1.12.0.min.js"></script>
56-
<script src="/_js/bootstrap/js/bootstrap.min.js"></script>
57-
<script type="text/javascript" src="/_js/ajax.js"></script>
58-
<link rel="stylesheet" type="text/css" href="/_js/layui/css/layui.css" />
59-
<script src="/_js/dlg_layer.js"></script>
60-
<script src="/_js/layui/layui.all.js"></script>
61-
<script src="/_js/dlg_layer.js"></script>
62-
<link href="/_js/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" >
63-
<script src="/_js/oc/oc.js"></script>
64-
<link type="text/css" href="/_js/oc/oc.css" rel="stylesheet" />
65-
<link href="/_js/font4.7.0/css/font-awesome.css" rel="stylesheet" type="text/css" >
56+
<jsp:include page="../head.jsp">
57+
<jsp:param value="true" name="oc"/>
58+
<jsp:param value="false" name="simple"/>
59+
</jsp:include>
6660
<style>
6761
body {
6862
margin: 0px;
@@ -256,9 +250,19 @@ for(PropGroup pg:pgs)
256250
{
257251
String pgn = pg.getName() ;
258252
List<PropItem> pis = pg.getPropItems() ;
253+
String help_url = pg.getHelpUrl() ;
259254
%>
260255
<table id="tb_pg_<%=pgn %>" class="pi_edit_table">
261-
<tr><td colspan="2" class="td_left" style="font-weight: bold;color: #000000;background-color: #f0f0f0"><%=pg.getTitle() %></td></tr>
256+
<tr>
257+
<td colspan="2" class="td_left" style="font-weight: bold;color: #000000;background-color: #f0f0f0"><%=pg.getTitle() %>
258+
<%
259+
if(Convert.isNotNullEmpty(help_url))
260+
{
261+
%><span onclick="open_help('<%=help_url %>')" style="color:#1d89f0"><i class="fa fa-question-circle fa-lg" ></i>&nbsp;<wbt:g>help</wbt:g></span><%
262+
}
263+
%>
264+
</td>
265+
</tr>
262266
<%
263267
for(PropItem pi:pis)
264268
{
@@ -378,7 +382,7 @@ if(!bdlg)
378382
//var repid="";
379383
var path = "<%=path%>" ;
380384
var nodeid="<%=n.getId()%>";
381-
385+
var lan = "<%=usingln%>" ;
382386
var bdirty=false;
383387
function sel_pg(pgn)
384388
{
@@ -551,5 +555,10 @@ function get_prop_vals()
551555
});
552556
return JSON.stringify(r);
553557
}
558+
559+
function open_help(u)
560+
{
561+
window.open("/doc/"+lan+u);
562+
}
554563
</script>
555564
</html>

0 commit comments

Comments
 (0)