2012-01-29 101 views
4

我試圖在我的symfony2服務器上認證用戶。 認證,捲曲工程CLI:Symfony2基本http認證,適用於curl,但不適用於Android

curl "http://localhost:8080/app_dev.php/app/user/profile.json?id=4" -u foo:bar --basic 

但隨着Android的我總是得到一個401錯誤,出現此錯誤:

A Token was not found in the SecurityContext. 

我能做些什麼來解決這個問題?

這裏是我的security.yml:

security: 
providers: 
    fos_userbundle: 
     id: fos_user.user_manager 
encoders: 
    BumpMe\UserBundle\Entity\User: sha512 

firewalls: 
    app: 
     pattern: ^/app/.* 
     stateless: true 
     security: true 

     http_basic: 
      realm: "API" 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
     logout:  true 
     anonymous: true 


access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 
    - { path: ^/app/, role: ROLE_USER } 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

此外,我怎麼能發送用戶名和用base64密碼?由於目前在Android不希望Base64和捲曲發送它的base64 ...

我不明白這個錯誤...

回答

2

對不起,我找出...

這是隻是因爲Symfony想要一個base64編碼。 base64編碼並沒有在Android上工作,因爲,該方法將編碼DATAS所以後添加一個新行,這是不一樣的......

用一個簡單的裝飾一下的罰款:

"Basic "+Base64.encodeToString((login+":"+pass).getBytes(), Base64.DEFAULT).trim(); 

我認爲這可能會有所幫助。

相關問題