Привет, мне нужна помощь с правильным способом авторизации гостя с помощью Java/JSP кода, работающего на контроллере UniFi. Я пытался сделать это, основываясь на следующем примере: . Вход в контроллер работает отлично. Проверил также через Browser-URL: .
После выполнения authorize я получаю следующий код:
{ "data" : [], "meta" : { "rc" : "ok"}}
То же самое с Browser-URL: {'cmd':'authorize-guest','mac':'88:44:f6:b9:ec:a4','minutes':'360','bytes':'500'} и гость так и остается в ожидании навсегда.
Есть ли рабочий пример кода для Java/JSP для UniFi 3.21? Я использую правильный синтаксис / Json-запросы?
Заранее спасибо.
Max
Вот основной код:
----------------------------------------------------------------------------------------------------------------------------------------
<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page import="org.apache.log4j.Logger" %>
<%@ page import="org.apache.commons.httpclient.*" %>
<%@ page import="org.apache.commons.httpclient.protocol.*" %>
<%@ page import="org.apache.commons.httpclient.methods.*" %>
<%@ page import="org.apache.commons.httpclient.contrib.ssl.*" %>
<%
HttpClient httpclient = new HttpClient();
HttpMethod method = null;
// allow self signed ssl certs - not used
Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);
Protocol.registerProtocol("https", easyhttps);
method = new GetMethod(UNIFI_ADDR + "/login?login=login&username=" + UNIFI_USER + "&password=" + UNIFI_PASSWORD);
httpclient.executeMethod(method);
method = new GetMethod(UNIFI_ADDR + "/api/s/beta/cmd/stamgr/?json=" + URLEncoder.encode("{\"cmd\":\"authorize-guest\",\"mac\":\"" + mac + "\",\"minutes\":\"" + PLAN_MINUTES + "\",\"bytes\":\"" + bytes + "\"}"));
httpclient.executeMethod(method);
method.releaseConnection();
log.info("released connection");
%>
----------------------------------------------------------------------------------------------------------------------------------------
После выполнения authorize я получаю следующий код:
{ "data" : [], "meta" : { "rc" : "ok"}}
То же самое с Browser-URL: {'cmd':'authorize-guest','mac':'88:44:f6:b9:ec:a4','minutes':'360','bytes':'500'} и гость так и остается в ожидании навсегда.
Есть ли рабочий пример кода для Java/JSP для UniFi 3.21? Я использую правильный синтаксис / Json-запросы?
Заранее спасибо.
Max
Вот основной код:
----------------------------------------------------------------------------------------------------------------------------------------
<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page import="org.apache.log4j.Logger" %>
<%@ page import="org.apache.commons.httpclient.*" %>
<%@ page import="org.apache.commons.httpclient.protocol.*" %>
<%@ page import="org.apache.commons.httpclient.methods.*" %>
<%@ page import="org.apache.commons.httpclient.contrib.ssl.*" %>
<%
HttpClient httpclient = new HttpClient();
HttpMethod method = null;
// allow self signed ssl certs - not used
Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);
Protocol.registerProtocol("https", easyhttps);
method = new GetMethod(UNIFI_ADDR + "/login?login=login&username=" + UNIFI_USER + "&password=" + UNIFI_PASSWORD);
httpclient.executeMethod(method);
method = new GetMethod(UNIFI_ADDR + "/api/s/beta/cmd/stamgr/?json=" + URLEncoder.encode("{\"cmd\":\"authorize-guest\",\"mac\":\"" + mac + "\",\"minutes\":\"" + PLAN_MINUTES + "\",\"bytes\":\"" + bytes + "\"}"));
httpclient.executeMethod(method);
method.releaseConnection();
log.info("released connection");
%>
----------------------------------------------------------------------------------------------------------------------------------------
