summaryrefslogtreecommitdiff
path: root/cpp/test/IceGrid/session/Server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/IceGrid/session/Server.cpp')
-rw-r--r--cpp/test/IceGrid/session/Server.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/cpp/test/IceGrid/session/Server.cpp b/cpp/test/IceGrid/session/Server.cpp
index 5386c861039..9612ca67d65 100644
--- a/cpp/test/IceGrid/session/Server.cpp
+++ b/cpp/test/IceGrid/session/Server.cpp
@@ -11,6 +11,7 @@
#include <Glacier2/PermissionsVerifier.h>
#include <IceSSL/Plugin.h>
#include <TestCommon.h>
+#include <Test.h>
using namespace std;
@@ -19,8 +20,12 @@ class ClientPermissionsVerifierI : public Glacier2::PermissionsVerifier
public:
virtual bool
- checkPermissions(const string& userId, const string& passwd, string&, const Ice::Current&) const
+ checkPermissions(const string& userId, const string& passwd, string&, const Ice::Current& current) const
{
+ if(current.ctx.find("throw") != current.ctx.end())
+ {
+ throw Test::ExtendedPermissionDeniedException("reason");
+ }
return (userId == "client1" && passwd == "test1") || (userId == "client2" && passwd == "test2");
}
};
@@ -32,6 +37,11 @@ public:
virtual bool
authorize(const Glacier2::SSLInfo& info, string&, const Ice::Current& current) const
{
+ if(current.ctx.find("throw") != current.ctx.end())
+ {
+ throw Test::ExtendedPermissionDeniedException("reason");
+ }
+
IceSSL::CertificatePtr cert = IceSSL::Certificate::decode(info.certs[0]);
test(cert->getIssuerDN() == IceSSL::DistinguishedName(
"emailAddress=info@zeroc.com,CN=ZeroC Test CA,OU=Ice,O=ZeroC\\, Inc.,L=Palm Beach Gardens,"