diff --git a/src/XrdSec/XrdSecEntity.cc b/src/XrdSec/XrdSecEntity.cc index 1a64ac375be..26361559ab0 100644 --- a/src/XrdSec/XrdSecEntity.cc +++ b/src/XrdSec/XrdSecEntity.cc @@ -136,6 +136,22 @@ bool XrdSecEntity::Get(const std::string &key, std::string &val) return false; } +/******************************************************************************/ +/* K e y s */ +/******************************************************************************/ + +std::vector XrdSecEntity::Keys() +{ + XrdSysMutexHelper mHelp(entXtra->xMutex); + std::map::iterator itM; + std::vector keyVec; + + for (itM = entXtra->attrMap.begin(); + itM != entXtra->attrMap.end(); itM++) keyVec.push_back(itM->first); + + return keyVec; +} + /******************************************************************************/ /* L i s t */ /******************************************************************************/ diff --git a/src/XrdSec/XrdSecEntity.hh b/src/XrdSec/XrdSecEntity.hh index 87b4ec54597..25480a5472d 100644 --- a/src/XrdSec/XrdSecEntity.hh +++ b/src/XrdSec/XrdSecEntity.hh @@ -43,6 +43,7 @@ //------------------------------------------------------------------------------ #include +#include #define XrdSecPROTOIDSIZE 8 @@ -134,6 +135,14 @@ XrdSecAttr *Get(const void *sigkey); bool Get(const std::string &key, std::string &val); +//------------------------------------------------------------------------------ +//! Get all the keys for associated attribytes. +//! +//! @return A vector containing all of the keys. +//------------------------------------------------------------------------------ + +std::vector Keys(); + //------------------------------------------------------------------------------ //! List key-value pairs via iterative callback on passed ovject. //!