Java 类com.amazonaws.auth.policy.Action 实例源码

项目:cerberus-management-service    文件:KmsPolicyServiceTest.java   
@Test
public void test_that_overwriteCMSPolicy_returns_policy_that_includes_missing_actions() throws IOException {
    InputStream policy = getClass().getClassLoader()
            .getResourceAsStream("com/nike/cerberus/service/invalid-cerberus-kms-key-policy-cms-cannot-delete.json");
    String policyJsonAsString = IOUtils.toString(policy, "UTF-8");

    Action actionNotIncludedInInvalidJson1 = KMSActions.ScheduleKeyDeletion;
    Action actionNotIncludedInInvalidJson2 = KMSActions.CancelKeyDeletion;
    String result = kmsPolicyService.overwriteCMSPolicy(policyJsonAsString);
    assertFalse(StringUtils.equals(policyJsonAsString, result));
    assertTrue(StringUtils.contains(result, actionNotIncludedInInvalidJson1.getActionName()));
    assertTrue(StringUtils.contains(result, actionNotIncludedInInvalidJson2.getActionName()));
    assertTrue(kmsPolicyService.cmsHasKeyDeletePermissions(result));

    policy.close();
}
项目:ibm-cos-sdk-java    文件:JsonPolicyReader.java   
/**
 * Generates a list of actions from the Action Json Node.
 *
 * @param actionNodes
 *            the action Json node to be parsed.
 * @return the list of actions.
 */
private List<Action> actionsOf(JsonNode actionNodes) {
    List<Action> actions = new LinkedList<Action>();

    if (actionNodes.isArray()) {
        for (JsonNode action : actionNodes) {
            actions.add(new NamedAction(action.asText()));
        }
    } else {
        actions.add(new NamedAction(actionNodes.asText()));
    }
    return actions;
}
项目:ibm-cos-sdk-java    文件:JsonPolicyWriter.java   
/**
 * Writes the list of <code>Action</code>s to the JSONGenerator.
 *
 * @param actions
 *            the list of the actions to be written.
 */
private void writeActions(List<Action> actions)
        throws JsonGenerationException, IOException {
    List<String> actionStrings = new ArrayList<String>();

    for (Action action : actions) {
        actionStrings.add(action.getActionName());
    }
    writeJsonArray(JsonDocumentFields.ACTION, actionStrings);
}
项目:conductor    文件:SQSObservableQueue.java   
private String getPolicy(List<String> accountIds) {
    Policy policy = new Policy("AuthorizedWorkerAccessPolicy");
    Statement stmt = new Statement(Effect.Allow);
    Action action = SQSActions.SendMessage;
    stmt.getActions().add(action);
    stmt.setResources(new LinkedList<>());
    for(String accountId : accountIds) {
        Principal principal = new Principal(accountId);
        stmt.getPrincipals().add(principal);
    }
    stmt.getResources().add(new Resource(getQueueARN()));
    policy.getStatements().add(stmt);
    return policy.toJson();
}
项目:cerberus-management-service    文件:KmsPolicyService.java   
/**
 * Validates that the given KMS key policy statement includes the given action
 */
protected boolean statementIncludesAction(Statement statement, Action action) {

    return statement.getActions()
            .stream()
            .anyMatch(statementAction ->
                    StringUtils.equals(statementAction.getActionName(), action.getActionName()));
}
项目:cmn-project    文件:InstanceProfileHelper.java   
private Boolean statementEquals(Statement statement1, Statement statement2) {
    List<Action> actions1 = statement1.getActions();
    List<Action> actions2 = statement2.getActions();
    boolean actionMatches = actions1.size() == actions2.size()
        && actions1.stream().allMatch(action1 -> actions2.stream().anyMatch(action2 -> action1.getActionName().equals(action2.getActionName())));
    if (!actionMatches) return false;

    boolean effectMatches = statement1.getEffect().equals(statement2.getEffect());
    if (!effectMatches) return false;

    List<Resource> resources1 = statement1.getResources();
    List<Resource> resources2 = statement2.getResources();
    boolean resourceMatches = resources1.size() == resources2.size()
        && resources1.stream().allMatch(resource1 -> resources2.stream().anyMatch(resource2 -> resource1.getId().equals(resource2.getId())));
    if (!resourceMatches) return false;

    List<Condition> conditions1 = statement1.getConditions();
    List<Condition> conditions2 = statement2.getConditions();
    boolean conditionMatches = conditions1.size() == conditions2.size()
        && conditions1.stream().allMatch(condition1 -> conditions2.stream().anyMatch(condition2 -> conditionEquals(condition1, condition2)));
    if (!conditionMatches) return false;

    List<Principal> principals1 = statement1.getPrincipals();
    List<Principal> principals2 = statement2.getPrincipals();
    boolean principleMatches = principals1.size() == principals2.size()
        && principals1.stream().allMatch(principle1 -> principals2.stream().anyMatch(principal2 -> principleEquals(principle1, principal2)));
    if (!principleMatches) return false;

    return true;
}
项目:ibm-cos-sdk-java    文件:JsonPolicyWriter.java   
/**
 * Converts the given <code>Policy</code> into a JSON String.
 *
 * @param policy
 *            the policy to be converted.
 * @return a JSON String of the specified policy object.
 */
private String jsonStringOf(Policy policy) throws JsonGenerationException,
        IOException {
    generator.writeStartObject();

    writeJsonKeyValue(JsonDocumentFields.VERSION, policy.getVersion());

    if (isNotNull(policy.getId()))
        writeJsonKeyValue(JsonDocumentFields.POLICY_ID, policy.getId());

    writeJsonArrayStart(JsonDocumentFields.STATEMENT);

    for (Statement statement : policy.getStatements()) {
        generator.writeStartObject();

        if (isNotNull(statement.getId())) {
            writeJsonKeyValue(JsonDocumentFields.STATEMENT_ID, statement.getId());
        }
        writeJsonKeyValue(JsonDocumentFields.STATEMENT_EFFECT, statement
                .getEffect().toString());

        List<Principal> principals = statement.getPrincipals();
        if (isNotNull(principals) && !principals.isEmpty())
            writePrincipals(principals);

        List<Action> actions = statement.getActions();
        if (isNotNull(actions) && !actions.isEmpty())
            writeActions(actions);

        List<Resource> resources = statement.getResources();
        if (isNotNull(resources) && !resources.isEmpty())
            writeResources(resources);

        List<Condition> conditions = statement.getConditions();
        if (isNotNull(conditions) && !conditions.isEmpty())
            writeConditions(conditions);

        generator.writeEndObject();
    }

    writeJsonArrayEnd();

    generator.writeEndObject();

    generator.flush();

    return writer.toString();

}
项目:cerberus-management-service    文件:KmsPolicyServiceTest.java   
@Test
public void test_that_statementAllowsAction_returns_true_when_action_in_statement() {
    Action action = KMSActions.CancelKeyDeletion;
    Statement statement = new Statement(Statement.Effect.Allow).withActions(action);
    assertTrue(kmsPolicyService.statementIncludesAction(statement, action));
}