11<?php
22namespace OCA \Solid \Controller ;
33
4+ use OCA \Solid \DpopFactoryTrait ;
45use OCA \Solid \PlainResponse ;
56
67use OCP \AppFramework \Controller ;
1819use Pdsinterop \Solid \Resources \Server as ResourceServer ;
1920
2021class ProfileController extends Controller {
22+ use DpopFactoryTrait;
23+
2124 /* @var IURLGenerator */
2225 private $ urlGenerator ;
2326
2427 /* @var ISession */
2528 private $ session ;
2629
27- public function __construct ($ AppName , IRequest $ request , ISession $ session , IManager $ contactsManager , IUserManager $ userManager , IURLGenerator $ urlGenerator , $ userId , IConfig $ config , \OCA \Solid \Service \UserService $ UserService )
28- {
30+ public function __construct (
31+ $ AppName ,
32+ IRequest $ request ,
33+ ISession $ session ,
34+ IManager $ contactsManager ,
35+ IUserManager $ userManager ,
36+ IURLGenerator $ urlGenerator ,
37+ $ userId ,
38+ IConfig $ config ,
39+ \OCA \Solid \Service \UserService $ UserService ,
40+ IDBConnection $ connection ,
41+ ) {
2942 parent ::__construct ($ AppName , $ request );
3043 require_once (__DIR__ .'/../../vendor/autoload.php ' );
3144 $ this ->config = new \OCA \Solid \ServerConfig ($ config , $ urlGenerator , $ userManager );
@@ -34,6 +47,8 @@ public function __construct($AppName, IRequest $request, ISession $session, IMan
3447 $ this ->userManager = $ userManager ;
3548 $ this ->contactsManager = $ contactsManager ;
3649 $ this ->session = $ session ;
50+
51+ $ this ->setJtiStorage ($ connection );
3752 }
3853
3954 private function getFileSystem ($ userId ) {
@@ -132,7 +147,6 @@ public function handleRequest($userId, $path) {
132147
133148 $ this ->resourceServer = new ResourceServer ($ this ->filesystem , $ this ->response );
134149 $ this ->WAC = new WAC ($ this ->filesystem );
135- $ this ->DPop = new DPop ();
136150
137151 $ request = $ this ->rawRequest ;
138152 $ baseUrl = $ this ->getProfileUrl ($ userId );
@@ -141,11 +155,14 @@ public function handleRequest($userId, $path) {
141155 $ pubsub = getenv ('PUBSUB_URL ' ) ?: ("http://pubsub:8080/ " );
142156 $ this ->resourceServer ->setPubSubUrl ($ pubsub );
143157
158+ $ dpop = $ this ->getDpop ();
159+
144160 if ($ request ->getHeaderLine ("DPop " )) {
145161 try {
146- $ webId = $ this ->DPop ->getWebId ($ request );
147- } catch (\Exception $ e ) {
148- $ response = $ this ->resourceServer ->getResponse ()->withStatus (409 , "Invalid token " );
162+ $ webId = $ dpop ->getWebId ($ request );
163+ } catch (\Pdsinterop \Solid \Auth \Exception \Exception $ e ) {
164+ $ response = $ this ->resourceServer ->getResponse ()
165+ ->withStatus (Http::STATUS_CONFLICT , "Invalid token " . $ e ->getMessage ());
149166 return $ this ->respond ($ response );
150167 }
151168 } else {
0 commit comments