forked from community/device-mgt-plugins
parent
8b1a27a181
commit
c04851d448
@ -1,66 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var log = new Log("/modules/enrollments/ios/agent-check.jag");
|
||||
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var UAParser = require("/app/modules/ua-parser.min.js")["UAParser"];
|
||||
|
||||
var tokenUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||
|
||||
var parser = new UAParser();
|
||||
var userAgent = request.getHeader("User-Agent");
|
||||
parser.setUA(userAgent);
|
||||
parser.getResult();
|
||||
var os = parser.getOS();
|
||||
var platform = os.name;
|
||||
|
||||
if (platform != "iOS") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else if (session.get("lastAccessedPage") != "license-agent") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var enrolledUser = session.get("enrolledUser");
|
||||
if (!enrolledUser) {
|
||||
response["status"] = 200;
|
||||
response["content"] = {"deviceID" : null};
|
||||
} else {
|
||||
var deviceCheckURL = mdmProps["iOSAPIRoot"] + "devices/udid";
|
||||
var challengeToken = session.get("iOSChallengeToken");
|
||||
var payload = {"challengeToken" : challengeToken};
|
||||
|
||||
serviceInvokers.XMLHttp.post(
|
||||
deviceCheckURL,
|
||||
stringify(payload),
|
||||
function (restAPIResponse) {
|
||||
var status = restAPIResponse["status"];
|
||||
if (status == 200) {
|
||||
var responseContent = parse(restAPIResponse.responseText);
|
||||
response["status"] = 200;
|
||||
response["content"] = responseContent;
|
||||
} else {
|
||||
response["status"] = 200;
|
||||
response["content"] = {"deviceID" : null};
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
%>
|
@ -1,80 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var log = new Log("/modules/enrollments/ios/agent-controller.jag");
|
||||
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var UAParser = require("/app/modules/ua-parser.min.js")["UAParser"];
|
||||
var tokenUtil = require("/app/modules/oauth/token-handlers.js")["handlers"];
|
||||
var serviceInvokers = require("/app/modules/oauth/token-protected-service-invokers.js")["invokers"];
|
||||
var constants = require("/app/modules/constants.js");
|
||||
|
||||
var parser = new UAParser();
|
||||
var userAgent = request.getHeader("User-Agent");
|
||||
parser.setUA(userAgent);
|
||||
parser.getResult();
|
||||
var os = parser.getOS();
|
||||
var platform = os.name;
|
||||
|
||||
if (platform != "iOS") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else if (session.get("lastAccessedPage") != "login-agent") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var username = request.getParameter("username");
|
||||
var password = request.getParameter("password");
|
||||
var ownership = request.getParameter("ownership");
|
||||
var domain = request.getParameter("domain");
|
||||
if (!username || !password || !ownership) {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var fullyQualifiedUsername = username;
|
||||
if(domain != null && domain != ''){
|
||||
fullyQualifiedUsername = username + "@" + domain;
|
||||
}
|
||||
tokenUtil.setupTokenPairByPasswordGrantType(fullyQualifiedUsername, password);
|
||||
var authUrl = mdmProps["iOSConfigRoot"] + "authenticate";
|
||||
var payload = {
|
||||
"username": username, "password": password, "ownership": ownership,
|
||||
"tenantDomain": domain
|
||||
};
|
||||
serviceInvokers.XMLHttp.post(
|
||||
authUrl,
|
||||
stringify(payload),
|
||||
function (restAPIResponse) {
|
||||
var status = restAPIResponse["status"];
|
||||
if (status == 200) {
|
||||
var responseContent = parse(restAPIResponse.responseText);
|
||||
session.put("authenticatedUser", username);
|
||||
session.put("authenticatedUserPassword", password);
|
||||
session.put("authenticatedUserDeviceOwnership", ownership);
|
||||
session.put("authenticatedUserDomain", domain);
|
||||
session.put("iOSChallengeToken", responseContent["challengeToken"]);
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/ios/license-agent");
|
||||
} else if (status == 403) {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/ios/login-agent?error=auth-failed");
|
||||
} else {
|
||||
// one visible possibility would be server sending 500
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/ios/login-agent?error=unexpected");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
%>
|
@ -1,85 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var log = new Log("/app/modules/enrollments/ios/agent-enroll.jag");
|
||||
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var UAParser = require("/app/modules/ua-parser.min.js")["UAParser"];
|
||||
|
||||
var parser = new UAParser();
|
||||
var userAgent = request.getHeader("User-Agent");
|
||||
parser.setUA(userAgent);
|
||||
parser.getResult();
|
||||
var os = parser.getOS();
|
||||
var platform = os.name;
|
||||
|
||||
if (platform != "iOS") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else if (session.get("lastAccessedPage") != "license-agent") {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var authenticatedUser = session.get("authenticatedUser");
|
||||
if (!authenticatedUser) {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var HttpClient = Packages.org.apache.commons.httpclient.HttpClient;
|
||||
var PostMethod = Packages.org.apache.commons.httpclient.methods.PostMethod;
|
||||
var Header = Packages.org.apache.commons.httpclient.Header;
|
||||
var StringRequestEntity = Packages.org.apache.commons.httpclient.methods.StringRequestEntity;
|
||||
var ByteArrayInputStream = Packages.java.io.ByteArrayInputStream;
|
||||
|
||||
var client = new HttpClient();
|
||||
var enrollUrl = mdmProps["iOSConfigRoot"] + "enroll";
|
||||
var method = new PostMethod(enrollUrl);
|
||||
var header = new Header();
|
||||
|
||||
header.setName("Content-Type");
|
||||
header.setValue("application/json");
|
||||
method.addRequestHeader(header);
|
||||
|
||||
var username = authenticatedUser;
|
||||
var password = session.get("authenticatedUserPassword");
|
||||
var tenantDomain = session.get("authenticatedUserDomain");
|
||||
var challengeToken = session.get("iOSChallengeToken");
|
||||
|
||||
var inputs = {"username": username, "password": password, "challengeToken": challengeToken, "tenantDomain": tenantDomain};
|
||||
var stringRequestEntity = new StringRequestEntity(stringify(inputs));
|
||||
method.setRequestEntity(stringRequestEntity);
|
||||
try {
|
||||
client.executeMethod(method);
|
||||
var status = method.getStatusCode();
|
||||
if (status == 200) {
|
||||
session.put("enrolledUser", authenticatedUser);
|
||||
var stream = method.getResponseBody();
|
||||
var byteArrayInputStream = new ByteArrayInputStream(stream);
|
||||
response.contentType = "application/x-apple-aspen-config";
|
||||
print(new Stream(byteArrayInputStream));
|
||||
} else {
|
||||
// two visible possibilities would be server sending 401 and 500
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/ios/login-agent?error=unexpected");
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("Error occurred in enrolling ios device", e);
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/ios/login-agent?error=unexpected");
|
||||
} finally {
|
||||
method.releaseConnection();
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
@ -1,47 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var log = new Log("/app/modules/enrollments/ios/agent.jag");
|
||||
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
|
||||
var userAgent = request.getHeader("User-Agent");
|
||||
var userAgentIsiPhone = (userAgent.indexOf("iPhone") > -1);
|
||||
var userAgentIsiPad = (userAgent.indexOf("iPad") > -1);
|
||||
var userAgentIsiPodTouch = (userAgent.indexOf("iPod Touch") > -1);
|
||||
|
||||
if (!userAgentIsiPhone && !userAgentIsiPad && !userAgentIsiPodTouch) {
|
||||
response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request");
|
||||
} else {
|
||||
var enrollmentUtils = require("/app/modules/enrollments/util/utils.js")["methods"];
|
||||
var Handlebars = require("/lib/modules/handlebars/handlebars-v2.0.0.js")["Handlebars"];
|
||||
var template = Handlebars.compile(enrollmentUtils.
|
||||
getResource("/app/modules/enrollments/ios/config/ios-manifest-template.hbs"));
|
||||
|
||||
var iOSManifest = template({
|
||||
"url" : mdmProps["device"]["ios"]["location"],
|
||||
"bundleID" : mdmProps["device"]["ios"]["bundleID"],
|
||||
"bundleVersion" : mdmProps["device"]["ios"]["version"],
|
||||
"appName" : mdmProps["device"]["ios"]["appName"]
|
||||
});
|
||||
|
||||
response.contentType = "application/xml";
|
||||
response.content = iOSManifest;
|
||||
}
|
||||
%>
|
@ -1,26 +0,0 @@
|
||||
<%
|
||||
var HttpClient = Packages.org.apache.commons.httpclient.HttpClient;
|
||||
var GetMethod = Packages.org.apache.commons.httpclient.methods.GetMethod;
|
||||
var StringRequestEntity = Packages.org.apache.commons.httpclient.methods.StringRequestEntity;
|
||||
|
||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||
var caURL = mdmProps["iOSConfigRoot"] + 'ca';
|
||||
var client = new HttpClient();
|
||||
var method = new GetMethod(caURL);
|
||||
|
||||
try {
|
||||
client.executeMethod(method);
|
||||
var status = method.getStatusCode();
|
||||
|
||||
if (status == 200) {
|
||||
var stream = method.getResponseBody();
|
||||
response.contentType = "application/x-x509-ca-cert";
|
||||
var byteArrayInputStream = new Packages.java.io.ByteArrayInputStream(stream);
|
||||
print(new Stream(byteArrayInputStream));
|
||||
} else {
|
||||
response.sendRedirect("/errorpage");
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("Error occurred when downloading CA " + e);
|
||||
}
|
||||
%>
|
@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>items</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>assets</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key>
|
||||
<string>software-package</string>
|
||||
<key>url</key>
|
||||
<string>{{url}}</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>metadata</key>
|
||||
<dict>
|
||||
<key>bundle-identifier</key>
|
||||
<string>{{bundleID}}</string>
|
||||
<key>bundle-version</key>
|
||||
<string>{{bundleVersion}}</string>
|
||||
<key>kind</key>
|
||||
<string>software</string>
|
||||
<key>title</key>
|
||||
<string>{{appName}}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
Loading…
Reference in new issue