FileUpload.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox User DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox User The contents of this file are subject to the terms
8c225507766814e78e168b17a24b8a47ca7f8c37Tinderbox User of the Common Development and Distribution License
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox User (the License). You may not use this file except in
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox User compliance with the License.
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox User You can obtain a copy of the License at
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User https://opensso.dev.java.net/public/CDDLv1.0.html or
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User See the License for the specific language governing
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User permission and limitations under the License.
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox User When distributing Covered Code, include this CDDL
0ce865f8b2e652d6fe0c029e3538f4cc7e009fe1Tinderbox User Header Notice in each file and include the License file
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User If applicable, add the following below the CDDL Header,
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt with the fields enclosed by brackets [] replaced by
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt your own identifying information:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User "Portions Copyrighted [year] [name of copyright owner]"
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User $Id: FileUpload.jsp,v 1.4 2009/08/07 23:39:08 asyhuang Exp $
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Portions Copyrighted 2012 ForgeRock Inc
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Portions Copyrighted 2012 Open Source Solution Technology Corporation
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User<%@page import="java.io.*" %>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt<%@page import="java.net.*" %>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt<%@page import="java.util.*" %>
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User response.setContentType("text/html; charset=UTF-8");
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Locale resLocale = request.getLocale();
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if (resLocale == null) {
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User SSOTokenManager manager = SSOTokenManager.getInstance();
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User SSOToken ssoToken = manager.createSSOToken(request);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if (!manager.isValidToken(ssoToken)) {
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User } catch (SSOException ssoe) {
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User String redirectUrl = request.getScheme() + "://" +
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User InputStream is = null;
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User BufferedReader bos = null;
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User boolean limitExceeded = false;
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User StringBuffer buff = new StringBuffer();
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User bos = new BufferedReader(new InputStreamReader(is));
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User String line = bos.readLine();
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User while (line != null) {
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User buff.append(line).append("\n");
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if (buff.length() > (1024 * 50)) {
801d3c8888d6026eb1fd31c23e51e4f54dbc317eTinderbox User limitExceeded = true;
adabefa84c3dcf048566cc23fd457c577f208eeaTinderbox User if (limitExceeded) {
801d3c8888d6026eb1fd31c23e51e4f54dbc317eTinderbox User ResourceBundle rb = null;
801d3c8888d6026eb1fd31c23e51e4f54dbc317eTinderbox User String RB_NAME = "workflowMessages";
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User com.sun.identity.shared.debug.Debug.getInstance("workflowMessages");
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User rb = ResourceBundle.getBundle(RB_NAME, resLocale);
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User String data = com.sun.identity.shared.locale.Locale.getString(
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User rb, "file.upload.size.limit.exceeded", debug);
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User out.println("<div id=\"data\">" + "Error: " + data + "</div>");
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User // Parses a content-type String for the boundary.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User String contentType = request.getContentType();
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if (contentType == null) {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User contentType = request.getHeader("Content-Type");
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User String boundary = "";
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User if (contentType != null && contentType.lastIndexOf("boundary=") != -1) {
eb2a5f51bd5c100799d93d51c9e22666cbd64d90Tinderbox User boundary = contentType.substring(contentType.lastIndexOf("boundary=") + 9);
eb2a5f51bd5c100799d93d51c9e22666cbd64d90Tinderbox User boundary = boundary.substring(0, boundary.length()-1);
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User String data = buff.toString();
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User int idx = data.indexOf("filename=\"");
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt idx = data.indexOf("\n\n", idx);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User data = data.substring(idx + 2);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User idx = data.lastIndexOf("\n--" + boundary);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User data = data.substring(0, idx);
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User data = data.replace("<", "<");
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User data = data.replace(">", ">");
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User out.println("<div id=\"data\">" + data + "</div>");
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User } catch (IOException e) {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if (bos != null) {
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User } catch (IOException e) {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if (is != null) {
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User } catch (IOException e) {