Skip to content

Commit 26483b2

Browse files
committed
added claims redirect URI editing to the UI for both admins and dynamic clients, closes mitreid-connect#1005
1 parent c386f0d commit 26483b2

File tree

5 files changed

+52
-4
lines changed

5 files changed

+52
-4
lines changed

openid-connect-server-webapp/src/main/webapp/resources/js/client.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ var ClientModel = Backbone.Model.extend({
8383
resourceIds:[],
8484
//additionalInformation?
8585

86+
claimsRedirectUris:[],
87+
8688
clientDescription:"",
8789
reuseRefreshToken:true,
8890
clearAccessTokensOnRefresh:true,
@@ -619,6 +621,7 @@ var ClientFormView = Backbone.View.extend({
619621
this.defaultAcrValuesCollection = new Backbone.Collection();
620622
this.requestUrisCollection = new Backbone.Collection();
621623
this.postLogoutRedirectUrisCollection = new Backbone.Collection();
624+
this.claimsRedirectUrisCollection = new Backbone.Collection();
622625
// TODO: add Spring authorities collection and resource IDs collection?
623626

624627
// collection of sub-views that need to be sync'd on save
@@ -988,6 +991,7 @@ var ClientFormView = Backbone.View.extend({
988991
sectorIdentifierUri: sectorIdentifierUri,
989992
initiateLoginUri: $('#initiateLoginUri input').val(),
990993
postLogoutRedirectUris: this.postLogoutRedirectUrisCollection.pluck('item'),
994+
claimsRedirectUris: this.claimsRedirectUrisCollection.pluck('item'),
991995
reuseRefreshToken: $('#reuseRefreshToken').is(':checked'),
992996
clearAccessTokensOnRefresh: $('#clearAccessTokensOnRefresh').is(':checked'),
993997
requireAuthTime: $('#requireAuthTime input').is(':checked'),
@@ -1136,9 +1140,22 @@ var ClientFormView = Backbone.View.extend({
11361140
placeholder: 'https://',
11371141
helpBlockText: $.t('client.client-form.post-logout-help'),
11381142
collection: this.postLogoutRedirectUrisCollection});
1139-
$('#postLogoutRedirectUri .controls', this.el).html(postLogoutRedirectUrisView.render().el);
1143+
$('#postLogoutRedirectUris .controls', this.el).html(postLogoutRedirectUrisView.render().el);
11401144
this.listWidgetViews.push(postLogoutRedirectUrisView);
11411145

1146+
// build and bind claims redirect URIs
1147+
_.each(this.model.get('claimsRedirectUris'), function(claimsRedirectUri) {
1148+
_self.claimsRedirectUrisCollection.add(new URIModel({item:claimsRedirectUri}));
1149+
});
1150+
1151+
var claimsRedirectUrisView = new ListWidgetView({
1152+
type: 'uri',
1153+
placeholder: 'https://',
1154+
helpBlockText: $.t('client.client-form.claims-redirect-uris-help'),
1155+
collection: this.claimsRedirectUrisCollection});
1156+
$('#claimsRedirectUris .controls', this.el).html(claimsRedirectUrisView.render().el);
1157+
this.listWidgetViews.push(claimsRedirectUrisView);
1158+
11421159
// build and bind request URIs
11431160
_.each(this.model.get('requestUris'), function (requestUri) {
11441161
_self.requestUrisCollection.add(new URIModel({item:requestUri}));

openid-connect-server-webapp/src/main/webapp/resources/js/dynreg.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ var DynRegClient = Backbone.Model.extend({
5757
initiate_login_uri:null,
5858
post_logout_redirect_uris:null,
5959

60+
claims_redirect_uris:[],
61+
6062
request_uris:[],
6163

6264
registration_access_token:null,
@@ -191,6 +193,7 @@ var DynRegEditView = Backbone.View.extend({
191193
this.defaultAcrValuesCollection = new Backbone.Collection();
192194
this.requestUrisCollection = new Backbone.Collection();
193195
this.postLogoutRedirectUrisCollection = new Backbone.Collection();
196+
this.claimsRedirectUrisCollection = new Backbone.Collection();
194197

195198
this.listWidgetViews = [];
196199
},
@@ -458,6 +461,7 @@ var DynRegEditView = Backbone.View.extend({
458461
sector_identifier_uri: sectorIdentifierUri,
459462
initiate_login_uri: $('#initiateLoginUri input').val(),
460463
post_logout_redirect_uris: this.postLogoutRedirectUrisCollection.pluck('item'),
464+
claims_redirect_uris: this.claimsRedirectUrisCollection.pluck('item'),
461465
require_auth_time: $('#requireAuthTime input').is(':checked'),
462466
default_max_age: parseInt($('#defaultMaxAge input').val()),
463467
contacts: contacts,
@@ -592,9 +596,22 @@ var DynRegEditView = Backbone.View.extend({
592596
placeholder: 'https://',
593597
helpBlockText: $.t('client.client-form.post-logout-help'),
594598
collection: this.postLogoutRedirectUrisCollection});
595-
$('#postLogoutRedirectUri .controls', this.el).html(postLogoutRedirectUrisView.render().el);
599+
$('#postLogoutRedirectUris .controls', this.el).html(postLogoutRedirectUrisView.render().el);
596600
this.listWidgetViews.push(postLogoutRedirectUrisView);
597601

602+
// build and bind claims redirect URIs
603+
_.each(this.model.get('claimsRedirectUris'), function(claimsRedirectUri) {
604+
_self.claimsRedirectUrisCollection.add(new URIModel({item:claimsRedirectUri}));
605+
});
606+
607+
var claimsRedirectUrisView = new ListWidgetView({
608+
type: 'uri',
609+
placeholder: 'https://',
610+
helpBlockText: $.t('client.client-form.claims-redirect-uris-help'),
611+
collection: this.claimsRedirectUrisCollection});
612+
$('#claimsRedirectUris .controls', this.el).html(claimsRedirectUrisView.render().el);
613+
this.listWidgetViews.push(claimsRedirectUrisView);
614+
598615
// build and bind request URIs
599616
_.each(this.model.get('request_uris'), function (requestUri) {
600617
_self.requestUrisCollection.add(new URIModel({item:requestUri}));

openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@
103103
"redelegation": "redelegation",
104104
"redirect-uris": "Redirect URI(s)",
105105
"redirect-uris-help": "URIs that the client can be redirected to after the authorization page",
106+
"claims-redirect-uris": "Claims Redirect URI(s)",
107+
"claims-redirect-uris-help": "URIs that the client can be redirected to after the claims gathering flow",
106108
"refresh": "refresh",
107109
"refresh-tokens": "Refresh Tokens",
108110
"refresh-tokens-issued": "Refresh tokens are issued for this client",

openid-connect-server-webapp/src/main/webapp/resources/template/client.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,13 @@ <h1 data-i18n="client.client-form.edit"></h1>
742742
</div>
743743
</div>
744744

745-
<div class="control-group" id="postLogoutRedirectUri">
745+
<div class="control-group" id="claimsRedirectUris">
746+
<label class="control-label" data-i18n="client.client-form.claims-redirect-uris">Claims Redirect URI(s)</label>
747+
<div class="controls">
748+
</div>
749+
</div>
750+
751+
<div class="control-group" id="postLogoutRedirectUris">
746752
<label class="control-label"><span class="label label-default nyi"><i class="icon-road icon-white"></i> NYI </span> <span data-i18n="client.client-form.post-logout">Post-Logout Redirect</span></label>
747753
<div class="controls">
748754
</div>

openid-connect-server-webapp/src/main/webapp/resources/template/dynreg.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,13 @@ <h1 data-i18n="client.client-form.edit"></h1>
527527
</div>
528528
</div>
529529

530-
<div class="control-group" id="postLogoutRedirectUri">
530+
<div class="control-group" id="claimsRedirectUris">
531+
<label class="control-label" data-i18n="client.client-form.claims-redirect-uris">Claims Redirect URI(s)</label>
532+
<div class="controls">
533+
</div>
534+
</div>
535+
536+
<div class="control-group" id="postLogoutRedirectUris">
531537
<label class="control-label"><span class="label label-default nyi"><i class="icon-road icon-white"></i> NYI </span> <span data-i18n="client.client-form.post-logout">Post-Logout Redirect</span></label>
532538
<div class="controls">
533539
</div>

0 commit comments

Comments
 (0)