Added password support into present3D's vnc support via the tag usage : <vnc password="mypassword">hostname</vnc>

This commit is contained in:
Robert Osfield 2011-10-26 12:48:57 +00:00
parent 9995cb70a9
commit 5d26d16fd3
4 changed files with 30 additions and 3 deletions

View File

@ -442,6 +442,21 @@ int main( int argc, char **argv )
osg::DisplaySettings::instance()->readEnvironmentalVariables();
}
// set up any logins required for http access
std::string url, username, password;
while(arguments.read("--login",url, username, password))
{
if (!osgDB::Registry::instance()->getAuthenticationMap())
{
osgDB::Registry::instance()->setAuthenticationMap(new osgDB::AuthenticationMap);
osgDB::Registry::instance()->getAuthenticationMap()->addAuthenticationDetails(
url,
new osgDB::AuthenticationDetails(username, password)
);
}
}
#ifdef USE_SDL
SDLIntegration sdlIntegration;

View File

@ -394,7 +394,7 @@ public:
void addStereoImagePair(const std::string& filenameLeft, const ImageData& imageDataLeft, const std::string& filenameRight,const ImageData& imageDataRight, const PositionData& positionData);
void addGraph(const std::string& filename,const std::string& options,const PositionData& positionData, const ImageData& imageData);
void addVNC(const std::string& filename,const PositionData& positionData, const ImageData& imageData);
void addVNC(const std::string& filename,const PositionData& positionData, const ImageData& imageData, const std::string& password);
void addBrowser(const std::string& filename,const PositionData& positionData, const ImageData& imageData);
void addPDF(const std::string& filename,const PositionData& positionData, const ImageData& imageData);
osg::Image* addInteractiveImage(const std::string& filename,const PositionData& positionData, const ImageData& imageData);

View File

@ -1313,9 +1313,14 @@ void ReaderWriterP3DXML::parseLayer(osgPresentation::SlideShowConstructor& const
osgPresentation::SlideShowConstructor::ImageData imageData;// = constructor.getImageData();
getProperties(cur,imageData);
std::string password;
getProperty(cur, "password", password);
constructor.addVNC(cur->getTrimmedContents(),
positionRead ? positionData : constructor.getImagePositionData(),
imageData);
imageData,
password
);
}
else if (cur->name == "browser")
{

View File

@ -1277,8 +1277,15 @@ void SlideShowConstructor::addGraph(const std::string& contents,const std::strin
}
void SlideShowConstructor::addVNC(const std::string& hostname, const PositionData& positionData, const ImageData& imageData)
void SlideShowConstructor::addVNC(const std::string& hostname, const PositionData& positionData, const ImageData& imageData, const std::string& password)
{
if (!password.empty())
{
OSG_NOTICE<<"Setting password"<<std::endl;
if (!osgDB::Registry::instance()->getAuthenticationMap()) osgDB::Registry::instance()->setAuthenticationMap(new osgDB::AuthenticationMap);
osgDB::Registry::instance()->getAuthenticationMap()->addAuthenticationDetails(hostname, new osgDB::AuthenticationDetails("", password));
}
addInteractiveImage(hostname+".vnc", positionData, imageData);
}