From b0fbc858db261197665b8364daae0a9dd41b8cb4 Mon Sep 17 00:00:00 2001 From: Steve Hu Date: Sat, 20 Jul 2019 22:44:01 -0400 Subject: [PATCH 1/2] fixes #198 update login-view to handle the redirect --- login-view/src/App.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/login-view/src/App.js b/login-view/src/App.js index e1dac87a..6b816346 100644 --- a/login-view/src/App.js +++ b/login-view/src/App.js @@ -89,14 +89,21 @@ function App() { fetch("/oauth2/code", { method: 'POST', + redirect: 'follow', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: formData }) - .then(response => response.json()) - .then(data => console.log(data)) - .catch(error => console.log(error)); + .then(response => { + // HTTP redirect. + if (response.ok && response.redirected) { + window.location.href = response.url; + } else { + throw Error(response.statusText); + } + }) + .catch(error => console.log("error=", error)); }; From 1423e7a13441f8498cecdd75372ab2bbbb1f9328 Mon Sep 17 00:00:00 2001 From: Steve Hu Date: Wed, 24 Jul 2019 11:42:55 -0400 Subject: [PATCH 2/2] fixes #198 add ErrorMessage --- login-view/src/App.js | 16 +++++++--------- login-view/src/components/ErrorMessage.js | 19 +++++++++++++++++++ .../handler/Oauth2TokenPostHandlerTest.java | 2 +- 3 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 login-view/src/components/ErrorMessage.js diff --git a/login-view/src/App.js b/login-view/src/App.js index 6b816346..d5cb76bc 100644 --- a/login-view/src/App.js +++ b/login-view/src/App.js @@ -9,6 +9,7 @@ import LockOutlinedIcon from '@material-ui/icons/LockOutlined'; import Typography from '@material-ui/core/Typography'; import { makeStyles } from '@material-ui/core/styles'; import Container from '@material-ui/core/Container'; +import ErrorMessage from './components/ErrorMessage'; const useStyles = makeStyles(theme => ({ '@global': { @@ -48,6 +49,7 @@ function App() { const [clientId] = useState(params.get('client_id') == null ? '' : params.get('client_id')); const [userType] = useState(params.get('user_type') == null ? '' : params.get('user_type')); const [redirectUri] = useState(params.get('redirect_uri') == null ? '' : params.get('redirect_uri')); + const [error, setError] = useState(''); const handleChangeUsername = e => { setUsername(e.target.value) @@ -78,14 +80,6 @@ function App() { const formData = Object.keys(data).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(data[key])).join('&'); console.log(formData); - // const formData = new URLSearchParams(); - // formData.append('j_username', {username}); - // formData.append('j_password', {password}); - - // var formData = new FormData(); - // for (var k in data) { - // formData.append(k, data[k]); - // } fetch("/oauth2/code", { method: 'POST', @@ -103,7 +97,10 @@ function App() { throw Error(response.statusText); } }) - .catch(error => console.log("error=", error)); + .catch(error => { + console.log("error=", error); + setError(error.toString()); + }); }; @@ -117,6 +114,7 @@ function App() { Sign in +
({ + error: { + color: '#ff0000', + }, +})); + +function ErrorMessage(props) { + const classes = useStyles(); + return ( +
+ {props.error} +
+ ) +} + +export default ErrorMessage; diff --git a/token/src/test/java/com/networknt/oauth/token/handler/Oauth2TokenPostHandlerTest.java b/token/src/test/java/com/networknt/oauth/token/handler/Oauth2TokenPostHandlerTest.java index 259ed2a4..10a259f8 100644 --- a/token/src/test/java/com/networknt/oauth/token/handler/Oauth2TokenPostHandlerTest.java +++ b/token/src/test/java/com/networknt/oauth/token/handler/Oauth2TokenPostHandlerTest.java @@ -269,7 +269,7 @@ public void run() { Assert.assertEquals(400, statusCode); Status status = Config.getInstance().getMapper().readValue(body, Status.class); Assert.assertNotNull(status); - Assert.assertEquals("ERR12001", status.getCode()); + Assert.assertEquals("ERR11004", status.getCode()); } catch (Exception e) { logger.error("IOException: ", e); throw new ClientException(e);