private AbstractAuthenticationToken getToken(Authentication authentication, MotechUser user) { AbstractAuthenticationToken token = null; if (authentication instanceof UsernamePasswordAuthenticationToken) { UsernamePasswordAuthenticationToken oldToken = (UsernamePasswordAuthenticationToken) authentication; token = new UsernamePasswordAuthenticationToken(oldToken.getPrincipal(), oldToken.getCredentials(), authoritiesService.authoritiesFor(user)); } else if (authentication instanceof OpenIDAuthenticationToken) { OpenIDAuthenticationToken oldToken = (OpenIDAuthenticationToken) authentication; token = new OpenIDAuthenticationToken(oldToken.getPrincipal(), authoritiesService.authoritiesFor(user), user.getOpenId(), oldToken.getAttributes()); } return token; }