/*
* Copyright 2011 by Graz University of Technology, Austria
* MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint
* initiative of the Federal Chancellery Austria and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egiz.bku.local.webapp;
import at.gv.egiz.bku.local.stal.LocalSTALFactory;
import at.gv.egiz.stal.QuitRequest;
import at.gv.egiz.stal.STAL;
import at.gv.egiz.stal.STALResponse;
import at.gv.egiz.stal.ext.PINManagementRequest;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* PINManagementBKUWorker for non-applet version
* @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
*/
public class PINManagementServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final Logger log = LoggerFactory.getLogger(PINManagementServlet.class);
LocalSTALFactory stalFactory;
public PINManagementServlet() {
stalFactory = new LocalSTALFactory();
try {
stalFactory.setHelpURL("http://localhost:3495/help/");
} catch (MalformedURLException e) {
log.info("Failed to set help URL.", e);
}
}
/**
* Processes requests for both HTTP GET
and POST
methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
STAL pinMgmtSTAL = stalFactory.createSTAL();
List stalResps = pinMgmtSTAL.handleRequest(Collections.singletonList(new PINManagementRequest()));
log.debug("Received STAL reponse {}.", stalResps.get(0).getClass());
pinMgmtSTAL.handleRequest(Collections.singletonList(new QuitRequest()));
String redirect = request.getParameter("redirect");
if (redirect != null) {
String referer = request.getHeader("Referer");
if (referer != null) {
redirect = new URL(new URL(referer), redirect).toExternalForm();
}
response.sendRedirect(redirect);
} else {
response.setStatus(HttpServletResponse.SC_OK);
}
}
//
/**
* Handles the HTTP GET
method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP POST
method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}//
}