2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.aaa.authz.srv;
11 import com.google.common.base.Optional;
12 import com.google.common.util.concurrent.CheckedFuture;
13 import com.google.common.util.concurrent.Futures;
15 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
16 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
17 import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
18 import org.opendaylight.yang.gen.v1.urn.aaa.yang.authz.ds.rev140722.ActionType;
19 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
20 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
23 * Created by wdec on 28/08/2014.
26 public class AuthzReadOnlyTransaction implements DOMDataReadOnlyTransaction {
28 private final DOMDataReadOnlyTransaction ro;
30 public AuthzReadOnlyTransaction(DOMDataReadOnlyTransaction ro) {
40 public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(
41 LogicalDatastoreType logicalDatastoreType, YangInstanceIdentifier yangInstanceIdentifier) {
43 if (AuthzServiceImpl.isAuthorized(logicalDatastoreType, yangInstanceIdentifier,
45 return ro.read(logicalDatastoreType, yangInstanceIdentifier);
47 ReadFailedException e = new ReadFailedException("Authorization Failed");
48 return Futures.immediateFailedCheckedFuture(e);
52 public CheckedFuture<Boolean, ReadFailedException> exists(
53 LogicalDatastoreType logicalDatastoreType, YangInstanceIdentifier yangInstanceIdentifier) {
55 if (AuthzServiceImpl.isAuthorized(ActionType.Exists)) {
56 return ro.exists(logicalDatastoreType, yangInstanceIdentifier);
58 ReadFailedException e = new ReadFailedException("Authorization Failed");
59 return Futures.immediateFailedCheckedFuture(e);
63 public Object getIdentifier() {
64 if (AuthzServiceImpl.isAuthorized(ActionType.GetIdentifier)) {
65 return ro.getIdentifier();