@RequestMapping("/connector/qq") public String qq(HttpServletRequest request) { String redirect = "redirect:/redirect"; try { AccessToken accessToken = OAUTH.getAccessTokenByRequest(request); String id = new OpenID(accessToken.getAccessToken()).getUserOpenID(); QQUser qqUser = new QQUser(); qqUser.setId(id); QQAccessToken token = new QQAccessToken(); // token.setAppId(appId); token.setToken(accessToken.getAccessToken()); token.setExpireIn(accessToken.getExpireIn()); Date current = new Date(); token.setCreatedTime(current); token.setLastUpdated(current); qqUser.getTokens().add(token); User user = userService.register( qqUser, new UserInfo(accessToken.getAccessToken(), id).getUserInfo()); SecurityContextHolder.getContext().setAuthentication(new QQAuthToken(user)); } catch (QQConnectException e) { // TODO Auto-generated catch block e.printStackTrace(); } return redirect; }