13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey<%--
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
71b128a7314b40bf2b9740cfa80f6cdba76740e8Phill Cunnington Copyright (c) 2011-2016 ForgeRock AS. All Rights Reserved
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey The contents of this file are subject to the terms
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey of the Common Development and Distribution License
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey (the License). You may not use this file except in
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey compliance with the License.
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey You can obtain a copy of the License at
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey http://forgerock.org/license/CDDLv1.0.html
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey See the License for the specific language governing
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey permission and limitations under the License.
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey When distributing Covered Code, include this CDDL
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey Header Notice in each file and include the License file
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey at http://forgerock.org/license/CDDLv1.0.html
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey If applicable, add the following below the CDDL Header,
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey with the fields enclosed by brackets [] replaced by
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey your own identifying information:
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey "Portions Copyrighted [year] [name of copyright owner]"
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey--%>
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey
71b128a7314b40bf2b9740cfa80f6cdba76740e8Phill Cunnington<%@ page import="org.forgerock.openam.oauth2.OAuth2Constants" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.sun.identity.idm.AMIdentity" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.iplanet.sso.SSOTokenManager" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.iplanet.sso.SSOToken" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.iplanet.am.util.SystemProperties" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.sun.identity.common.DNUtils" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.sun.identity.idm.IdType" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%@ page import="com.iplanet.sso.SSOException" %>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay<%
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay String adminUserDN = "";
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay AMIdentity adminUserId = null;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay try {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay SSOTokenManager sMgr = SSOTokenManager.getInstance();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay SSOToken ssoToken = sMgr.createSSOToken(request);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay // This will give you the 'amAdmin' user dn
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay String adminUser = SystemProperties.get(
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay "com.sun.identity.authentication.super.user");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay if (adminUser != null) {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay adminUserDN = DNUtils.normalizeDN(adminUser);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay // This will give you the 'amAdmin' Identity
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay adminUserId = new AMIdentity(ssoToken, adminUser,
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay IdType.USER, "/", null);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay // This will be your incoming user/token.
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay AMIdentity user = new AMIdentity(ssoToken);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay if ((!adminUserDN.equals(DNUtils.normalizeDN(
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay ssoToken.getPrincipal().getName()))) &&
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay (!user.equals(adminUserId))) {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay out.println("You do not have the privilege to create a OAuth 2 client");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay return;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay } catch (SSOException e) {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay response.sendRedirect("../UI/Login");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay%>
13cdb2a81bc25258d7265d3cf6d72bc2c0b4ae07Charles Sparey<!DOCTYPE HTML>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay<html>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay<head>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <title>Client Registration</title>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <script src="../js/jquery.js"></script>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <script>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $(document).ready(function () {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay //add buttons
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#add_url').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("add_url Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var value = $("input[id='<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>']").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .append("<option value=\"" + value + "\">" + value + "</option>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#add_scope').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("add_scope Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var value = $("input[id='<%=OAuth2Constants.OAuth2Client.SCOPES%>']").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.SCOPES%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .append("<option value=\"" + value + "\">" + value + "</option>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#add_default_scope').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("add_default_scope Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var value = $("input[id='<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>']").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .append("<option value=\"" + value + "\">" + value + "</option>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#add_display_name').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("add_display_name Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var value = $("input[id='<%=OAuth2Constants.OAuth2Client.NAME%>']").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.NAME%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .append("<option value=\"" + value + "\">" + value + "</option>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#add_dispaly_description').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("add_dispaly_description Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var value = $("input[id='<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>']").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .append("<option value=\"" + value + "\">" + value + "</option>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay //remove buttons
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#remove_url').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("remove_url Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>'] option:selected").remove();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#remove_scope').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("remove_scope Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.SCOPES%>'] option:selected").remove();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#remove_default_scope').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("remove_default_scope Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>'] option:selected").remove();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#remove_display_name').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("remove_display_name Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.NAME%>'] option:selected").remove();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#remove_display_description').click(function(){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("remove_display_description Pressed");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $("select[id='<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>'] option:selected").remove();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay //form submit
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#client').submit(function(){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay /*
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Data should be in this form
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay "client_id":["testClient"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "realm":["/"]
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "userpassword":["secret12"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.clientType":["Confidential"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.redirectionURIs":
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay             ["www.client.com","www.example.com"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.scopes":["cn","sn"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.defaultScopes":["cn"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.name":["My Test Client"],
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay         "com.forgerock.openam.oauth2provider.description":["OAuth 2.0 Client"]
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay */
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var jsonData = {};
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay console.log("client submit");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var s = "<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>".replace(/\./g, "\\\\.");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var password1 = $("#" + s).val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay s = s + "2";
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var password2 = $("#" + s).val();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay //password not the same
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay if (password1 != password2){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#message').html("<b>Client password must be the same.<b><br><br>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay return false;
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay //get the options arrays
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var redirection_options = $("select[id='<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .prop('options');
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var scopes_options = $("select[id='<%=OAuth2Constants.OAuth2Client.SCOPES%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .prop('options');
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var default_scope_options = $("select[id='<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .prop('options');
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var display_names_options = $("select[id='<%=OAuth2Constants.OAuth2Client.NAME%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .prop('options');
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var display_descriptions_options = $("select[id='<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>']")
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay .prop('options');
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay s = "<%=OAuth2Constants.OAuth2Client.CLIENT_ID%>".replace(/\./g, "\\\\.");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var client_id = $("#" + s).val();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay if (client_id.length <= 0){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#message').html("<b>Client ID is required.<b><br><br>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay return false;
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay s = "<%=OAuth2Constants.OAuth2Client.REALM%>".replace(/\./g, "\\\\.");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var realm = $("#" + s).val();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay if (realm.length <= 0){
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay $('#message').html("<b>Realm is required.<b><br><br>");
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay return false;
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var clientType = $("input[name='<%=OAuth2Constants.OAuth2Client.CLIENT_TYPE%>']:checked").val();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay if (realm === 'undefined' || realm.length <= 0){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $('#message').html("<b>Client Type is required.<b><br><br>");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay return false;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay //add user, pass, and realm to the dat json object
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay var temp = new Array();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(client_id);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.CLIENT_ID%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(password1);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(realm);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.REALM%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(clientType);
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.CLIENT_TYPE%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay //get the selection options as a single string
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay for (var i= 0; i < redirection_options.length; i++){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(redirection_options[i].value);
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>"] = temp;
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay for (var i= 0; i < scopes_options.length; i++){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(scopes_options[i].value);
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.SCOPES%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay for (var i= 0; i < default_scope_options.length; i++){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(default_scope_options[i].value);
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay for (var i= 0; i < display_names_options.length; i++){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(display_names_options[i].value);
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.NAME%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp = new Array();
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay for (var i= 0; i < display_descriptions_options.length; i++){
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay temp.push(display_descriptions_options[i].value);
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay }
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay jsonData["<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>"] = temp;
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $.ajax({
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay headers: {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Accept : "application/json; charset=utf-8",
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay "Content-Type": "application/json; charset=utf-8"
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay },
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay type: "POST",
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay url: "../frrest/oauth2/client/?_action=create",
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay cache: false,
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay data: JSON.stringify(jsonData)
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }).done(function( msg ) {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $('#message').html("<b>Client Created.<b><br><br>");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay }).fail(function( jqXHR, textStatus ) {
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay $('#message').html("<b>Client Creation Failed.<b><br><br>");
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay });
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay return false;
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay });
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay </script>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay</head>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay<body>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <h1>Register a Client</h1>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <form name="client" action="" method="POST" id="client">
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay <div id="message"></div>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Realm:<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="input" name="<%=OAuth2Constants.OAuth2Client.REALM%>" value="" id="<%=OAuth2Constants.OAuth2Client.REALM%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Client ID:<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="input" name="<%=OAuth2Constants.OAuth2Client.CLIENT_ID%>" value="" id="<%=OAuth2Constants.OAuth2Client.CLIENT_ID%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Client Password:<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="password" name="<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>" value="" id="<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Client Password: (confirm)<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="password" name="<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>2" value="" id="<%=OAuth2Constants.OAuth2Client.USERPASSWORD%>2"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Client Type:<br>
2b8a78bd6224c6c16115634b5f99644ef9aa5996Kohei Tamura <input type="radio" name="<%=OAuth2Constants.OAuth2Client.CLIENT_TYPE%>" value="Confidential" checked /><label>Confidential</label><br>
2b8a78bd6224c6c16115634b5f99644ef9aa5996Kohei Tamura <input type="radio" name="<%=OAuth2Constants.OAuth2Client.CLIENT_TYPE%>" value="Public"/><label>Public</label>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Redirection URL(s):<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <select id="<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>" multiple="single" name="<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>"></select>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="remove_url" id="remove_url" value="Remove"/><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="text" name="url" value="" id ="<%=OAuth2Constants.OAuth2Client.REDIRECT_URI%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="add_url" id="add_url" value="Add"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Scope(s):<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <select id="<%=OAuth2Constants.OAuth2Client.SCOPES%>" multiple="single" name="<%=OAuth2Constants.OAuth2Client.SCOPES%>"></select>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="remove_scope" id="remove_scope" value="Remove"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="text" name="url" value="" id ="<%=OAuth2Constants.OAuth2Client.SCOPES%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="add_scope" id="add_scope" value="Add"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Default Scope(s):<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <select id="<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>" multiple="single" name="<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>"></select>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="remove_default_scope" id="remove_default_scope" value="Remove"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="text" name="url" value="" id ="<%=OAuth2Constants.OAuth2Client.DEFAULT_SCOPES%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="add_default_scope" id="add_default_scope" value="Add"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Display Name(s):<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <select id="<%=OAuth2Constants.OAuth2Client.NAME%>" multiple="single" name="<%=OAuth2Constants.OAuth2Client.NAME%>"></select>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="remove_display_name" id="remove_display_name" value="Remove"/><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="text" name="url" value="" id ="<%=OAuth2Constants.OAuth2Client.NAME%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="add_display_name" id="add_display_name" value="Add"/><br><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay Display Description(s):<br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <select id="<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>" multiple="single" name="<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>"></select>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="remove_display_description" id="remove_display_description" value="Remove"/><br>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="text" name="url" value="" id ="<%=OAuth2Constants.OAuth2Client.DESCRIPTION%>"/>
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="button" name="add_dispaly_description" id="add_dispaly_description" value="Add"/><br><br>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
7690c62932cb2500d6eab5cca6b4a7f4aa418e10Jason Lemay <input type="Submit" name="save" id="submit"/>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay </form>
f58c87ece2202b8f85310d8885c7e39a7f435c09Jason Lemay</body>