[ 
https://issues.apache.org/jira/browse/NIFI-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15222186#comment-15222186
 ] 

ASF GitHub Bot commented on NIFI-1552:
--------------------------------------

Github user markap14 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/318#discussion_r58252574
  
    --- Diff: 
nifi-api/src/main/java/org/apache/nifi/authorization/AuthorizationRequest.java 
---
    @@ -0,0 +1,130 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License 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 org.apache.nifi.authorization;
    +
    +import java.util.Map;
    +import java.util.Objects;
    +
    +/**
    + * Represents an authorization request for a given user/entity performing 
an action against a resource within some context.
    + */
    +public class AuthorizationRequest {
    +
    +    private final Resource resource;
    +    private final String identity;
    +    private final RequestAction action;
    +    private final Map<String, String> context;
    +    private final Map<String, String> eventAttributes;
    +
    +    public AuthorizationRequest(final Builder builder) {
    +        Objects.requireNonNull(builder.resource, "The resource is required 
when creating an authorization request");
    +        Objects.requireNonNull(builder.identity, "The identity of the user 
is required when creating an authorization request");
    +        Objects.requireNonNull(builder.action, "The action is required 
when creating an authorization request");
    +
    +        this.resource = builder.resource;
    +        this.identity = builder.identity;
    +        this.action = builder.action;
    +        this.context = builder.context;
    +        this.eventAttributes = builder.eventAttributes;
    +    }
    +
    +    /**
    +     * The Resource being authorized. Not null.
    +     *
    +     * @return The resource
    +     */
    +    public Resource getResource() {
    +        return resource;
    +    }
    +
    +    /**
    +     * The identity accessing the Resource. Not null.
    +     *
    +     * @return The identity
    +     */
    +    public String getIdentity() {
    +        return identity;
    +    }
    +
    +    /**
    +     * The action being taken against the Resource. Not null.
    +     *
    +     * @return The action
    +     */
    +    public RequestAction getAction() {
    +        return action;
    +    }
    +
    +    /**
    +     * The context of the user request to make additional access 
decisions. May be null.
    +     *
    +     * @return  The context of the user request
    +     */
    +    public Map<String, String> getContext() {
    +        return context;
    +    }
    +
    +    /**
    +     * The event attributes to make additional access decisions for 
provenance events. May be null.
    +     *
    +     * @return  The event attributes
    +     */
    +    public Map<String, String> getEventAttributes() {
    +        return eventAttributes;
    +    }
    +
    +    /**
    +     * AuthorizationRequest builder.
    +     */
    +    public static final class Builder {
    +
    +        private Resource resource;
    +        private String identity;
    +        private RequestAction action;
    +        private Map<String, String> context;
    +        private Map<String, String> eventAttributes;
    +
    +        public Builder resource(final Resource resource) {
    +            this.resource = resource;
    +            return this;
    +        }
    +
    +        public Builder identity(final String identity) {
    +            this.identity = identity;
    +            return this;
    +        }
    +
    +        public Builder action(final RequestAction action) {
    +            this.action = action;
    +            return this;
    +        }
    +
    +        public Builder context(final Map<String, String> context) {
    +            this.context = context;
    --- End diff --
    
    Should we be making copies of these Maps, rather than using the provided 
map as passed in?


> Define new Authorizer API
> -------------------------
>
>                 Key: NIFI-1552
>                 URL: https://issues.apache.org/jira/browse/NIFI-1552
>             Project: Apache NiFi
>          Issue Type: Sub-task
>          Components: Core Framework
>            Reporter: Matt Gilman
>            Assignee: Matt Gilman
>             Fix For: 1.0.0
>
>
> - Introduce new Authorizer API



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to