当用户被重定向到Google进行登录,但在授予权限时点击“取消”时,我的OpenIDAuthenticationFilter中出现以下错误:
“身份验证请求中未提供声明的身份”
并在我的处理程序中:
OpenIDAuthenticationFailureHandler org.springframework.security.authentication.AuthenticationServiceException:无法处理声明的身份''
如果知道用户拒绝了请求的权限,我怎样才能正确捕捉到它?
答案 0 :(得分:0)
事实上,我解决了这个问题,
首先检测Referer:
if (request.getHeader("Referer") != null
&& request.getHeader("Referer").startsWith(myOpenIdServerURL)) {
如果是,则表示openId服务器拒绝您的请求,然后重定向到登录页面,错误代码为:
...
redirectUrl = redirectUrl + "?error=access_denied";
return new ModelAndView("redirect:" + redirectUrl, model);