stepotronic / wcf-to-symfony-bridge-bundle
此包的最新版本(0.1.1)没有可用的许可信息。
Symfony WcfToSymfonyBridgeBundle
0.1.1
2018-05-25 19:30 UTC
This package is not auto-updated.
Last update: 2024-09-18 20:43:59 UTC
README
包含能够从wcf数据库或当前会话cookie登录用户的守卫认证器的包。
此包的目的
接口woltlab社区框架的现有安装。 https://www.woltlab.com/
配置
将提到的行添加到您的参数中。由于可能存在多个安装,表可以并且应该有前缀。默认值通常是 "wcf1_"
wcf_table_prefix: wcf1_
cookie前缀可以在软件的管理后端中调整,因此也有相应的配置选项
wcf_cookie_prefix: wcf_
您需要设置默认成功路由。如果没有请求-url,用户在请求后将无法重定向到,它将仅在此情况下使用。
wcf_default_success_route: homepage
最后,这里是整合一切的 security.yml
security:
encoders:
stepotronic\WcfToSymfonyBridgeBundle\Entity\WcfUser:
id: wcf.password_encoder
providers:
wcf_db:
entity:
class: WcfToSymfonyBridgeBundle:WcfUser
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
logout: ~
provider: wcf_db
guard:
entry_point: wcf.form_login_authenticator
authenticators:
- wcf.cookie_hash_authenticator
- wcf.form_login_authenticator
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_WCF }
在主项目中,您还必须包含wcf源。理想情况下,您可以直接指向使用的wcf安装,或者您也可以在您的composer.json中使用以下内容
"repositories": [
{
"type": "package",
"package": {
"name": "woltlab/wcf",
"version": "2.0",
"source": {
"url": "https://github.com/WoltLab/WCF",
"type": "git",
"reference": "2.0"
}
}
}
],
"require": {
"woltlab/wcf": "*"
},
"autoload": {
"classmap": [
"vendor/woltlab/wcf/wcfsetup/install/files/lib/"
]
},
可以覆盖两个守卫认证器的默认行为。所有成功或失败的情况下的重定向都是可配置的。以下是一个重定向到wcf登录url的示例
app.cookie_hash_authenticator:
class: stepotronic\WcfToSymfonyBridgeBundle\Security\Guard\CookieHashAuthenticator
arguments:
- "@wcf.authentication_redirect_to_wcf_login_url"
- "@wcf.authentication_response_no_action"
- "@wcf.authentication_redirect_to_wcf_login_url"
- "%wcf_to_symfony_bridge.cookie_prefix%"
下一步
如果您使用它,请注意,我没有在这里创建一个安全的登录控制器。不要使用它!然而,它可以帮助您调试,也许可以帮助我改进此包。
最好实现自己的控制器,并使用路由名称
security_login
security_login_check
security_logout