76 #ifdef epicsExportSharedSymbols 77 # define securityEpicsExportSharedSymbols 78 # undef epicsExportSharedSymbols 89 #ifdef securityEpicsExportSharedSymbols 90 # define epicsExportSharedSymbols 91 # undef securityEpicsExportSharedSymbols 131 pvData::PVStructure::const_shared_pointer
aux;
161 {
return epics::pvData::PVStructure::const_shared_pointer(); }
166 virtual void messageReceived(epics::pvData::PVStructure::const_shared_pointer
const & data) {}
184 virtual void sendSecurityPluginMessage(epics::pvData::PVStructure::const_shared_pointer
const & data) = 0;
194 const std::tr1::shared_ptr<PeerInfo>& peer) = 0;
220 virtual std::tr1::shared_ptr<AuthenticationSession> createSession(
221 const std::tr1::shared_ptr<PeerInfo>& peer,
222 std::tr1::shared_ptr<AuthenticationPluginControl>
const & control,
223 epics::pvData::PVStructure::shared_pointer
const & data) = 0;
235 typedef std::map<int, std::pair<std::string, AuthenticationPlugin::shared_pointer> > map_t;
239 typedef std::vector<map_t::mapped_type>
list_t;
250 void snapshot(list_t& plugmap)
const;
258 void add(
int prio,
const std::string& name,
const AuthenticationPlugin::shared_pointer& plugin);
260 bool remove(
const AuthenticationPlugin::shared_pointer& plugin);
263 AuthenticationPlugin::shared_pointer
lookup(
const std::string& name)
const;
276 virtual void authorize(
const std::tr1::shared_ptr<PeerInfo>& peer) =0;
291 typedef std::map<int, AuthorizationPlugin::shared_pointer> map_t;
297 void add(
int prio,
const AuthorizationPlugin::shared_pointer& plugin);
298 bool remove(
const AuthorizationPlugin::shared_pointer& plugin);
299 void run(
const std::tr1::shared_ptr<PeerInfo>& peer);
std::string realm
scope of authority. eg. "mylab.gov"
Information provded by a client to a server-type ChannelProvider.
virtual void messageReceived(epics::pvData::PVStructure::const_shared_pointer const &data)
virtual bool isValidFor(const PeerInfo &peer) const
Actor through which authentication exchanges are initiated.
std::string transport
transport protocol used eg. "pva". Must not be empty.
TODO only here because of the Lockable.
epicsShareFunc void osdGetRoles(const std::string &account, PeerInfo::roles_t &roles)
Query OS specific DB for role/group names assocated with a user account.
Mark external symbols and entry points for shared libraries.
bucket * lookup(char *name)
pvData::PVStructure::const_shared_pointer aux
NULL or extra authority specific information.
roles_t roles
Set of strings which may be used to modify access control decisions.
static size_t num_instances
std::string peer
network address of remote peer. eg. "192.168.1.1:5075".
#define POINTER_DEFINITIONS(clazz)
std::string account
aka. user name
APIs for the epicsMutex mutual exclusion semaphore.
ChannelProviderRegistry::shared_pointer clients
std::set< std::string > roles_t
bool identified
Short-hand for authority!="anonymous".
virtual void authenticationComplete(const epics::pvData::Status &status)
bool local
Short-hand for transport=="local".
virtual epics::pvData::PVStructure::const_shared_pointer initializationData()
std::vector< map_t::mapped_type > list_t
std::string authority
authentication mechanism used. eg. "anonymous" or "gssapi". Must not be empty.
#define EPICS_NOT_COPYABLE(CLASS)
Disable implicit copyable.
unsigned transportVersion
If applicable, the protocol minor version number.
Callbacks for use by AuthenticationSession.