Bonjour,

Voila je rencontre un petit problème avec mon code.

Je souhaite protéger mon CKFINDER.
pour celà, j'ai implémenté mon config.php de CKFINDER comme ceci :

 $config['authentication'] = function() {
     return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];
 };

j'ai egalement placé un sessions_start() au début de du fichier config.php.

Le problème est de trouver dans symfony l'endroit où placer le code qui permet de mettre $_SESSION['IsAuthorized'] à TRUE.

Dans la fonction loginAction() ? j'utilise FOSUSERBundle.

Je suis sur Symfony 2.7 et mon site est prêt à être mis en prod, mais je ne peux pas risquer d'omettre la sécurité de CKFINDER.

Avez-vous une idée : je cherche depuis des heures et je sais que sous CAKEPHP ca se fait tout seul (j'ai déjà fait 2 sites en ckephp).

Merci beaucoup pour votre aide !

5 réponses


Alain Ouakbar Tabba Sardinaluile
Auteur
Réponse acceptée

CA MARCHE !!!!!

il fallait mettre cela en tete de config.php :

session_start();
function CheckAuthentication()
{
    if($_SESSION['IsAuthorized'] == 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

CheckAuthentication();
Alain Ouakbar Tabba Sardinaluile
Auteur
Réponse acceptée

mes fesses..
ca ne marche pas du tout :
alors je suis passé par la solution suivante : COOKIES
création cookies dans symfony, test du cookie dans ckfinder.php (à la place de ckfinder.html)
et ca marche nickel Chrome (4.0)

J'ai implémenté la variable de session dans la fonction loginAction de FOSUSERBundle...

    public function loginAction(Request $request)
    {
        /** @var $session \Symfony\Component\HttpFoundation\Session\Session */
        $session = $request->getSession();

        $session->set('IsAuthorized', true);

la variable IsAuthorized est bien à 1 !
Mais quand j'ouvre le ckfinder, je ne suis pas autorisé, ....
Apparemment la variable ne passe pas dans CKFINDER, malgré le session_start()
...
Je continue à chercher....

Pourquoi Utiliser Session_start() dans symfony ?
Charge le component Session simplement dans Symfony\Component\HttpFondation\Session. et utilise $session->set('key', 'valeur');

j'ai egalement placé un sessions_start() au début de du fichier config.php.

c'est dans ckfinder que je charge le session_start()