Symfony2基本http认证,可用于curl,但不适用于Android
我正在尝试验证symfony2服务器上的用户。 身份验证在cli中使用curl:Symfony2基本http认证,可用于curl,但不适用于Android,android,httpwebrequest,http-headers,symfony,Android,Httpwebrequest,Http Headers,Symfony,我正在尝试验证symfony2服务器上的用户。 身份验证在cli中使用curl: curl "http://localhost:8080/app_dev.php/app/user/profile.json?id=4" -u foo:bar --basic 但在安卓系统中,我总是会遇到401错误: A Token was not found in the SecurityContext. 我能做些什么来修复它 这是我的保安。yml: security: providers: fos
curl "http://localhost:8080/app_dev.php/app/user/profile.json?id=4" -u foo:bar --basic
但在安卓系统中,我总是会遇到401错误:
A Token was not found in the SecurityContext.
我能做些什么来修复它
这是我的保安。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,而curl在base64上发送它
我不明白这个错误…很抱歉我发现了
只是因为Symfony想要一个base64编码的。
base64编码在Android上不起作用,因为该方法在编码的数据之后添加了一行新行,所以它不一样
只需简单的修剪即可:
"Basic "+Base64.encodeToString((login+":"+pass).getBytes(), Base64.DEFAULT).trim();
我认为这会有帮助