Changes Listed below:
[music.git] / src / main / java / org / onap / music / authentication / MusicAuthenticator.java
1 /*
2  * ============LICENSE_START==========================================
3  * org.onap.music
4  * ===================================================================
5  *  Copyright (c) 2019 AT&T Intellectual Property
6  * ===================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  * 
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  *  Unless required by applicable law or agreed to in writing, software
14  *  distributed under the License is distributed on an "AS IS" BASIS,
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  *  See the License for the specific language governing permissions and
17  *  limitations under the License.
18  * 
19  * ============LICENSE_END=============================================
20  * ====================================================================
21  */
22
23 package org.onap.music.authentication;
24
25 public interface MusicAuthenticator {
26     public enum Operation{
27         CREATE_KEYSPACE,
28         DROP_KEYSPACE,
29         CREATE_TABLE,
30         CREATE_INDEX,
31         INSERT_INTO_TABLE,
32         UPDATE_TABLE,
33         DELETE_FROM_TABLE,
34         DROP_TABLE,
35         SELECT_CRITICAL,
36         SELECT,
37         CREATE_LOCKREF,
38         ACQUIRE_LOCK,
39         CURRENT_LOCK,
40         DELETE_LOCK
41     }
42     
43     /**
44      * Authenticate a user account
45      * @param namespace - user's namespace
46      * @param authorization - basicAuth representation of username/password
47      * @param keyspace - keyspace user is trying to access
48      * @param aid - aid that identifies the user
49      * @param operation - operation that user is trying to do
50      * @return true if user has access
51      */
52     public boolean authenticateUser(String namespace, String authorization,
53             String keyspace, String aid, Operation operation);
54     
55     /**
56      * Authenticate an administrative account
57      * @param authorization - basicAuth representation of username/password
58      * @return true if user has admin privileges
59      */
60     public boolean authenticateAdmin(String authorization);
61     
62 }