2727use OCP \AppFramework \Controller ;
2828use OCP \AppFramework \Http ;
2929use OCP \IConfig ;
30+ use OCP \ILogger ;
3031use OCP \IRequest ;
3132use OCP \ISession ;
3233use OCP \IURLGenerator ;
@@ -48,6 +49,8 @@ class SAMLController extends Controller {
4849 private $ urlGenerator ;
4950 /** @var IUserManager */
5051 private $ userManager ;
52+ /** @var ILogger */
53+ private $ logger ;
5154
5255 /**
5356 * @param string $appName
@@ -59,6 +62,7 @@ class SAMLController extends Controller {
5962 * @param IConfig $config
6063 * @param IURLGenerator $urlGenerator
6164 * @param IUserManager $userManager
65+ * @param ILogger $logger
6266 */
6367 public function __construct ($ appName ,
6468 IRequest $ request ,
@@ -68,7 +72,8 @@ public function __construct($appName,
6872 UserBackend $ userBackend ,
6973 IConfig $ config ,
7074 IURLGenerator $ urlGenerator ,
71- IUserManager $ userManager ) {
75+ IUserManager $ userManager ,
76+ ILogger $ logger ) {
7277 parent ::__construct ($ appName , $ request );
7378 $ this ->session = $ session ;
7479 $ this ->userSession = $ userSession ;
@@ -77,6 +82,7 @@ public function __construct($appName,
7782 $ this ->config = $ config ;
7883 $ this ->urlGenerator = $ urlGenerator ;
7984 $ this ->userManager = $ userManager ;
85+ $ this ->logger = $ logger ;
8086 }
8187
8288 /**
@@ -169,6 +175,8 @@ public function getMetadata() {
169175 * @NoCSRFRequired
170176 * @UseSession
171177 * @OnlyUnauthenticatedUsers
178+ *
179+ * @return Http\RedirectResponse|void
172180 */
173181 public function assertionConsumerService () {
174182 $ AuthNRequestID = $ this ->session ->get ('user_saml.AuthNRequestID ' );
@@ -181,14 +189,14 @@ public function assertionConsumerService() {
181189
182190 $ errors = $ auth ->getErrors ();
183191
184- // FIXME: Appframworkize
185192 if (!empty ($ errors )) {
186- print_r ('<p> ' .implode (', ' , $ errors ).'</p> ' );
193+ foreach ($ errors as $ error ) {
194+ $ this ->logger ->error ($ error , ['app ' => $ this ->appName ]);
195+ }
187196 }
188197
189198 if (!$ auth ->isAuthenticated ()) {
190- echo "<p>Not authenticated</p> " ;
191- exit ();
199+ return new Http \RedirectResponse ($ this ->urlGenerator ->linkToRouteAbsolute ('user_saml.SAML.notProvisioned ' ));
192200 }
193201
194202 // Check whether the user actually exists, if not redirect to an error page
@@ -197,7 +205,6 @@ public function assertionConsumerService() {
197205 $ this ->autoprovisionIfPossible ($ auth ->getAttributes ());
198206 } catch (NoUserFoundException $ e ) {
199207 return new Http \RedirectResponse ($ this ->urlGenerator ->linkToRouteAbsolute ('user_saml.SAML.notProvisioned ' ));
200-
201208 }
202209
203210 $ this ->session ->set ('user_saml.samlUserData ' , $ auth ->getAttributes ());
0 commit comments