我的symfony 2.0应用程序有问题。我无法通过谷歌找到正确的解决方案,所以我来到这里:)
我试过创建一个登录表单。这是我的security.yml文件:
security:
encoders:
Domicon\AdminBundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 10
providers:
admin:
entity: { class: DomiconAdminBundle:User, property: email }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin_area:
pattern: ^/admin.*
form_login:
check_path: /admin/login_check
login_path: /admin/login
logout:
path: /admin/logout
target: /admin
anonymous: ~
logout: true
http_basic:
realm: "Secured Admin Area"
provider: admin
access_control:
- { path: ^/admin/login.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin.*, role: ROLE_ADMIN }我的控制器的代码看起来像Symfony2.0docs http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form中的代码
我的路线
DomiconAdminBundle_login:
pattern: /login
defaults: { _controller: DomiconAdminBundle:User:login }
DomiconAdminBundle_login_check:
pattern: /login_check登录表单显示正确,但如果我提交表单,应用程序将重定向回登录表单,而url已更改为
http://localhost/Domicon/web/app_dev.php/admin/login?_username=admin&_password=pass
我没有任何错误或者其他任何事。我不明白为什么我没有错误,为什么url改为这个。
发布于 2012-04-23 12:27:05
我认为您忘了在<form>标记中给出操作,如果登录成功,您需要告诉在哪里重定向。
另外,我注意到您在routing.yml中给了routing.yml,在security.yml中给了/admin/登录。
第三个是login_path: /admin/login_check security.yml和routing.yml
/login_check。
在/login中将routing.yml更改为/admin/登录
将/login_check更改为/admin/ routing.yml中的登录签入
<form action="{{ path('DomiconAdminBundle_login_check') }}" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="_password" />
</div>
{#
If you want to control the URL the user is redirected to on success #}
<input type="hidden" name="_target_path" value="/yourredirectpath" />
<input type="submit" name="login" value="Submit" />
</form>希望这能有所帮助。
https://stackoverflow.com/questions/9624512
复制相似问题