我对symfony 2.x有一个很大的问题 . 我需要通过将用户名和密码传递给此Web服务来对Web服务进行身份验证 .

标准方法和我见过的安全层和UserProvider的任何其他实现通过仅将用户名传递给存储库(在我的情况下是web服务)从用户存储库中检索用户 . Symfony假定存储库返回用户提供的用户名,并且该用户包含密码(已加密) . 然后,通过将登录表单中的密码与用户对象返回的密码(或者您想在此处验证的任何内容)进行比较,来完成用户的身份验证 . 根据此验证的结果,授予或拒绝访问 .

我需要的 - 我认为这是一个常见的要求 - 是将用户名和密码传递给存储库(Web服务),让存储库决定此凭据是否属于有效用户 . 这意味着只要symfony从存储库接收用户对象,就会对用户进行身份验证,并且当用户存储库返回任何其他内容(最好是错误对象)时,身份验证将失败 .

但是,就symfony的安全层非常复杂而且完整的身份验证过程依赖于接口方法 loadUserByUsername 我真的不知道如何实现我自己的UserProvider符合我的要求而不用实现某种类型的东西替换整个安全层 loadUserByUsernameAndPassword

有没有人有这个任务的解决方案或分步教程 .