RestartResponseAtInterceptPageException就像您在自己的答案中指出的那样,投掷a
就能做到这一点,但这实际上是允许重定向并最终在当前页面继续进行的系统的一部分(通常是授权过程的一部分)。如果不是您的情况,但是您仍然必须执行一些中断处理的操作,则最好抛出
RestartResponseException。
我知道的主要用法
RestartResponseAtInterceptPageException是在“重定向到登录页面”过程中。如果您使用的是基于角色的身份验证,则
IAuthorizationStrategy在确定未登录时的实现将发出一个configure信号
IUnauthorizedComponentInstantiationListener,通常是
AuthenticatedWebApplication,如果未登录,则抛出异常,并重定向到已配置的登录页面。(如果您已登录但未经授权,则会发生其他情况…)。
实际的重定向是由进行的
PageMap,在这种情况下,该重定向还会记住您要转到的页面。成功登录后,登录页面可以要求调用
continueToOriginalDestination(),将其发送到您最初尝试的页面,该方法是中的一种方法,
Component并从中检索已记住的页面
PageMap。
此认证过程有一些很好的示例代码,但是异常和拦截在某种程度上隐藏在幕后。



