@@ -267,37 +267,6 @@ $(".panel-default .panel-heading").click(function() {
267
267
}
268
268
}
269
269
270
- var DEFAULT_HS_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ' ;
271
-
272
- var DEFAULT_RS_TOKEN = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.EkN-DOsnsuRjRO6BxXemmJDm3HbxrbRzXglbN2S4sOkopdU4IsDxTI8jO19W_A4K8ZPJijNLis4EZsHeY559a4DFOd50_OqgHGuERTqYZyuhtF39yxJPAjUESwxk2J5k_4zM3O-vtd1Ghyo4IbqKKSy6J9mTniYJPenn5-HIirE' ;
273
-
274
- var DEFAULT_PUBLIC_RSA = "\
275
- -----BEGIN PUBLIC KEY-----\n\
276
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdlatRjRjogo3WojgGHFHYLugd\
277
- UWAY9iR3fy4arWNA1KoS8kVw33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQs\
278
- HUfQrSDv+MuSUMAe8jzKE4qW+jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5D\
279
- o2kQ+X5xK9cipRgEKwIDAQAB\n\
280
- -----END PUBLIC KEY-----\
281
- " ;
282
-
283
- var DEFAULT_PRIVATE_RSA = "\
284
- -----BEGIN RSA PRIVATE KEY-----\n\
285
- MIICWwIBAAKBgQDdlatRjRjogo3WojgGHFHYLugdUWAY9iR3fy4arWNA1KoS8kVw\
286
- 33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQsHUfQrSDv+MuSUMAe8jzKE4qW\
287
- +jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5Do2kQ+X5xK9cipRgEKwIDAQAB\
288
- AoGAD+onAtVye4ic7VR7V50DF9bOnwRwNXrARcDhq9LWNRrRGElESYYTQ6EbatXS\
289
- 3MCyjjX2eMhu/aF5YhXBwkppwxg+EOmXeh+MzL7Zh284OuPbkglAaGhV9bb6/5Cp\
290
- uGb1esyPbYW+Ty2PC0GSZfIXkXs76jXAu9TOBvD0ybc2YlkCQQDywg2R/7t3Q2OE\
291
- 2+yo382CLJdrlSLVROWKwb4tb2PjhY4XAwV8d1vy0RenxTB+K5Mu57uVSTHtrMK0\
292
- GAtFr833AkEA6avx20OHo61Yela/4k5kQDtjEf1N0LfI+BcWZtxsS3jDM3i1Hp0K\
293
- Su5rsCPb8acJo5RO26gGVrfAsDcIXKC+bQJAZZ2XIpsitLyPpuiMOvBbzPavd4gY\
294
- 6Z8KWrfYzJoI/Q9FuBo6rKwl4BFoToD7WIUS+hpkagwWiz+6zLoX1dbOZwJACmH5\
295
- fSSjAkLRi54PKJ8TFUeOP15h9sQzydI8zJU+upvDEKZsZc/UhT/SySDOxQ4G/523\
296
- Y0sz/OZtSWcol/UMgQJALesy++GdvoIDLfJX5GBQpuFgFenRiRDabxrE9MNUZ2aP\
297
- FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
298
- -----END RSA PRIVATE KEY-----\
299
- " ;
300
-
301
270
var codeMirror = CodeMirror ;
302
271
303
272
function tabHack ( instance ) {
@@ -516,6 +485,8 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
516
485
var $algRadio = $ ( '.algorithm input[value="' + alg + '"]' ) ;
517
486
$algRadio . prop ( 'checked' , true ) ;
518
487
488
+ $ ( '.algorithm option[value="' + alg + '"]' ) . prop ( 'selected' , true ) ;
489
+
519
490
fireEvent ( $algRadio . get ( 0 ) ) ;
520
491
}
521
492
@@ -650,7 +621,7 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
650
621
var privateKeyElement = $ ( 'textarea[name="private-key"]' ) ;
651
622
var publicKeyElement = $ ( 'textarea[name="public-key"]' ) ;
652
623
653
- if ( algorithm === 'HS256' ) {
624
+ if ( algorithm . indexOf ( 'HS' ) === 0 ) {
654
625
return secretElement . val ( ) ;
655
626
} else {
656
627
return action === 'sign' ? privateKeyElement . val ( ) : publicKeyElement . val ( ) ;
@@ -661,34 +632,87 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
661
632
return algorithmRadios . filter ( ':checked' ) . val ( ) ;
662
633
}
663
634
635
+ function checkDefaults ( requestedAlgorithm ) {
636
+ requestedAlgorithm = requestedAlgorithm . toLowerCase ( ) ;
637
+ var requestedDefaults = defaultTokens [ requestedAlgorithm ] ;
638
+
639
+ var token = getTrimmedValue ( tokenEditor ) ;
640
+ if ( ! token ) {
641
+ token = '' ;
642
+ }
643
+ for ( var alg in defaultTokens ) {
644
+ if ( token === defaultTokens [ alg ] . token ) {
645
+ if ( alg === requestedAlgorithm ) {
646
+ break ;
647
+ }
648
+
649
+ tokenEditor . setValue ( requestedDefaults . token ) ;
650
+
651
+ if ( requestedAlgorithm . indexOf ( 'hs' ) === 0 ) {
652
+ var secretElement = $ ( 'input[name="secret"]' ) ;
653
+
654
+ secretElement . val ( requestedDefaults . secret ) ;
655
+ } else {
656
+ var publicKey = $ ( '.jwt-signature textarea[name=public-key]' ) ;
657
+ var privateKey = $ ( '.jwt-signature textarea[name=private-key]' ) ;
658
+
659
+ publicKey . val ( requestedDefaults . publicKey ) ;
660
+ privateKey . val ( requestedDefaults . privateKey ) ;
661
+
662
+ validateKey . apply ( publicKey ) ;
663
+ validateKey . apply ( privateKey ) ;
664
+ }
665
+
666
+ break ;
667
+ }
668
+ }
669
+ }
670
+
671
+ function updateHeader ( algorithm ) {
672
+ var headerStr = getTrimmedValue ( headerEditor ) ;
673
+ try {
674
+ var header = JSON . parse ( headerStr ) ;
675
+ header . alg = algorithm ;
676
+ headerEditor . setValue ( JSON . stringify ( header , null , 2 ) ) ;
677
+ } catch ( e ) {
678
+ //Ignore this, we may have garbage in the editor.
679
+ }
680
+ }
681
+
664
682
function updateAlgorithm ( ) {
665
683
var algorithm = algorithmRadios . filter ( ':checked' ) . val ( ) ;
684
+ var algoType = algorithm . substr ( 0 , 2 ) ;
685
+ var algoSize = algorithm . substr ( 2 , 3 ) ;
666
686
667
687
$ ( '.js-input' ) . attr ( 'data-alg' , algorithm ) ;
668
688
669
- $ ( '.jwt-signature pre' )
689
+ if ( algoType === 'HS' ) {
690
+ $ ( '#hmacsha-text' ) . text ( 'HMACSHA' + algoSize ) ;
691
+
692
+ $ ( '.jwt-signature pre' )
670
693
. hide ( )
671
- . filter ( '.' + algorithm )
694
+ . filter ( '.HS256' )
695
+ . show ( ) ;
696
+ } else {
697
+ var texts = {
698
+ RS : 'RSASHA' ,
699
+ PS : 'RSAPSSSHA' ,
700
+ ES : 'ECDSASHA'
701
+ } ;
702
+ $ ( '#rsasha-text' ) . text ( texts [ algoType ] + algoSize ) ;
703
+
704
+ $ ( '.jwt-signature pre' )
705
+ . hide ( )
706
+ . filter ( '.RS256' )
672
707
. show ( ) ;
673
-
674
- if ( getTokenType ( ) === 'id_token' && getTrimmedValue ( tokenEditor ) === DEFAULT_HS_TOKEN &&
675
- algorithm === 'RS256' ) {
676
- setDefaultsForRSA ( ) ;
677
- } else if ( getTokenType ( ) === 'id_token' && getTrimmedValue ( tokenEditor ) === DEFAULT_RS_TOKEN &&
678
- algorithm === 'HS256' ) {
679
- setDefaultsForHMAC ( ) ;
680
708
}
681
- }
682
709
683
- function setDefaultsForRSA ( ) {
684
- tokenEditor . setValue ( DEFAULT_RS_TOKEN ) ;
685
-
686
- $ ( '.jwt-signature textarea[name=public-key]' ) . val ( DEFAULT_PUBLIC_RSA ) ;
687
- $ ( '.jwt-signature textarea[name=private-key]' ) . val ( DEFAULT_PRIVATE_RSA ) ;
688
- }
710
+ checkDefaults ( algorithm ) ;
711
+ updateHeader ( algorithm ) ;
689
712
690
- function setDefaultsForHMAC ( ) {
691
- tokenEditor . setValue ( DEFAULT_HS_TOKEN ) ;
713
+ if ( window . matchMedia ( '(min-width: 768px)' ) . matches ) {
714
+ autoHeightInput ( ) ;
715
+ }
692
716
}
693
717
694
718
function updateToken ( ) {
@@ -714,12 +738,6 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
714
738
var $textarea = $ ( this ) ;
715
739
var valid = window . isValidKey ( $textarea . val ( ) ) ;
716
740
717
- /*if($textarea.prop('name') === 'public-key') {
718
- valid = /-----BEGIN (PUBLIC KEY|CERTIFICATE)-----(.|\n)*-----END (PUBLIC KEY|CERTIFICATE)-----/.test($textarea.val());
719
- } else {
720
- valid = /-----BEGIN RSA PRIVATE KEY-----(.|\n)*-----END RSA PRIVATE KEY-----/.test($textarea.val());
721
- }*/
722
-
723
741
if ( valid . valid ) {
724
742
$textarea . removeClass ( 'error' ) ;
725
743
$textarea . val ( valid . key ) ;
@@ -792,7 +810,7 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
792
810
}
793
811
794
812
loadFromStorage ( function ( jwt ) {
795
- lastRestoredToken = jwt || DEFAULT_HS_TOKEN ;
813
+ lastRestoredToken = jwt || defaultTokens . hs256 . token ;
796
814
797
815
tokenEditor . setValue (
798
816
lastRestoredToken
0 commit comments