I am implement OAuth 2 for youTube api..
public class LocalServerReceiverRetriever {
private static final Logger logger = LoggerFactory
.getLogger(FileUploadController.class);
private static LocalServerReceiver localServerReceiver = null;
public static LocalServerReceiver getLocalServerReceiver(){
if(localServerReceiver == null){
localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build();
}else{
try {
localServerReceiver.stop();
} catch (IOException e) {
logger.error(e.getMessage() + e.getCause());
}
localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build();
}
return localServerReceiver ;
}
}
public static Credential authorize(List scopes, String credentialDatastore) throws IOException {
// Load client secrets.
// more code....
// Build the local server and bind it to port 8081
LocalServerReceiver localReceiver = LocalServerReceiverRetriever.getLocalServerReceiver();
logger.debug("localReceiver set up to 8081");
// Authorize.
return new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user");
}
It is working in local. Logically I change the callback URL to http://localhost:8081/CallBack.. Working fine in local but when I deploy to AWS server with public IP, it does not work..
Showing address already in use for 8081 exception and even not redirect to google auth page.