Example usage for com.amazonaws.services.sqs.model AddPermissionRequest AddPermissionRequest

List of usage examples for com.amazonaws.services.sqs.model AddPermissionRequest AddPermissionRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model AddPermissionRequest AddPermissionRequest.

Prototype

public AddPermissionRequest(String queueUrl, String label, java.util.List<String> aWSAccountIds,
        java.util.List<String> actions) 

Source Link

Document

Constructs a new AddPermissionRequest object.

Usage

From source file:com.comcast.cqs.controller.CQSAddQueuePermissionPage.java

License:Apache License

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;// w w  w  .  j  a v a2 s  .c  o  m
    }

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String queueName = request.getParameter("queueName");
    String userId = request.getParameter("userId");
    String allow = request.getParameter("allow");
    String users = request.getParameter("users");
    String everybody = request.getParameter("everybody");
    String[] actions = request.getParameterValues("actions");
    String allActions = request.getParameter("allActions");

    String queueUrl = Util.getAbsoluteQueueUrlForName(queueName, userId);
    connect(request);

    List<String> usersList = null;
    List<String> actionsList = null;

    if (everybody == null) {

        if (users != null && !users.trim().equals("")) {
            usersList = Arrays.asList(users.split(","));
        }

    } else {

        usersList = new ArrayList<String>();
        usersList.add("*");
    }

    if (allActions == null) {

        if (actions != null && actions.length > 0) {
            actionsList = Arrays.asList(actions);
        }

    } else {
        actionsList = new ArrayList<String>();
        actionsList.add("*");
    }

    String validInput = checkValidInput(usersList, actionsList);

    Map<?, ?> params = request.getParameterMap();

    out.println("<html>");

    simpleHeader(request, out, "Add Permission to Queue " + queueName);

    if (params.containsKey("Add") && validInput.equals("")) {

        String sid = Long.toHexString(Double.doubleToLongBits(Math.random()));

        if (allow.equals("allow")) {

            if (usersList != null && usersList.size() > 0 && actionsList != null && actionsList.size() > 0) {

                try {
                    AddPermissionRequest addPermissionRequest = new AddPermissionRequest(queueUrl, sid,
                            usersList, actionsList);
                    sqs.addPermission(addPermissionRequest);
                    logger.debug("event=add_permission queue_url=" + queueUrl + " label=" + sid + " user_id="
                            + userId);
                } catch (Exception ex) {
                    logger.error("event=add_permission queue_url=" + queueUrl + " label=" + sid + " user_id="
                            + userId, ex);
                    throw new ServletException(ex);
                }
            }
        }

        out.println("<body onload='javascript:window.opener.location.reload();window.close();'>");

    } else {

        out.println("<body>");
        out.println("<h1>Add Permission to Queue " + queueName + "</h1>");
        out.println("<form action=\"/webui/cqsuser/addpermission/?queueName=" + queueName + "\" method=POST>");
        out.println("<input type='hidden' name='userId' value='" + userId + "'>");
        out.println("<p>Permissions enable you to control which operations a user can perform on a queue.</p>");
        out.println("<table><tr><td colspan=2>&nbsp;</td></tr>");
        out.println(
                "<tr><td><b>Effect:</b></td><td><input type='radio' name='allow' value='allow' checked>Allow</td></tr>");

        out.println(
                "<tr><td><b>Principal:</b></td><td><input type='text' name='users' size=80 id='users' value='"
                        + (users == null ? "" : users) + "'>");
        out.println("<input type='checkbox' name='everybody' " + (everybody != null ? "checked" : "")
                + " onclick='if(this.checked) {document.getElementById(\"users\").disabled=true;} else {document.getElementById(\"users\").disabled=false;}'>Everybody(*) </td></tr>");
        out.println(
                "<tr><td>&nbsp;</td><td><font color='grey'>Use commas between multiple principals.</font></td></tr>");
        out.println("<tr><td colspan=2>&nbsp;</td></tr>");
        out.println(
                "<tr><td valign=top><b>Actions:</b></td><td valign=top><select name='actions' multiple size='6' id='actions'>");

        out.println("<option value='SendMessage'"
                + (actionsList != null && actionsList.contains("SendMessage") ? "selected" : "")
                + ">SendMessage</option>");
        out.println("<option value='ReceiveMessage'"
                + (actionsList != null && actionsList.contains("ReceiveMessage") ? "selected" : "")
                + ">ReceiveMessage</option>");
        out.println("<option value='DeleteMessage'"
                + (actionsList != null && actionsList.contains("DeleteMessage") ? "selected" : "")
                + ">DeleteMessage</option>");
        out.println("<option value='ChangeMessageVisibility'"
                + (actionsList != null && actionsList.contains("ChangeMessageVisibility") ? "selected" : "")
                + ">ChangeMessageVisibility</option>");
        out.println("<option value='GetQueueAttributes'"
                + (actionsList != null && actionsList.contains("GetQueueAttributes") ? "selected" : "")
                + ">GetQueueAttributes</option>");
        out.println("<option value='GetQueueUrl'"
                + (actionsList != null && actionsList.contains("GetQueueUrl") ? "selected" : "")
                + ">GetQueueUrl</option></select>");
        out.println("<input type='checkbox' name='allActions' " + (allActions != null ? "checked" : "")
                + " onclick='if(this.checked) { document.getElementById(\"actions\").disabled=true; } else { document.getElementById(\"actions\").disabled=false; }'>All CQS Actions(CQS:*)</td></tr>");
        out.println("<tr><td colspan=2>&nbsp;</td></tr></table>");
        out.println("<hr/>");
        out.println(
                "<input type='button' value='Cancel' onclick='window.close();' style='float:right;'><input type='submit' value='Add Permission' name='Add' style='float:right;'></form>");

        if (params.containsKey("Add") && !validInput.equals("")) {
            out.println("<p><font color='red'>" + validInput + "</font></p>");
        }

        out.println("</body></html>");
    }

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:org.mule.modules.sqs.SQSConnector.java

License:Open Source License

/**
 * Adds a permission to this message queue.
 * <p/>/*from  w w w.j  av a 2  s. c om*/
 * {@sample.xml ../../../doc/mule-module-sqs.xml.sample sqs:add-permission}
 *
 * @param label     a name for this permission
 * @param accountId the AWS account ID for the account to share this queue with
 * @param action    a value to indicate how much to share (SendMessage, ReceiveMessage, ChangeMessageVisibility, DeleteMessage, GetQueueAttributes)
 * @throws AmazonClientException
 *             If any internal errors are encountered inside the client while
 *             attempting to make the request or handle the response.  For example
 *             if a network connection is not available.
 * @throws AmazonServiceException
 *             If an error response is returned by AmazonSQS indicating
 *             either a problem with the data in the request, or a server side issue.
 */
@Processor
@InvalidateConnectionOn(exception = AmazonClientException.class)
public void addPermission(String label, String accountId, String action) throws AmazonServiceException {
    msgQueue.addPermission(new AddPermissionRequest(getQueueUrl(), label, toList(accountId), toList(action)));
}

From source file:smartthings.brave.sqs.TracingAmazonSQSClient.java

License:Apache License

@Override
public AddPermissionResult addPermission(String queueUrl, String label, List<String> aWSAccountIds,
        List<String> actions) {
    return this.addPermission(new AddPermissionRequest(queueUrl, label, aWSAccountIds, actions));
}