1 /* 2 * QEMU simple authorization driver 3 * 4 * Copyright (c) 2018 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18 * 19 */ 20 21 #ifndef QAUTHZ_SIMPLE_H 22 #define QAUTHZ_SIMPLE_H 23 24 #include "authz/base.h" 25 #include "qom/object.h" 26 27 #define TYPE_QAUTHZ_SIMPLE "authz-simple" 28 29 typedef struct QAuthZSimple QAuthZSimple; 30 typedef struct QAuthZSimpleClass QAuthZSimpleClass; 31 DECLARE_OBJ_CHECKERS(QAuthZSimple, QAuthZSimpleClass, 32 QAUTHZ_SIMPLE, TYPE_QAUTHZ_SIMPLE) 33 34 35 36 /** 37 * QAuthZSimple: 38 * 39 * This authorization driver provides a simple mechanism 40 * for granting access based on an exact matched username. 41 * 42 * To create an instance of this class via QMP: 43 * 44 * { 45 * "execute": "object-add", 46 * "arguments": { 47 * "qom-type": "authz-simple", 48 * "id": "authz0", 49 * "props": { 50 * "identity": "fred" 51 * } 52 * } 53 * } 54 * 55 * Or via the command line 56 * 57 * -object authz-simple,id=authz0,identity=fred 58 * 59 */ 60 struct QAuthZSimple { 61 QAuthZ parent_obj; 62 63 char *identity; 64 }; 65 66 67 struct QAuthZSimpleClass { 68 QAuthZClass parent_class; 69 }; 70 71 72 QAuthZSimple *qauthz_simple_new(const char *id, 73 const char *identity, 74 Error **errp); 75 76 77 #endif /* QAUTHZ_SIMPLE_H */ 78