<%-- - $Revision$ - $Date$ - - Copyright (C) 2004-2008 Jive Software. 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. --%> <%@ page import="org.jivesoftware.openfire.XMPPServer, org.jivesoftware.openfire.handler.IQAuthHandler, org.jivesoftware.openfire.handler.IQRegisterHandler, org.jivesoftware.openfire.session.LocalClientSession, org.jivesoftware.util.ParamUtils" errorPage="error.jsp" %> <%@ page import="java.util.HashMap"%> <%@ page import="java.util.Iterator"%> <%@ page import="java.util.Map"%> <%@ page import="java.util.StringTokenizer"%> <%@ page import="java.util.regex.Pattern" %> <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %> <%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %> <% webManager.init(request, response, session, application, out ); %> <fmt:message key="reg.settings.title"/> <% // Get parameters boolean save = request.getParameter("save") != null; boolean inbandEnabled = ParamUtils.getBooleanParameter(request, "inbandEnabled"); boolean canChangePassword = ParamUtils.getBooleanParameter(request, "canChangePassword"); boolean anonLogin = ParamUtils.getBooleanParameter(request, "anonLogin"); String allowedIPs = request.getParameter("allowedIPs"); String allowedAnonymIPs = request.getParameter("allowedAnonymIPs"); // Get an IQRegisterHandler: IQRegisterHandler regHandler = XMPPServer.getInstance().getIQRegisterHandler(); IQAuthHandler authHandler = XMPPServer.getInstance().getIQAuthHandler(); if (save) { regHandler.setInbandRegEnabled(inbandEnabled); regHandler.setCanChangePassword(canChangePassword); authHandler.setAllowAnonymous(anonLogin); // Build a Map with the allowed IP addresses Pattern pattern = Pattern.compile("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.)" + "(?:(?:\\*|25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){2}" + "(?:\\*|25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"); Map newMap = new HashMap(); StringTokenizer tokens = new StringTokenizer(allowedIPs, ", "); while (tokens.hasMoreTokens()) { String address = tokens.nextToken().trim(); if (pattern.matcher(address).matches()) { newMap.put(address, ""); } } Map allowedAnonymMap = new HashMap(); StringTokenizer tokens1 = new StringTokenizer(allowedAnonymIPs, ", "); while (tokens1.hasMoreTokens()) { String address = tokens1.nextToken().trim(); if (pattern.matcher(address).matches()) { allowedAnonymMap.put(address, ""); } } LocalClientSession.setAllowedIPs(newMap); LocalClientSession.setAllowedAnonymIPs(allowedAnonymMap); // Log the event webManager.logEvent("edited registration settings", "inband enabled = "+inbandEnabled+"\ncan change password = "+canChangePassword+"\nanon login = "+anonLogin+"\nallowed ips = "+allowedIPs); } // Reset the value of page vars: inbandEnabled = regHandler.isInbandRegEnabled(); canChangePassword = regHandler.canChangePassword(); anonLogin = authHandler.isAnonymousAllowed(); // Encode the allowed IP addresses StringBuilder buf = new StringBuilder(); Iterator iter = org.jivesoftware.openfire.session.LocalClientSession.getAllowedIPs().keySet().iterator(); if (iter.hasNext()) { buf.append(iter.next()); } while (iter.hasNext()) { buf.append(", ").append(iter.next()); } allowedIPs = buf.toString(); StringBuilder buf1 = new StringBuilder(); Iterator iter1 = org.jivesoftware.openfire.session.LocalClientSession.getAllowedAnonymIPs().keySet().iterator(); if (iter1.hasNext()) { buf1.append(iter1.next()); } while (iter1.hasNext()) { buf1.append(", ").append(iter1.next()); } allowedAnonymIPs = buf1.toString(); %>

<% if (save) { %>

<% } %>

>
>


>
>


>
>


">