我有以下问题:在我的 symfony 2 应用程序中,我有一个名为“ClientIpVoter”的选民,它检查客户端 IP 是否被列入黑名单(http://symfony.com/doc/2.0/cookbook/security/voters.html)。如果 ip 被列入黑名单,则安全组件会引发 AccessDeniedException。
安全组件的其他部分也会抛出 AccessDeniedException,例如,如果用户没有正确的角色。
现在我的问题是,我想知道为什么抛出 AccessDeniedException,以便做不同的事情。例如显示一条消息,或者(如果由于角色不足而引发 AccessDeniedException),将用户重定向到一个页面,他可以在其中确认他的帐户或电子邮件。
但是 AccessDeniedException 不包含有关授权问题来源的任何信息。你将如何实现这一点?