MDL-69542 libraries: Add the LTI 1.3 library
[moodle.git] / lib / lti1p3 / src / LtiRegistration.php
blob21eebb7e3000ee0de2c9be1a7e165d83ce850d62
1 <?php
3 namespace Packback\Lti1p3;
5 use Packback\Lti1p3\Interfaces\ILtiRegistration;
7 class LtiRegistration implements ILtiRegistration
9 private $issuer;
10 private $clientId;
11 private $keySetUrl;
12 private $authTokenUrl;
13 private $authLoginUrl;
14 private $authServer;
15 private $toolPrivateKey;
16 private $kid;
18 public function __construct(array $registration = [])
20 $this->issuer = $registration['issuer'] ?? null;
21 $this->clientId = $registration['clientId'] ?? null;
22 $this->keySetUrl = $registration['keySetUrl'] ?? null;
23 $this->authTokenUrl = $registration['authTokenUrl'] ?? null;
24 $this->authLoginUrl = $registration['authLoginUrl'] ?? null;
25 $this->authServer = $registration['authServer'] ?? null;
26 $this->toolPrivateKey = $registration['toolPrivateKey'] ?? null;
27 $this->kid = $registration['kid'] ?? null;
30 public static function new(array $registration = [])
32 return new LtiRegistration($registration);
35 public function getIssuer()
37 return $this->issuer;
40 public function setIssuer($issuer)
42 $this->issuer = $issuer;
44 return $this;
47 public function getClientId()
49 return $this->clientId;
52 public function setClientId($clientId)
54 $this->clientId = $clientId;
56 return $this;
59 public function getKeySetUrl()
61 return $this->keySetUrl;
64 public function setKeySetUrl($keySetUrl)
66 $this->keySetUrl = $keySetUrl;
68 return $this;
71 public function getAuthTokenUrl()
73 return $this->authTokenUrl;
76 public function setAuthTokenUrl($authTokenUrl)
78 $this->authTokenUrl = $authTokenUrl;
80 return $this;
83 public function getAuthLoginUrl()
85 return $this->authLoginUrl;
88 public function setAuthLoginUrl($authLoginUrl)
90 $this->authLoginUrl = $authLoginUrl;
92 return $this;
95 public function getAuthServer()
97 return empty($this->authServer) ? $this->authTokenUrl : $this->authServer;
100 public function setAuthServer($authServer)
102 $this->authServer = $authServer;
104 return $this;
107 public function getToolPrivateKey()
109 return $this->toolPrivateKey;
112 public function setToolPrivateKey($toolPrivateKey)
114 $this->toolPrivateKey = $toolPrivateKey;
116 return $this;
119 public function getKid()
121 return $this->kid ?? hash('sha256', trim($this->issuer.$this->clientId));
124 public function setKid($kid)
126 $this->kid = $kid;
128 return $this;