如何处理取消的OpenId身份验证,拒绝权限

时间:2014-01-29 01:06:12

标签: spring-security

当用户被重定向到Google进行登录,但在授予权限时点击“取消”时,我的OpenIDAuthenticationFilter中出现以下错误:

  

“身份验证请求中未提供声明的身份”

并在我的处理程序中:

  

OpenIDAuthenticationFailureHandler org.springframework.security.authentication.AuthenticationServiceException:无法处理声明的身份''

如果知道用户拒绝了请求的权限,我怎样才能正确捕捉到它?

1 个答案:

答案 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);