diff --git a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/deviceApproved.jsp b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/deviceApproved.jsp index a31898fe9..1b588f12b 100644 --- a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/deviceApproved.jsp +++ b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/deviceApproved.jsp @@ -23,10 +23,9 @@ - -
+
diff --git a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/requestUserCode.jsp b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/requestUserCode.jsp index ec80d9b5d..51292fff4 100644 --- a/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/requestUserCode.jsp +++ b/openid-connect-server-webapp/src/main/webapp/WEB-INF/views/requestUserCode.jsp @@ -15,29 +15,38 @@
-

  - - - - - - - - -

+

 

+ + + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
- - - + + - -   - +
diff --git a/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json b/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json index eb04ebbc1..7eacdb1bc 100644 --- a/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json +++ b/openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json @@ -493,9 +493,20 @@ "device": { "request_code": { "title": "Enter Code", - "header": "Enter code for ", + "header": "Enter Code", "description": "Enter the code displayed on your device into the box below and press submit", "submit": "Submit" + }, + "error": { + "noUserCode": "The code that you entered was not found.", + "expiredUserCode": "The code that you entered has expired. Return to your device and request a new code.", + "userCodeAlreadyApproved": "The code that you entered has already been used.", + "userCodeMismatch": "There was an error processing the code you entered. Try refreshing the page and returning to your device to request a new code.", + "error": "There was an error processing the code you entered. Return to your device adn request a new code." + }, + "approve": { + "approved": "The device has been approved.", + "notApproved": "The device has not been approved." } } } \ No newline at end of file diff --git a/openid-connect-server/src/main/java/org/mitre/oauth2/web/DeviceEndpoint.java b/openid-connect-server/src/main/java/org/mitre/oauth2/web/DeviceEndpoint.java index 86f14c3b2..fcf6e7778 100644 --- a/openid-connect-server/src/main/java/org/mitre/oauth2/web/DeviceEndpoint.java +++ b/openid-connect-server/src/main/java/org/mitre/oauth2/web/DeviceEndpoint.java @@ -178,20 +178,20 @@ public class DeviceEndpoint { // we couldn't find the device code if (dc == null) { - // TODO: return error - return "error"; + model.addAttribute("error", "noUserCode"); + return "requestUserCode"; } // make sure the code hasn't expired yet if (dc.getExpiration() != null && dc.getExpiration().before(new Date())) { - // TODO: return an error - return "error"; + model.addAttribute("error", "expiredUserCode"); + return "requestUserCode"; } // make sure the device code hasn't already been approved if (dc.isApproved()) { - // TODO: return an error - return "error"; + model.addAttribute("error", "userCodeAlreadyApproved"); + return "requestUserCode"; } ClientDetailsEntity client = clientService.loadClientByClientId(dc.getClientId()); @@ -234,20 +234,20 @@ public class DeviceEndpoint { // make sure the form that was submitted is the one that we were expecting if (!dc.getUserCode().equals(userCode)) { - // TODO: return an error - return "error"; + model.addAttribute("error", "userCodeMismatch"); + return "requestUserCode"; } // make sure the code hasn't expired yet if (dc.getExpiration() != null && dc.getExpiration().before(new Date())) { - // TODO: return an error - return "error"; + model.addAttribute("error", "expiredUserCode"); + return "requestUserCode"; } // user did not approve if (!approve) { - // TODO: return an error - return "error"; + model.addAttribute("approved", false); + return "deviceApproved"; } // create an OAuth request for storage @@ -277,7 +277,7 @@ public class DeviceEndpoint { sortedScopes.addAll(Sets.difference(scopes, systemScopes)); model.put("scopes", sortedScopes); - + model.put("approved", true); return "deviceApproved"; }