Skip to content

Commit 0cc9cfa

Browse files
committed
Add tests for basic, (disabled) kerberos, and sso auth
1 parent 75fdb5b commit 0cc9cfa

File tree

7 files changed

+148
-0
lines changed

7 files changed

+148
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!: BOLT 4.3
2+
3+
A: HELLO {"user_agent": "*", "scheme": "basic", "principal": "neo4j", "credentials": "pass", "[routing]": "", "[ticket]": "", "[realm]": ""}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" "*" "*"
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL "*"
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
?: GOODBYE
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!: BOLT 4.3
2+
3+
A: HELLO {"user_agent": "*", "scheme": "basic", "principal": "neo4j", "credentials": "pass"}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" "*" "*"
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL "*"
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
?: GOODBYE
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!: BOLT 4.3
2+
3+
A: HELLO {"user_agent": "*", "scheme": "bearer", "credentials": "QmFuYW5hIQ==", "[principal]": "", "[routing]": "", "[ticket]": "", "[realm]": ""}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" "*" "*"
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL "*"
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
?: GOODBYE
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!: BOLT 4.3
2+
3+
A: HELLO {"user_agent": "*", "scheme": "bearer", "credentials": "QmFuYW5hIQ=="}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" "*" "*"
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL "*"
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
?: GOODBYE
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!: BOLT 4.3
2+
3+
A: HELLO {"user_agent": "*", "scheme": "kerberos", "principal": "neo4j", "credentials": "QmFuYW5hIQ==", "[routing]": "", "[ticket]": "", "[realm]": "}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" "*" "*"
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL "*"
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
?: GOODBYE
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
!: BOLT 4.3
2+
3+
# TODO: find out if kerberos auth requires an empty principal on the server side (staring from v3.5)
4+
A: HELLO {"user_agent": "*", "scheme": "kerberos", "[principal]": "", "credentials": "QmFuYW5hIQ=="}
5+
*: RESET
6+
7+
C: RUN "RETURN 1 AS n" "*" "*"
8+
S: SUCCESS {"fields": ["n"]}
9+
C: PULL "*"
10+
S: RECORD [1]
11+
SUCCESS {"type": "r"}
12+
13+
*: RESET
14+
?: GOODBYE

tests/stub/authorization/test_authorization.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,3 +505,72 @@ def test_should_be_able_to_use_current_sessions_after_AuthorizationExpired(self)
505505

506506
session1.run('RETURN 2 as n').next()
507507
session1.close()
508+
509+
510+
class TestAuthenticationSchemes(AuthorizationBase):
511+
def get_vars(self):
512+
return {
513+
"#VERSION#": "4.3"
514+
}
515+
516+
def setUp(self):
517+
super().setUp()
518+
self._server = StubServer(9010)
519+
self._uri = "bolt://%s:%d" % (self._server.host,
520+
self._server.port)
521+
522+
def tearDown(self):
523+
self._server.reset()
524+
super().tearDown()
525+
526+
def test_basic_scheme(self):
527+
implicit_defaults = self.driver_supports_features(
528+
types.Feature.OPT_IMPLICIT_DEFAULT_ARGUMENTS
529+
)
530+
script_fn = "scheme_basic%s.script"
531+
script_fn = script_fn % ("_minimal" if implicit_defaults else "")
532+
self.start_server(self._server, script_fn)
533+
534+
auth = types.AuthorizationToken(scheme="basic", principal="neo4j",
535+
credentials="pass")
536+
driver = Driver(self._backend, self._uri, auth)
537+
session = driver.session("r")
538+
list(session.run("RETURN 1 AS n"))
539+
session.close()
540+
driver.close()
541+
self._server.done()
542+
543+
# def test_kerberos_scheme(self):
544+
# implicit_defaults = self.driver_supports_features(
545+
# types.Feature.OPT_IMPLICIT_DEFAULT_ARGUMENTS
546+
# )
547+
# script_fn = "scheme_kerberos%s.script"
548+
# script_fn = script_fn % ("_minimal" if implicit_defaults else "")
549+
# self.start_server(self._server, script_fn)
550+
#
551+
# auth = types.AuthorizationToken(scheme="kerberos", principal="",
552+
# credentials="QmFuYW5hIQ==")
553+
# driver = Driver(self._backend, self._uri, auth)
554+
# session = driver.session("r")
555+
# list(session.run("RETURN 1 AS n"))
556+
# session.close()
557+
# driver.close()
558+
# self._server.done()
559+
# self._server._dump()
560+
561+
def test_bearer_scheme(self):
562+
implicit_defaults = self.driver_supports_features(
563+
types.Feature.OPT_IMPLICIT_DEFAULT_ARGUMENTS
564+
)
565+
script_fn = "scheme_bearer%s.script"
566+
script_fn = script_fn % ("_minimal" if implicit_defaults else "")
567+
self.start_server(self._server, script_fn)
568+
569+
auth = types.AuthorizationToken(scheme="bearer", principal="",
570+
credentials="QmFuYW5hIQ==")
571+
driver = Driver(self._backend, self._uri, auth)
572+
session = driver.session("r")
573+
list(session.run("RETURN 1 AS n"))
574+
session.close()
575+
driver.close()
576+
self._server.done()

0 commit comments

Comments
 (0)