Example usage for com.amazonaws.services.sns.model RemovePermissionRequest RemovePermissionRequest

List of usage examples for com.amazonaws.services.sns.model RemovePermissionRequest RemovePermissionRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.sns.model RemovePermissionRequest RemovePermissionRequest.

Prototype

public RemovePermissionRequest(String topicArn, String label) 

Source Link

Document

Constructs a new RemovePermissionRequest object.

Usage

From source file:com.comcast.cns.controller.CNSTopicPermissionPage.java

License:Apache License

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

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

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String topicArn = request.getParameter("topicArn");
    String userId = request.getParameter("userId");
    String labelSid = request.getParameter("sid");
    Map<?, ?> params = request.getParameterMap();

    connect(request);

    if (params.containsKey("Remove")) {

        try {
            RemovePermissionRequest removePermissionRequest = new RemovePermissionRequest(topicArn, labelSid);
            sns.removePermission(removePermissionRequest);
            logger.debug("event=remove_permission topic_arn=" + topicArn + " label=" + labelSid + " user_id="
                    + userId);
        } catch (Exception ex) {
            logger.error("event=remove_permission topic_arn=" + topicArn + " label=" + labelSid + " user_id="
                    + userId, ex);
            throw new ServletException(ex);
        }
    }

    Map<String, String> attributes = null;

    try {
        GetTopicAttributesRequest getTopicAttributesRequest = new GetTopicAttributesRequest(topicArn);
        GetTopicAttributesResult getTopicAttributesResult = sns.getTopicAttributes(getTopicAttributesRequest);
        attributes = getTopicAttributesResult.getAttributes();
    } catch (Exception ex) {
        logger.error("event=get_topic_attributes topic_arn=" + topicArn + " user_id=" + userId, ex);
        throw new ServletException(ex);
    }

    CMBPolicy policy = null;

    try {
        if (attributes.get("Policy") != null && !attributes.get("Policy").equals("")
                && !attributes.get("Policy").equals("null")) {
            policy = new CMBPolicy(attributes.get("Policy"));
        }
    } catch (Exception ex) {
        throw new ServletException(ex);
    }

    out.println("<html>");

    header(request, out, "Permissions for Topic " + Util.getNameFromTopicArn(topicArn));

    out.println("<body>");

    out.println("<h2>Permissions for Topic " + Util.getNameFromTopicArn(topicArn) + "</h2>");

    if (user != null) {

        out.println("<table><tr><td><b>User Name:</b></td><td>" + user.getUserName() + "</td></tr>");
        out.println("<tr><td><b>User ID:</b></td><td>" + user.getUserId() + "</td></tr>");
        out.println("<tr><td><b>Access Key:</b></td><td>" + user.getAccessKey() + "</td></tr>");
        out.println("<tr><td><b>Access Secret:</b></td><td>" + user.getAccessSecret() + "</td></tr>");
        out.println("<tr><td><b>Topic Name:</b></td><td>" + Util.getNameFromTopicArn(topicArn) + "</td></tr>");
        out.println("<tr><td><b>Topic Arn:</b></td><td>" + topicArn + "</td></tr></table><br>");
    }

    if (policy != null && !policy.getStatements().isEmpty()) {

        List<CMBStatement> stmts = policy.getStatements();

        if (stmts != null && stmts.size() > 0) {
            out.println(
                    "<span class='content'><table border='1' width='70%'><tr><th>Effect</th><th>Users</th><th>Actions</th><th>Label</th><th>&nbsp;</th></tr>");
        }

        for (int i = 0; stmts != null && i < stmts.size(); i++) {

            out.println("<form action=\"/webui/cnsuser/permission/?userId=" + user.getUserId() + "&topicArn="
                    + topicArn + "\" method=POST>");

            CMBStatement stmt = stmts.get(i);

            out.println("<tr><td>" + stmt.getEffect().toString() + "</td><td>");

            if (stmt.getPrincipal() != null && stmt.getPrincipal().size() > 0) {

                for (int k = 0; k < stmt.getPrincipal().size(); k++) {
                    String user1 = stmt.getPrincipal().get(k);
                    out.println(user1 + "<br>");
                }
            }

            out.println("</td><td>");

            if (stmt.getAction() != null && stmt.getAction().size() > 0) {

                for (int j = 0; j < stmt.getAction().size(); j++) {
                    String action1 = stmt.getAction().get(j);
                    out.println(action1 + "<br>");
                }
            }

            String sid = stmt.getSid();
            out.println("</td>");
            out.println("<td>" + sid + "</td>");
            out.println(
                    "<td><input type='submit' value='Remove' name='Remove'><input type='hidden' name='sid' value='"
                            + sid + "'></td></tr></form>");
        }

        out.println("</table></span>");
    }

    out.println("<p><a href='' onclick=\"window.open('/webui/cnsuser/addpermission/?topicArn=" + topicArn
            + "&topicName=" + Util.getNameFromTopicArn(topicArn) + "&userId=" + userId
            + "', 'AddTopicPermission', 'location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0,height=470,width=730')\">Add permission</a></p>");
    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a>");
    out.println(
            "<a href='/webui/cnsuser?userId=" + userId + "&topicArn=" + topicArn + "'>BACK TO TOPIC</a></h5>");
    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}