Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony] security, kłopot z przejściem na https
misiaczekmarek
post 5.07.2007, 08:50:39
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

Ostrzeżenie: (0%)
-----


witam,

chciałbym aby moja aplikacja automatycznie przechodziła na tryb komunikacji https niezależnie od tego co wpisał użytkownik w pasku adresu.

pracuję z sf_sandbox, winxp, wamp. aplikacja nazywa sie bardzo oryginalnie: frontend.
posiłkowałem się dokumentacją "The Book.." i "Mój pierwszy projekt".

zmieniłem następujące pliki:

E:\wamp\www\sf_sandbox\apps\frontend\config\settings.yml

  1. prod:
  2.  .settings:
  3.    no_script_name:           off
  4.  
  5. dev:
  6.  .settings:
  7.    # E_ALL | E_STRICT = 4095
  8.    error_reporting:        4095
  9.    web_debug:              on
  10.    cache:                  off
  11.    no_script_name:         off
  12.    etag:                   off
  13. ...
  14. ...
  15. ...
  16.  
  17. all:
  18.    use_security:           on



E:\wamp\www\sf_sandbox\apps\frontend\config\app.yml

  1. default values
  2. all:
  3. enable_SecureFilter: on
  4.  
  5. .....


E:\wamp\www\sf_sandbox\apps\frontend\config\filters.yml

  1. rendering: ~
  2. web_debug: ~
  3. security:
  4. enabled: on
  5. class: sfSecureFilter
  6.  type: security
  7.   condition:   %APP_ENABLE_SECUREFILTER%
  8.  
  9. # generally, you will want to insert your own filters here
  10.  
  11. cache:     ~
  12. common:    ~
  13. flash:     ~
  14. execution: ~


i dodałem plik: E:\wamp\www\sf_sandbox\apps\frontend\lib\sfSecureFilter.class.php

  1. <?php
  2. class sfSecureFilter extends sfFilter
  3. {
  4. public function execute($filterChain)
  5. {
  6. $context = $this->getContext();
  7. $request = $context->getRequest();
  8.  
  9. if (!$request->isSecure())
  10. {
  11. $secure_url = str_replace('http', 'https', $request->getUri());
  12.  
  13. return $context->getController()->redirect($secure_url);
  14. // We don't continue the filter chain
  15. }
  16. else
  17. {
  18. // The request is already secure, so we can continue
  19. $filterChain->execute();
  20. }
  21. }
  22. }
  23. ?>


wydawało mi się, że to wszystko ale niestety nie działa.
wyczyściłem cache. tryb dev nie zgłasza błędów.

jakieś sugestie co do dalszego postępowania?

pozdrawiam

Ten post edytował misiaczekmarek 5.07.2007, 08:53:06


--------------------
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misiaczekmarek
post 5.07.2007, 18:04:25
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

Ostrzeżenie: (0%)
-----


@SongoQ

teraz się porobiło:

Fatal error: Class 'sfSecureFilter' not found in /cache/frontend/dev/config/modules_main_config_filters.yml.php on line 6" title="Zobacz w manualu PHP" target="_manual

plik E:\wamp\www\sf_sandbox\apps\frontend\config\filters.yml

ma teraz postać (chyba zgodną z twoją sugestią):

  1. sfSecureFilter:
  2. class: sfSecureFilter
  3. rendering: ~
  4. web_debug: ~
  5. security:
  6. enabled: on
  7. ...


to by oznaczało, że clasa jest prztwarzana ale nie w tym miejscu chyba?

przeniosłem treść klasy do innego pliku myUser.class.php i umieściłem go w filters.yml, który wygląda teraz tak:

  1. myUser:
  2. class: myUser
  3. rendering: ~
  4. web_debug: ~
  5. security:
  6. enabled: on
  7.  
  8. ...



a plik myUser.class.php tak:

  1. <?php
  2.  
  3. class myUser extends sfBasicSecurityUser
  4. {
  5.  public function execute($filterChain)
  6.  {
  7.    $context = $this->getContext();
  8.    $request = $context->getRequest();
  9.  
  10.    if (!$request->isSecure())
  11.    {
  12.      $secure_url = str_replace('http', 'https', $request->getUri());
  13.  
  14.      return $context->getController()->redirect($secure_url);
  15.      // We don't continue the filter chain
  16.    }
  17.    else
  18.    {
  19.      // The request is already secure, so we can continue
  20.      $filterChain->execute();
  21.    }
  22.  }
  23. }


jak widać zmiana jest tu: extends sfBasicSecurityUser

i na pierwszy rzut oka działa poprawnie. sprawdzę jeszcze jak się będzie zachowywać po wyłączeniu tego co porobiłem na on i dam znać.

narazie dziękuję wszystkim za pomoc.



wygląda na to, że wszystko działa ok.

plik filter.yml ma postać:

  1. myUser:
  2. class: myUser
  3. rendering: ~
  4. web_debug: ~
  5. security: ~
  6. ...


w pliku settings.yml zahaszowałem

#use security on

i na koniec w pliku app.yml usunąłe wstawioną zmienną enable_SecureFilter: on

jeszcze raz dziękuję.


--------------------
pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 21:00