blob: 0b3eade4165f3e8a13753956ad10f5bcd225d298 [file] [log] [blame]
/*
* Copyright (c) 2020 Kentyou.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Kentyou - initial API and implementation
*/
package org.eclipse.sensinact.gateway.core.test;
import org.eclipse.sensinact.gateway.common.bundle.Mediator;
import org.eclipse.sensinact.gateway.core.security.AccessNode;
import org.eclipse.sensinact.gateway.core.security.AccessProfileOption;
import org.eclipse.sensinact.gateway.core.security.AccessTree;
import org.eclipse.sensinact.gateway.core.security.AccessTreeImpl;
import org.eclipse.sensinact.gateway.core.security.ImmutableAccessNode;
import org.eclipse.sensinact.gateway.core.security.ImmutableAccessTree;
import org.eclipse.sensinact.gateway.core.security.MutableAccessNode;
import org.eclipse.sensinact.gateway.core.security.MutableAccessTree;
import org.eclipse.sensinact.gateway.core.security.SecuredAccess;
import org.eclipse.sensinact.gateway.core.security.SecuredAccessException;
class MySecuredAccess implements SecuredAccess {
private Mediator mediator;
/**
* @param mediator
*/
public MySecuredAccess(Mediator mediator) {
this.mediator = mediator;
}
/**
* @inheritDoc
*
* @see SecuredAccess#buildAccessNodesHierarchy(String, String, AccessTreeImpl)
*/
@Override
public void buildAccessNodesHierarchy(String identifier, String name,
MutableAccessTree<? extends MutableAccessNode> accessTree) throws SecuredAccessException {
accessTree.add(name);
if (!"serviceProvider".equals(name)) {
accessTree.add("serviceProvider");
}
accessTree.add("serviceProvider/testService");
accessTree.add("serviceProvider/testService/location")
.withAccessProfile(AccessProfileOption.DEFAULT.getAccessProfile());
}
/**
* @inheritDoc
*
* @see org.eclipse.sensinact.gateway.core.security.SecuredAccess#
* getAccessTree(java.lang.String)
*/
@Override
public MutableAccessTree<? extends MutableAccessNode> getAccessTree(String identifier)
throws SecuredAccessException {
MutableAccessTree<? extends MutableAccessNode> accessTree = new AccessTreeImpl<>(mediator)
.withAccessProfile(AccessProfileOption.ALL_ANONYMOUS);
return accessTree;
}
@Override
public String getAgentPublicKey(String bundleIdentifier) throws SecuredAccessException {
return null;// "xxxxxxxxxxxxxx000001";
}
@Override
public AccessTree<? extends AccessNode> getUserAccessTree(String publicKey) throws SecuredAccessException {
ImmutableAccessNode root = new ImmutableAccessNode(null, "/", false, null,
AccessProfileOption.DEFAULT.getAccessProfile());
ImmutableAccessTree accessTree = new ImmutableAccessTree(root);
return accessTree;
}
@Override
public String getApplicationPublicKey(String privateKey) throws SecuredAccessException {
return null;
}
@Override
public AccessTree<? extends AccessNode> getApplicationAccessTree(String publicKey) throws SecuredAccessException {
ImmutableAccessNode root = new ImmutableAccessNode(null, "/", false, null,
AccessProfileOption.DEFAULT.getAccessProfile());
ImmutableAccessTree accessTree = new ImmutableAccessTree(root);
return accessTree;
}
/**
* @inheritDoc
*
* @see SecuredAccess#createAuthorizationService()
*/
@Override
public void createAuthorizationService() {
// nothing to implement here
// AuthorizationService already registered in the
// moked BundleContext
}
/**
* @inheritDoc
*
* @see SecuredAccess#close()
*/
@Override
public void close() {
System.out.println("Closing the SecuredAccess");
}
}