/*
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. 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.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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.
*/
package com.amazonaws.tvm.identity.servlet;
import java.io.IOException;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.amazonaws.tvm.Constants;
import com.amazonaws.tvm.TokenVendingMachineLogger;
import com.amazonaws.tvm.identity.exception.MissingParameterException;
import com.amazonaws.tvm.identity.IdentityTokenVendingMachine;
/**
* An abstract class for TVM servlets.
*/
public abstract class RootServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected static final Logger log = TokenVendingMachineLogger.getLogger();
/**
* A TVM instance.
*/
protected IdentityTokenVendingMachine tvm;
@Override
public void init() throws ServletException {
super.init();
tvm = new IdentityTokenVendingMachine();
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
doGet(request, response);
}
protected String getServletParameter(HttpServlet servlet, String parameterName) {
String parameterValue = servlet.getInitParameter(parameterName);
if (parameterValue == null) {
parameterValue = servlet.getServletContext().getInitParameter(parameterName);
}
return parameterValue;
}
protected String getRequiredParameter(HttpServletRequest request, String parameterName)
throws MissingParameterException {
String value = request.getParameter(parameterName);
if (value == null) {
throw new MissingParameterException(parameterName);
}
value = value.trim();
if (value.length() == 0) {
throw new MissingParameterException(parameterName);
}
else {
return value;
}
}
public void forward(HttpServletRequest request, HttpServletResponse response, String url)
throws ServletException, IOException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
dispatcher.forward(request, response);
}
public void sendErrorResponse(int httpResponseCode, HttpServletResponse response) throws IOException {
response.setStatus(httpResponseCode);
response.setContentType("text/plain; charset=UTF-8");
response.setDateHeader("Expires", System.currentTimeMillis());
ServletOutputStream out = response.getOutputStream();
out.println(Constants.getMsg(httpResponseCode));
}
public void sendOKResponse(HttpServletResponse response, String data) throws IOException {
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("text/plain; charset=UTF-8");
response.setDateHeader("Expires", System.currentTimeMillis());
if (null != data) {
ServletOutputStream out = response.getOutputStream();
out.println(data);
}
}
}