我正在尝试做什么:
jms_i18n_routing:
default_locale: %locale%
locales: %locales%
#strategy: prefix
strategy: prefix_except_default
路线
arsf_base_default:
pattern: /
defaults: { _controller: ArsfBaseBundle:Default:index }
arsf_base_homepage:
pattern: /monit/bysector
defaults: { _controller: ArsfMonitBundle:BySector:index }
arsf_base_login:
pattern: /login
defaults: { _controller: ArsfBaseBundle:Default:login }
arsf_base_login_check:
pattern: /login_check
arsf_base_logout:
pattern: /logout
defaults: { _controller: ArsfBaseBundle:Default:logout }
我尝试将security.yml配置为
login:
pattern: ^/|[a-z]+/login$
security: false
anonymous: true
secured_area:
pattern: ^.*$
form_login:
check_path: arsf_base_login_check
login_path: arsf_base_login
default_target_path: arsf_base_homepage
logout:
path: arsf_base_logout
target: arsf_base_login
access_control:
-
path: ^/|[a-z]+/login$
roles: IS_AUTHENTICATED_ANONYMOUSLY
-
path: ^.*$
roles: ROLE_USER
在这种情况下,我收到错误
Unable to find the controller for path "/login_check"
所以我尝试删除登录防火墙并使用匿名配置secured_area:〜
在这种情况下,所有页面都是可访问的,无需身份验证,而且我找不到比在布局中进行测试更好的解决方案:
<html>
<head>...</head>
<body>
{% if app.user %}
...
{% else %}
<script>window.location.replace("{{ path('arsf_base_login') }}");</script>
{% endif %}
</body>
</html>
有更好的方法吗? 我的安全问题出了什么问题?