File: authentication_example_service.py

package info (click to toggle)
robotraconteur 1.2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 101,380 kB
  • sloc: cpp: 1,149,268; cs: 87,653; java: 58,127; python: 26,897; ansic: 356; sh: 152; makefile: 90; xml: 51
file content (34 lines) | stat: -rw-r--r-- 1,238 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import RobotRaconteur as RR
RRN = RR.RobotRaconteurNode.s
import numpy as np


class AuthenticationExample_impl:
    def say(self, message):
        print(f"Message: {message}")


def main():
    with RR.ServerNodeSetup("experimental.authentication_example", 53226) as node_setup:

        # Use reynard the robot robdef but only implement "say"
        RRN.RegisterServiceTypeFromFile("../../../reynard_the_robot/robdef/experimental.reynard_the_robot.robdef")

        # Create the object
        obj = AuthenticationExample_impl()

        # Set the authentication configuration
        authdata = "testuser1 0b91dec4fe98266a03b136b59219d0d6 objectlock\ntestuser2 841c4221c2e7e0cefbc0392a35222512 objectlock\ntestsuperuser 503ed776c50169f681ad7bbc14198b68 objectlock,objectlockoverride"
        p = RR.PasswordFileUserAuthenticator(authdata)
        policies = {"requirevaliduser": "true", "allowobjectlock": "true"}
        s = RR.ServiceSecurityPolicy(p, policies)

        # Register the service
        RRN.RegisterService("authentication_example", "experimental.reynard_the_robot.Reynard", obj, s)

        # Wait for the user to quit
        input("Server started, press enter to quit...")


if __name__ == '__main__':
    main()