%@ page contentType="text/html; charset=UTF-8" %>
<%--
-
- Copyright (C) 2005-2008 Jive Software, 2017-2025 Ignite Realtime Foundation. All rights reserved.
-
- Licensed 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.
--%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="admin" prefix="admin" %>
<%@ page import="org.jivesoftware.util.ParamUtils,
org.jivesoftware.util.StringUtils,
org.jivesoftware.util.CookieUtils,
org.jivesoftware.openfire.XMPPServer,
org.jivesoftware.openfire.update.UpdateManager,
java.util.HashMap,
java.util.Map"
errorPage="error.jsp"
%>
<% webManager.init(request, response, session, application, out ); %>
<% // Get parameters
boolean update = request.getParameter("update") != null;
boolean serviceEnabled = ParamUtils.getBooleanParameter(request, "serviceEnabled");
boolean notificationsEnabled = ParamUtils.getBooleanParameter(request, "notificationsEnabled");
boolean proxyEnabled = ParamUtils.getBooleanParameter(request,"proxyEnabled");
String proxyHost = ParamUtils.getParameter(request,"proxyHost");
int proxyPort = ParamUtils.getIntParameter(request,"proxyPort", -1);
boolean updateSuccess = false;
UpdateManager updateManager = XMPPServer.getInstance().getUpdateManager();
// Update the session kick policy if requested
Map errors = new HashMap<>();
Cookie csrfCookie = CookieUtils.getCookie(request, "csrf");
String csrfParam = ParamUtils.getParameter(request, "csrf");
if (update) {
if (csrfCookie == null || csrfParam == null || !csrfCookie.getValue().equals(csrfParam)) {
update = false;
errors.put("csrf", "CSRF Failure!");
}
}
csrfParam = StringUtils.randomString(15);
CookieUtils.setCookie(request, response, "csrf", csrfParam, -1);
pageContext.setAttribute("csrf", csrfParam);
if (update) {
// Validate params
if (proxyEnabled) {
if (proxyHost == null || proxyHost.trim().isEmpty()) {
errors.put("proxyHost","");
}
if (proxyPort <= 0) {
errors.put("proxyPort","");
}
}
else {
proxyHost = null;
proxyPort = -1;
}
// If no errors, continue:
if (errors.isEmpty()) {
updateManager.setServiceEnabled(serviceEnabled);
updateManager.setNotificationEnabled(notificationsEnabled);
updateManager.setProxyHost(proxyHost);
updateManager.setProxyPort(proxyPort);
// Log the event
webManager.logEvent("edited managed updates settings", "enabeld = "+serviceEnabled+"\nnotificationsenabled = "+notificationsEnabled+"\nproxyhost = "+proxyHost+"\nproxypost = "+proxyPort);
updateSuccess = true;
}
}
// Set page vars
if (errors.isEmpty()) {
serviceEnabled = updateManager.isServiceEnabled();
notificationsEnabled = updateManager.isNotificationEnabled();
proxyEnabled = updateManager.isUsingProxy();
proxyHost = updateManager.getProxyHost();
proxyPort = updateManager.getProxyPort();
}
else {
}
pageContext.setAttribute("errors", errors);
pageContext.setAttribute("success", updateSuccess);
%>
:
()