Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
Diwi
post 5.07.2007, 10:12:31
Post #2





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Masz w kodzie
  1. <?php
  2. $request->getUri()
  3. ?>


A nie powinno być
  1. <?php
  2. $request->getUrl()
  3. ?>


Ten post edytował Diwi 5.07.2007, 10:13:05
Go to the top of the page
+Quote Post
misiaczekmarek
post 5.07.2007, 12:08:43
Post #3





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

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


@ diwi

jak na moją wiedzę to nie ma GetURL jest tylko GetURI ( i pewnie od identifier ) a ponieważ mogę się mylić sprawdziłem co się stanie jeśli wprowadzę taką poprawkę. nie stało się nic, a zgodnie z moją teorią, że nie ma getURL (getUrl) powinien pojawić się błąd.
Wnioski:
a) gdzieś dalej jest coś nie włączone i procedura sfSecureFilter nie jest wykonywana,
cool.gif jednak jest getURL ale coś dalej jest nie tak bo nie działa zamiana http na https

sad.gif

Ten post edytował misiaczekmarek 5.07.2007, 12:09:46


--------------------
pozdrawiam
Go to the top of the page
+Quote Post
SongoQ
post 5.07.2007, 12:29:04
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Wedlug mnie to powinno byc troszeczke inaczej

plik filters.yml

  1. <?php
  2. twojanazwaFilter:
  3. class: twojanazwaFilter
  4. ?>


gdzie w libie masz twojanazwaFilter.class.php

wiecej juz nigdzie nic nie definiujesz i przezuc ten filter na sama gore


--------------------
Go to the top of the page
+Quote Post
misiaczekmarek
post 5.07.2007, 18:04:25
Post #5





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
pawel_k
post 6.07.2007, 19:11:21
Post #6





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

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


http://trac.symfony-project.com/trac/wiki/...quirementPlugin
Go to the top of the page
+Quote Post

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: 27.04.2024 - 08:00