/** * ============LICENSE_START==================================================== * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. 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. * ============LICENSE_END==================================================== * */ package org.onap.aaf.auth.gui; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.onap.aaf.auth.common.Define; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.rserv.HttpCode; import org.onap.aaf.auth.rserv.HttpMethods; import org.onap.aaf.misc.env.Slot; public class Display { private final Page get; public Display(final AAF_GUI gui, final HttpMethods meth, final Page page) { get = page; final String[] fields = page.fields(); final Slot slots[] = new Slot[fields.length]; String prefix = page.name() + '.'; for (int i=0;i(gui,page.name()) { @Override public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception { trans.put(gui.slotHttpServletRequest, req); for (int i=0; i" corresponding to an array of types String field=fields[i].substring(0, idx)+'.'; String[] array = new String[16]; for (Enumeration names = req.getParameterNames(); names.hasMoreElements();) { String key = names.nextElement(); if (key.startsWith(field)) { try { int x = Integer.parseInt(key.substring(field.length())); if (x>=array.length) { String[] temp = new String[x+10]; System.arraycopy(temp, 0, temp, 0, array.length); array = temp; } array[x]=req.getParameter(key); } catch (NumberFormatException e) { trans.debug().log(e); } } } trans.put(slots[i], array); } } page.replay(context,trans,resp.getOutputStream(),"general"); } }, "application/x-www-form-urlencoded","*/*"); } else { // Transfer whether Page shouldn't be cached to local Final var. final boolean noCache = page.noCache; gui.route(gui.env, meth, page.url(), new HttpCode(gui,page.name()) { @Override public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception { trans.put(gui.slotHttpServletRequest, req); for (int i=0; i mm = req.getParameterNames();mm.hasMoreElements();) { String key = mm.nextElement(); if (key.startsWith(field)) { try { int x = Integer.parseInt(key.substring(field.length())); if (x>=array.length) { String[] temp = new String[x+10]; System.arraycopy(temp, 0, temp, 0, array.length); array = temp; } array[x]=req.getParameter(key); } catch (NumberFormatException e) { trans.debug().log(e); } } } trans.put(slots[i], array); } } page.replay(context,trans,resp.getOutputStream(),"general"); } /** * When the field is "as_user", make sure permission is granted */ private boolean asUser(AuthzTrans trans, HttpServletRequest req, String field) { if("as_user".equals(field)) { return req.isUserInRole(Define.ROOT_NS()+"|access|*|*"); } return true; } @Override public boolean no_cache() { return noCache; } }, "text/html","*/*"); } } public Page page() { return get; } }