core-jgi/org.adempiere.server/oauth2/callback.jsp

22 lines
705 B
Plaintext
Raw Normal View History

IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system) (#593) * IDEMPIERE-3101 implement OAuth2 for mail (gmail, outlook and other mail system) WIP - initial version working on zk with google apps mail using OAuth2 Authorization Code Flow and Client Type = web application * Enable imap reading with OAuth2 in RequestEMailProcessor * Simplify the code - tested plain and OAuth2 can use the same methods * Add +SCOPE parameter to AddAuthorizationForm according to IDEMPIERE-4713 * Rename the form AddAuthorizationMailForm to AddAuthorizationForm as is now more generic * IDEMPIERE-4713 * Rename migration scripts to make it newer than IDEMPIERE-4713 * Add list of scopes attended by a credential * Change form to accept other scopes, if no scope parameter is passed, then a list is shown, change the menu to fix the EMail scope * Add MAuthorizationAccount.refreshAndGetAccessToken * Add translation for messages * make call generic oauth, avoid using specific google API * Tests with microsoft as OAuth2 provider * Add record for microsoft as provider * Increase size of tokens * Define mandatory and secure columns * Update refresh token when it comes on the refresh call * Revoke endpoint is optional * Change the approach to a process instead of a form (WIP) * Implement servlet to process the OAuth2 code * Solve context suggestion from hengsin * Implement the form in an automatic popup approach for running on zkwebui * i18n - add translations for all messages that are shown to user * on the form opted for click to avoid the problem with browsers forbidding popups * clean spaces and tabs on line endings * avoid logging and copy of the secure columns * Fix problem reported by @d-ruiz about hidden NPE when SMTP Authentication is disabled * Add writing to AD_PInstance_Para and AD_PInstance_Log the results of processing the servlet * Control to avoid using the same authorization URL twice
2021-03-06 17:49:39 +07:00
<!DOCTYPE html>
<html>
<head>
<title>OAuth2 Callback Process</title>
</head>
<body>
<script type="text/javascript">
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const msg = urlParams.get('msg');
const error = urlParams.get('error');
const errmsg = urlParams.get('errmsg');
const closemsg = urlParams.get('closemsg');
if (error != null) {
document.write("<h3>" + errmsg + "<br></h3><h4><p style=\"color:red\">" + error + "</p></h4>");
} else {
document.write("<h3>" + msg + "</h3>");
}
document.write("<br>" + closemsg);
</script>
</body>
</html>