Merge branch 'v1.2' into v1
This commit is contained in:
commit
25d7874104
|
@ -0,0 +1,5 @@
|
||||||
|
v1.2.1 - Authorization Dialog for ID Issuer
|
||||||
|
* Resource Owner Password token exchange
|
||||||
|
* Public / Private Keypair generation
|
||||||
|
* Public key (remember device) syncing
|
||||||
|
* BUG: Remember me is not operational
|
|
@ -0,0 +1,41 @@
|
||||||
|
Copyright 2017 Daplie, Inc
|
||||||
|
|
||||||
|
This is open source software; you can redistribute it and/or modify it under the
|
||||||
|
terms of either:
|
||||||
|
|
||||||
|
a) the "MIT License"
|
||||||
|
b) the "Apache-2.0 License"
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
Apache-2.0 License Summary
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
25
README.md
25
README.md
|
@ -1,17 +1,30 @@
|
||||||
This is a WALNUT module representing the html package for the oauth3.org popup.
|
issuer.html
|
||||||
|
===========
|
||||||
|
|
||||||
It must be installed to `/srv/walnut/packages/pages/issuer@oauth3.org`
|
| [oauth3.js](https://git.oauth3.org/OAuth3/oauth3.js)
|
||||||
|
| *issuer.html*
|
||||||
|
| [issuer.rest.walnut.js](https://git.oauth3.org/OAuth3/issuer.rest.walnut.js)
|
||||||
|
| [issuer.srv](https://git.oauth3.org/OAuth3/issuer.srv)
|
||||||
|
| Sponsored by [Daplie](https://daplie.com)
|
||||||
|
|
||||||
|
|
||||||
|
This is a browser application which implements the issuer side of the *authorization_dialog* flow for OAuth3.
|
||||||
|
|
||||||
|
It may be used client-side only (public key or granted scope syncing will be disabled),
|
||||||
|
or will the *issuer.rest.walnut.js* APIs on the backend for full functionality.
|
||||||
|
|
||||||
|
For use with walnut it must be installed to `/opt/walnut/packages/pages/issuer@oauth3.org`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@git.daplie.com:OAuth3/org.oauth3.git /srv/walnut/packages/pages/issuer@oauth3.org
|
git clone git@git.oauth3.org:OAuth3/org.oauth3.git /opt/walnut/packages/pages/issuer@oauth3.org
|
||||||
pushd /srv/walnut/packages/pages/issuer@oauth3.org
|
pushd /opt/walnut/packages/pages/issuer@oauth3.org
|
||||||
bash ./install.sh
|
bash ./install.sh
|
||||||
popd
|
popd
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo "issuer@oauth3.org" >> /srv/walnut/packages/sites/EXAMPLE.COM
|
echo "issuer@oauth3.org" >> /opt/walnut/var/sites/EXAMPLE.COM
|
||||||
```
|
```
|
||||||
|
|
||||||
This uses the OAuth3 JavaScript SDK `oauth3.js` as a subpackage in
|
This uses the OAuth3 JavaScript SDK `oauth3.js` as a subpackage in
|
||||||
`/srv/walnut/packages/pages/issuer@oauth3.org/assets/oauth3.org`.
|
`/opt/walnut/packages/pages/issuer@oauth3.org/assets/oauth3.org`.
|
||||||
|
|
|
@ -12,10 +12,6 @@ html, body {
|
||||||
background-color: #282828;
|
background-color: #282828;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
/*override bootstrap fade*/
|
|
||||||
.fade {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
input.emailInput::placeholder {
|
input.emailInput::placeholder {
|
||||||
font-family : Brown Regular;
|
font-family : Brown Regular;
|
||||||
font-size : 14px;
|
font-size : 14px;
|
||||||
|
|
46
index.html
46
index.html
|
@ -11,7 +11,8 @@
|
||||||
<link rel="stylesheet" type="text/css" href="/css/daplie-installer-overrides.css">
|
<link rel="stylesheet" type="text/css" href="/css/daplie-installer-overrides.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="fade mock-main">
|
<body>
|
||||||
|
<div class="fade mock-main">
|
||||||
|
|
||||||
<!-- STEP 1: ask the user where they want to log in -->
|
<!-- STEP 1: ask the user where they want to log in -->
|
||||||
<!-- STEP 2: ask the user for their email -->
|
<!-- STEP 2: ask the user for their email -->
|
||||||
|
@ -139,6 +140,49 @@
|
||||||
<button type="button" class="dap-full-button-green js-logout btn btn-primary">Sign Out</button>
|
<button type="button" class="dap-full-button-green js-logout btn btn-primary">Sign Out</button>
|
||||||
<img src="./img/sponsored-by.png" class="sponsored-by-logo">
|
<img src="./img/sponsored-by.png" class="sponsored-by-logo">
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fade mock-bare">
|
||||||
|
<div class="container">
|
||||||
|
<div class="jumbotron">
|
||||||
|
<h1>OAuth3 Playground</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
Login Status:
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
Current Sessions:
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
Approved Devices:
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
Approved Applications:
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!--[if IE]><script src="bower_components/rsvp.js/rsvp.js"></script><![endif]-->
|
<!--[if IE]><script src="bower_components/rsvp.js/rsvp.js"></script><![endif]-->
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
# git clone https://git.daplie.com/OAuth3/org.oauth3.git /srv/walnut/packages/pages/azp@oauth3.org
|
# git clone https://git.oauth3.org/OAuth3/issuer.html.git /srv/walnut/packages/pages/issuer@oauth3.org
|
||||||
|
# git clone https://git.oauth3.org/OAuth3/azp.html.git /srv/walnut/packages/pages/azp@oauth3.org
|
||||||
|
|
||||||
mkdir -p assets
|
mkdir -p assets
|
||||||
if ! [ -d ./assets/oauth3.org ]; then
|
if ! [ -d ./assets/oauth3.org ]; then
|
||||||
git clone https://git.daplie.com/OAuth3/oauth3.js.git ./assets/oauth3.org
|
git clone https://git.oauth3.org/OAuth3/oauth3.js.git ./assets/oauth3.org
|
||||||
fi
|
fi
|
||||||
pushd ./assets/oauth3.org
|
pushd ./assets/oauth3.org
|
||||||
git checkout v1
|
git checkout v1.2
|
||||||
git pull
|
git pull
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ $(function () {
|
||||||
var auth = OAUTH3.create();
|
var auth = OAUTH3.create();
|
||||||
|
|
||||||
auth.init().then(function () {
|
auth.init().then(function () {
|
||||||
$('body').addClass('in');
|
$('.mock-main').addClass('in');
|
||||||
});
|
});
|
||||||
|
|
||||||
auth.setProvider(providerUri).then(function () {
|
auth.setProvider(providerUri).then(function () {
|
||||||
|
|
18
js/issuer.js
18
js/issuer.js
|
@ -168,8 +168,13 @@ $(function () {
|
||||||
$scope.find('.js-scope-desc').text(grantDescriptions[scope]);
|
$scope.find('.js-scope-desc').text(grantDescriptions[scope]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$scope.find('.js-scope-toggle').prop('checked', false);
|
//This disables the check/checkbox when we have an unrecognized grant.
|
||||||
$scope.find('.js-scope-toggle').prop('disabled', true);
|
//This is disabled for testing until we can discover grants automatically.
|
||||||
|
//TODO: Enable this when grants are discoverable
|
||||||
|
//TODO: Indicate to user that this is disabled, not just unchecked.
|
||||||
|
//$scope.find('.js-scope-toggle').prop('checked', false);
|
||||||
|
//$scope.find('.check').attr("src", "./img/unpressed-check.png");
|
||||||
|
//$scope.find('.js-scope-toggle').prop('disabled', true);
|
||||||
$scope.find('.js-scope-desc').text(scope);
|
$scope.find('.js-scope-desc').text(scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,6 +397,13 @@ $(function () {
|
||||||
$('.js-logout-container').show();
|
$('.js-logout-container').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
$('body').addClass('in');
|
if (document.location.hash.slice(1) || document.location.search) {
|
||||||
|
console.log('[DEBUG] search:', document.location.search);
|
||||||
|
console.log('[DEBUG] hash:', document.location.search);
|
||||||
|
$('.mock-main').addClass('in');
|
||||||
|
} else {
|
||||||
|
console.log('[DEBUG] not an auth window');
|
||||||
|
$('.mock-bare').addClass('in');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
25
js/script.js
25
js/script.js
|
@ -47,25 +47,28 @@ $('body').on('click', '.js-remember-label', function (ev) {
|
||||||
|
|
||||||
$('body').on('click', '.check', function () {
|
$('body').on('click', '.check', function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
var $img = $(this);
|
|
||||||
if($img.attr("src") === "./img/pressed-check.png") {
|
|
||||||
$img.attr("src", "./img/unpressed-check.png");
|
|
||||||
$img.removeClass("is-checked");
|
|
||||||
} else if($img.attr("src") === "./img/unpressed-check.png") {
|
|
||||||
$img.attr("src", "./img/pressed-check.png");
|
|
||||||
$img.addClass("is-checked");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('body').on('click', '.js-auth-li-enabled', function (ev) {
|
$('body').on('click', '.js-auth-li-enabled', function (ev) {
|
||||||
'use strict';
|
'use strict';
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
|
|
||||||
|
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
if ($this.find('.js-auth-checkbox').is(':checked') === true) {
|
var $hiddenCheckbox = $this.find('.js-auth-checkbox');
|
||||||
$this.find('.js-auth-checkbox').prop( "checked", false );
|
var $img = $this.find('.check');
|
||||||
|
var newStatus = $hiddenCheckbox.prop('checked') ? "unchecked" : "checked";
|
||||||
|
|
||||||
|
if(newStatus === 'checked') {
|
||||||
|
|
||||||
|
$img.attr('src', './img/pressed-check.png');
|
||||||
|
$img.addClass("is-checked");
|
||||||
|
$hiddenCheckbox.prop( "checked", true );
|
||||||
} else {
|
} else {
|
||||||
$this.find('.js-auth-checkbox').prop( "checked", true );
|
$img.attr("src", "./img/unpressed-check.png");
|
||||||
|
$img.removeClass("is-checked");
|
||||||
|
$hiddenCheckbox.prop( "checked", false );
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue