1 | <?php |
||
33 | class UserInfoEndpoint implements MiddlewareInterface |
||
34 | { |
||
35 | /** |
||
36 | * @var JWKSet|null |
||
37 | */ |
||
38 | private $signatureKeys = null; |
||
39 | |||
40 | /** |
||
41 | * @var JWSBuilder|null |
||
42 | */ |
||
43 | private $jwsBuilder = null; |
||
44 | |||
45 | /** |
||
46 | * @var JWEBuilder|null |
||
47 | */ |
||
48 | private $jweBuilder = null; |
||
49 | |||
50 | /** |
||
51 | * @var ClientRepository |
||
52 | */ |
||
53 | private $clientRepository; |
||
54 | |||
55 | /** |
||
56 | * @var UserAccountRepository |
||
57 | */ |
||
58 | private $userAccountRepository; |
||
59 | |||
60 | /** |
||
61 | * @var ResponseFactory |
||
62 | */ |
||
63 | private $responseFactory; |
||
64 | |||
65 | /** |
||
66 | * @var IdTokenBuilderFactory |
||
67 | */ |
||
68 | private $idTokenBuilderFactory; |
||
69 | |||
70 | /** |
||
71 | * UserInfoEndpoint constructor. |
||
72 | * |
||
73 | * @param IdTokenBuilderFactory $idTokenBuilderFactory |
||
74 | * @param ClientRepository $clientRepository |
||
75 | * @param UserAccountRepository $userAccountRepository |
||
76 | * @param ResponseFactory $responseFactory |
||
77 | */ |
||
78 | public function __construct(IdTokenBuilderFactory $idTokenBuilderFactory, ClientRepository $clientRepository, UserAccountRepository $userAccountRepository, ResponseFactory $responseFactory) |
||
85 | |||
86 | /** |
||
87 | * @param JWSBuilder $jwsBuilder |
||
88 | * @param JWKSet $signatureKeys |
||
89 | */ |
||
90 | public function enableSignature(JWSBuilder $jwsBuilder, JWKSet $signatureKeys) |
||
95 | |||
96 | /** |
||
97 | * @param JWEBuilder $jweBuilder |
||
98 | */ |
||
99 | public function enableEncryption(JWEBuilder $jweBuilder) |
||
103 | |||
104 | /** |
||
105 | * {@inheritdoc} |
||
106 | */ |
||
107 | public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
||
134 | |||
135 | /** |
||
136 | * @param Client $client |
||
137 | * @param UserAccount $userAccount |
||
138 | * @param AccessToken $accessToken |
||
139 | * @param bool|null $isJwt |
||
140 | * |
||
141 | * @return string |
||
142 | */ |
||
143 | private function buildUserinfoContent(Client $client, UserAccount $userAccount, AccessToken $accessToken, ? bool &$isJwt): string |
||
169 | |||
170 | /** |
||
171 | * @param AccessToken $accessToken |
||
172 | * |
||
173 | * @return array |
||
174 | */ |
||
175 | private function getEndpointClaims(AccessToken $accessToken): array |
||
188 | |||
189 | /** |
||
190 | * @param AccessToken $accessToken |
||
191 | * |
||
192 | * @throws OAuth2Message |
||
193 | * |
||
194 | * @return Client |
||
195 | */ |
||
196 | private function getClient(AccessToken $accessToken): Client |
||
205 | |||
206 | /** |
||
207 | * @param AccessToken $accessToken |
||
208 | * |
||
209 | * @throws OAuth2Message |
||
210 | * |
||
211 | * @return UserAccount |
||
212 | */ |
||
213 | private function getUserAccount(AccessToken $accessToken): UserAccount |
||
222 | |||
223 | /** |
||
224 | * @param AccessToken $accessToken |
||
225 | * |
||
226 | * @throws OAuth2Message |
||
227 | */ |
||
228 | private function checkRedirectUri(AccessToken $accessToken) |
||
234 | |||
235 | /** |
||
236 | * @param AccessToken $accessToken |
||
237 | * |
||
238 | * @throws OAuth2Message |
||
239 | */ |
||
240 | private function checkScope(AccessToken $accessToken) |
||
246 | } |
||
247 |