I dont use CAS, but if it's like any other PreAuth scenario, you can use PreAuthenticatedAuthenticationToken instead of UsernamePasswordAuthenticationToken
something like..
Code:
@Override
public UserDetails loadUserDetails(Authentication token) throws UsernameNotFoundException {
final PreAuthenticatedAuthenticationToken userToken = (PreAuthenticatedAuthenticationToken) token;
logger.debug("Loading userDetails for " + username);
String username = userToken.getName();
String password = (String) token.getCredentials();
return new User(username,password,true,true,true,true,getRoles(username));
}