当前位置: 首页 > 知识库问答 >
问题:

Symfony2安全控制器错误

柯清野
2023-03-14

我是symfony的新手,正在学习登录表单教程(https://symfony.com/doc/2.8/cookbook/security/form_login_setup.html)但我得到了以下错误:

Uncaught PHP Exception LogicException: "The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?" at /var/www/html/app/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php line 157
Context: { "exception": "Object(LogicException)" }

我使用相同的SecurityController:

class SecurityController extends Controller{


 * @Route("/admin", name="login")

public function loginAction(Request $request)
{

 $authenticationUtils = $this->get('security.authentication_utils');

// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();

// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();

return $this->render(
    'security/login.html.twig',
    array(
        // last username entered by the user
        'last_username' => $lastUsername,
        'error'         => $error,
    )
);
}

/**
 * @Route("/login_check", name="login_check")
 */
public function loginCheckAction()
{
    // this controller will not be executed,
    // as the route is handled by the Security system
}

security.yml

# To get started with security, check out the documentation:

安全:

# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
providers:
    app_users:
         ldap:
             service: app.ldap
             base_dn: DC=corp, DC=int
             search_dn: null
             search_password: null
             filter: (uid={username})
             default_roles: ROLE_USER

firewalls:
    # disables authentication for assets and the profiler, adapt it according to your needs
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    main:
        anonymous: ~
        # activate different ways to authenticate

        # http_basic: ~
        # http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate

        # form_login: ~
        # http://symfony.com/doc/current/cookbook/security/form_login_setup.html
    secure:
        provider: app_users
        form_login_ldap:
            service: app.ldap
            dn_string: "uid={username},ou=Users,dc=corp,dc=int"
            check_path: login_check
            login_path: admin
        logout: true

共有1个答案

朱毅
2023-03-14

在您的security.yml中,尝试替换

check_path: login_check

通过

check_path: /login_check

并使你的方法像这样:

/**
 * @Route("/login_check", name="login_check")
 */
public function loginCheckAction()
{
    throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.');
}
 类似资料:
  • 我的应用程序有Spring boot 1.3.2,我正在尝试将Spring MVC与Spring Security结合使用。 我有管理小组http://localhost:8080/admin和我的普通用户页面内容http://localhost:8080/ 如果你试图打开一个管理面板(http://localhost:8080/admin)你必须登录,如果你是常见的只需输入http://loca

  • 本任务将演示如何通过使用Istio认证提供的服务账户,来安全地对服务做访问控制。 当Istio双向TLS认证打开时,服务器就会根据其证书来认证客户端,并从证书获取客户端的服务账户。服务账户在source.user的属性中。请参考Istio auth identity了解Istio中服务账户的格式。 开始之前 根据quick start的说明在开启认证的Kubernetes中安装Istio。注意,应

  • 问题内容: 我需要从另一个控制器内的另一个控制器访问方法。我该怎么做?我可以使用方法吗? 我可以在当前控制器中包含该控制器,并使其成为对象并通过该对象访问该方法吗?这样可以吗? 我想调用另一个控制器的表单方法— newAction。 问题答案: 您可以将控制器定义为服务,然后在另一个控制器中获取它。 在定义所需的控制器即服务中: 然后,在任何控制器中,您都可以通过容器获取此服务: 在文档中有一些关

  • 我正在测试家庭控制器 我使用spring security作为用户名“user”,默认情况下作为密码进行测试,但@PreAuthorize不起作用 的结果 预期结果: 实际结果: 我错过了什么吗?

  • 我面临的挑战是,我找不到一种方法来配置安全性,使到/profilesendpoint的POST请求不受保护,而GET或PUT的请求从提供的承载令牌传递到派生的@AuthenticationPrincipal中。 我想在API中设置以下内容:POST/profile创建新用户-无安全性GET/profile/{id}按id获取用户-需要管理员权限或用户是authd POST/password/res

  • 问题内容: 我的代码中有一个ajax调用。我想通过通话实现的效果很好。我想从数据库中删除一些记录,当通过ajax调用该方法时,该记录实际上被删除了,但是就像在symfony方法中,它必须返回一个响应,这就是为什么当执行该方法时会给我错误 我的Ajax电话是 而执行的方法是 我如何从该方法成功返回?有任何想法吗?谢谢 问题答案: 替换为。也不要忘记在顶部写。