Socket
Socket
Sign inDemoInstall

keycloak-js

Package Overview
Dependencies
Maintainers
2
Versions
145
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

keycloak-js - npm Package Compare versions

Comparing version 1.8.0-cr.3 to 1.9.5

.npmignore

2

bower.json
{
"name": "keycloak",
"version": "1.8.0-cr.3",
"version": "1.9.5",
"main": "dist/keycloak.js",

@@ -5,0 +5,0 @@ "ignore": [

@@ -0,1 +1,18 @@

/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* 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.
*/
(function( window, undefined ) {

@@ -11,2 +28,3 @@

var refreshQueue = [];
var storage;

@@ -22,2 +40,4 @@ var loginIframe = {

storage = new PersistentStorage();
if (window.Cordova) {

@@ -151,2 +171,4 @@ adapter = loadAdapter('cordova');

onLoad();
} else {
initPromise.setSuccess();
}

@@ -179,3 +201,3 @@ } else {

sessionStorage.oauthState = JSON.stringify({ state: state, nonce: nonce, redirectUri: encodeURIComponent(redirectUri) });
storage.setItem('oauthState', JSON.stringify({ state: state, nonce: nonce, redirectUri: encodeURIComponent(redirectUri) }));

@@ -226,3 +248,3 @@ var action = 'auth';

+ '/protocol/openid-connect/logout'
+ '?redirect_uri=' + encodeURIComponent(adapter.redirectUri(options));
+ '?redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false));

@@ -678,6 +700,7 @@ return url;

var sessionState = sessionStorage.oauthState && JSON.parse(sessionStorage.oauthState);
var oauthState = storage.getItem('oauthState');
var sessionState = oauthState && JSON.parse(oauthState);
if (sessionState && (oauth.code || oauth.error || oauth.access_token || oauth.id_token) && oauth.state && oauth.state == sessionState.state) {
delete sessionStorage.oauthState;
storage.removeItem('oauthState');

@@ -834,3 +857,7 @@ oauth.redirectUri = sessionState.redirectUri;

redirectUri: function(options) {
redirectUri: function(options, encodeHash) {
if (arguments.length == 1) {
encodeHash = true;
}
if (options && options.redirectUri) {

@@ -842,3 +869,3 @@ return options.redirectUri;

var redirectUri = location.href;
if (location.hash) {
if (location.hash && encodeHash) {
redirectUri = redirectUri.substring(0, location.href.indexOf('#'));

@@ -868,9 +895,10 @@ redirectUri += (redirectUri.indexOf('?') == -1 ? '?' : '&') + 'redirect_fragment=' + encodeURIComponent(location.hash.substring(1));

var callback;
var error;
var completed = false;
ref.addEventListener('loadstart', function(event) {
if (event.url.indexOf('http://localhost') == 0) {
callback = parseCallback(event.url);
var callback = parseCallback(event.url);
processCallback(callback, promise);
ref.close();
completed = true;
}

@@ -880,16 +908,15 @@ });

ref.addEventListener('loaderror', function(event) {
if (event.url.indexOf('http://localhost') != 0) {
error = true;
ref.close();
if (!completed) {
if (event.url.indexOf('http://localhost') == 0) {
var callback = parseCallback(event.url);
processCallback(callback, promise);
ref.close();
completed = true;
} else {
promise.setError();
ref.close();
}
}
});
ref.addEventListener('exit', function(event) {
if (error || !callback) {
promise.setError();
} else {
processCallback(callback, promise);
}
});
return promise.promise;

@@ -913,3 +940,5 @@ },

ref.addEventListener('loaderror', function(event) {
if (event.url.indexOf('http://localhost') != 0) {
if (event.url.indexOf('http://localhost') == 0) {
ref.close();
} else {
error = true;

@@ -962,2 +991,78 @@ ref.close();

var PersistentStorage = function() {
if (!(this instanceof PersistentStorage)) {
return new PersistentStorage();
}
var ps = this;
var useCookieStorage = function () {
if (typeof localStorage === "undefined") {
return true;
}
try {
var key = '@@keycloak-session-storage/test';
localStorage.setItem(key, 'test');
localStorage.removeItem(key);
return false;
} catch (err) {
// Probably in Safari "private mode" where localStorage
// quota is 0, or quota exceeded. Switching to cookie
// storage.
return true;
}
}
ps.setItem = function(key, value) {
if (useCookieStorage()) {
setCookie(key, value, cookieExpiration(5));
} else {
localStorage.setItem(key, value);
}
}
ps.getItem = function(key) {
if (useCookieStorage()) {
return getCookie(key);
}
return localStorage.getItem(key);
}
ps.removeItem = function(key) {
if (typeof localStorage !== "undefined") {
try {
// Always try to delete from localStorage.
localStorage.removeItem(key);
} catch (err) { }
}
// Always remove the cookie.
setCookie(key, '', cookieExpiration(-100));
}
var cookieExpiration = function (minutes) {
var exp = new Date();
exp.setTime(exp.getTime() + (minutes*60*1000));
return exp;
}
var getCookie = function (key) {
var name = key + '=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return '';
}
var setCookie = function (key, value, expirationDate) {
var cookie = key + '=' + value + '; '
+ 'expires=' + expirationDate.toUTCString() + '; ';
document.cookie = cookie;
}
}
var CallbackParser = function(uriToParse, responseMode) {

@@ -964,0 +1069,0 @@ if (!(this instanceof CallbackParser)) {

@@ -1,1 +0,1 @@

(function(a,c){var b=function(v){if(!(this instanceof b)){return new b(v)}var g=this;var m;var q=[];var r={enable:true,callbackMap:[],interval:5};g.init=function(A){g.authenticated=false;if(a.Cordova){m=t("cordova")}else{m=t()}if(A){if(typeof A.checkLoginIframe!=="undefined"){r.enable=A.checkLoginIframe}if(A.checkLoginIframeInterval){r.interval=A.checkLoginIframeInterval}if(A.onLoad==="login-required"){g.loginRequired=true}if(A.responseMode){if(A.responseMode==="query"||A.responseMode==="fragment"){g.responseMode=A.responseMode}else{throw"Invalid value for responseMode"}}if(A.flow){switch(A.flow){case"standard":g.responseType="code";break;case"implicit":g.responseType="id_token token";break;case"hybrid":g.responseType="code id_token token";break;default:throw"Invalid value for flow"}g.flow=A.flow}}if(!g.responseMode){g.responseMode="fragment"}if(!g.responseType){g.responseType="code";g.flow="standard"}var B=d();var x=d();x.promise.success(function(){g.onReady&&g.onReady(g.authenticated);B.setSuccess(g.authenticated)}).error(function(){B.setError()});var z=h(v);function y(){var D=function(E){if(!E){C.prompt="none"}g.login(C).success(function(){x.setSuccess()}).error(function(){x.setError()})};var C={};switch(A.onLoad){case"check-sso":if(r.enable){u().success(function(){j().success(function(){D(false)}).error(function(){x.setSuccess()})})}else{D(false)}break;case"login-required":D(true);break;default:throw"Invalid value for onLoad"}}function w(){var C=f(a.location.href);if(C){u();a.history.replaceState({},null,C.newUrl);k(C,x);return}else{if(A){if(A.token||A.refreshToken){p(A.token,A.refreshToken,A.idToken,false);g.timeSkew=A.timeSkew||0;if(r.enable){u().success(function(){j().success(function(){x.setSuccess()}).error(function(){if(A.onLoad){y()}})})}else{x.setSuccess()}}else{if(A.onLoad){y()}}}else{x.setSuccess()}}}z.success(w);z.error(function(){B.setError()});return B.promise};g.login=function(w){return m.login(w)};g.createLoginUrl=function(x){var A=e();var y=e();var B=m.redirectUri(x);if(x&&x.prompt){B+=(B.indexOf("?")==-1?"?":"&")+"prompt="+x.prompt}sessionStorage.oauthState=JSON.stringify({state:A,nonce:y,redirectUri:encodeURIComponent(B)});var z="auth";if(x&&x.action=="register"){z="registrations"}var w=l()+"/protocol/openid-connect/"+z+"?client_id="+encodeURIComponent(g.clientId)+"&redirect_uri="+encodeURIComponent(B)+"&state="+encodeURIComponent(A)+"&nonce="+encodeURIComponent(y)+"&response_mode="+encodeURIComponent(g.responseMode)+"&response_type="+encodeURIComponent(g.responseType);if(x&&x.prompt){w+="&prompt="+encodeURIComponent(x.prompt)}if(x&&x.loginHint){w+="&login_hint="+encodeURIComponent(x.loginHint)}if(x&&x.idpHint){w+="&kc_idp_hint="+encodeURIComponent(x.idpHint)}if(x&&x.scope){w+="&scope="+encodeURIComponent(x.scope)}if(x&&x.locale){w+="&ui_locales="+encodeURIComponent(x.locale)}return w};g.logout=function(w){return m.logout(w)};g.createLogoutUrl=function(x){var w=l()+"/protocol/openid-connect/logout?redirect_uri="+encodeURIComponent(m.redirectUri(x));return w};g.register=function(w){return m.register(w)};g.createRegisterUrl=function(w){if(!w){w={}}w.action="register";return g.createLoginUrl(w)};g.createAccountUrl=function(x){var w=l()+"/account?referrer="+encodeURIComponent(g.clientId)+"&referrer_uri="+encodeURIComponent(m.redirectUri(x));return w};g.accountManagement=function(){return m.accountManagement()};g.hasRealmRole=function(x){var w=g.realmAccess;return !!w&&w.roles.indexOf(x)>=0};g.hasResourceRole=function(y,x){if(!g.resourceAccess){return false}var w=g.resourceAccess[x||g.clientId];return !!w&&w.roles.indexOf(y)>=0};g.loadUserProfile=function(){var w=l()+"/account";var x=new XMLHttpRequest();x.open("GET",w,true);x.setRequestHeader("Accept","application/json");x.setRequestHeader("Authorization","bearer "+g.token);var y=d();x.onreadystatechange=function(){if(x.readyState==4){if(x.status==200){g.profile=JSON.parse(x.responseText);y.setSuccess(g.profile)}else{y.setError()}}};x.send();return y.promise};g.loadUserInfo=function(){var w=l()+"/protocol/openid-connect/userinfo";var x=new XMLHttpRequest();x.open("GET",w,true);x.setRequestHeader("Accept","application/json");x.setRequestHeader("Authorization","bearer "+g.token);var y=d();x.onreadystatechange=function(){if(x.readyState==4){if(x.status==200){g.userInfo=JSON.parse(x.responseText);y.setSuccess(g.userInfo)}else{y.setError()}}};x.send();return y.promise};g.isTokenExpired=function(w){if(!g.tokenParsed||(!g.refreshToken&&g.flow!="implicit")){throw"Not authenticated"}var x=g.tokenParsed.exp-(new Date().getTime()/1000)+g.timeSkew;if(w){x-=w}return x<0};g.updateToken=function(w){var z=d();if(!g.tokenParsed||!g.refreshToken){z.setError();return z.promise}w=w||5;var x=function(){if(!g.isTokenExpired(w)){z.setSuccess(false)}else{var D="grant_type=refresh_token&refresh_token="+g.refreshToken;var B=l()+"/protocol/openid-connect/token";q.push(z);if(q.length==1){var C=new XMLHttpRequest();C.open("POST",B,true);C.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(g.clientId&&g.clientSecret){C.setRequestHeader("Authorization","Basic "+btoa(g.clientId+":"+g.clientSecret))}else{D+="&client_id="+encodeURIComponent(g.clientId)}var A=new Date().getTime();C.onreadystatechange=function(){if(C.readyState==4){if(C.status==200){A=(A+new Date().getTime())/2;var F=JSON.parse(C.responseText);p(F.access_token,F.refresh_token,F.id_token,true);g.timeSkew=Math.floor(A/1000)-g.tokenParsed.iat;g.onAuthRefreshSuccess&&g.onAuthRefreshSuccess();for(var E=q.pop();E!=null;E=q.pop()){E.setSuccess(true)}}else{g.onAuthRefreshError&&g.onAuthRefreshError();for(var E=q.pop();E!=null;E=q.pop()){E.setError(true)}}}};C.send(D)}}};if(r.enable){var y=j();y.success(function(){x()}).error(function(){z.setError()})}else{x()}return z.promise};g.clearToken=function(){if(g.token){p(null,null,null,true);g.onAuthLogout&&g.onAuthLogout();if(g.loginRequired){g.login()}}};function l(){if(g.authServerUrl.charAt(g.authServerUrl.length-1)=="/"){return g.authServerUrl+"realms/"+encodeURIComponent(g.realm)}else{return g.authServerUrl+"/realms/"+encodeURIComponent(g.realm)}}function s(){if(!a.location.origin){return a.location.protocol+"//"+a.location.hostname+(a.location.port?":"+a.location.port:"")}else{return a.location.origin}}function k(C,F){var y=C.code;var D=C.error;var z=C.prompt;var x=new Date().getTime();if(D){if(z!="none"){g.onAuthError&&g.onAuthError();F&&F.setError()}else{F&&F.setSuccess()}return}else{if((g.flow!="standard")&&(C.access_token||C.id_token)){B(C.access_token,null,C.id_token,true)}}if((g.flow!="implicit")&&y){var A="code="+y+"&grant_type=authorization_code";var w=l()+"/protocol/openid-connect/token";var E=new XMLHttpRequest();E.open("POST",w,true);E.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(g.clientId&&g.clientSecret){E.setRequestHeader("Authorization","Basic "+btoa(g.clientId+":"+g.clientSecret))}else{A+="&client_id="+encodeURIComponent(g.clientId)}A+="&redirect_uri="+C.redirectUri;E.withCredentials=true;E.onreadystatechange=function(){if(E.readyState==4){if(E.status==200){var G=JSON.parse(E.responseText);B(G.access_token,G.refresh_token,G.id_token,g.flow==="standard")}else{g.onAuthError&&g.onAuthError();F&&F.setError()}}};E.send(A)}function B(G,H,J,I){x=(x+new Date().getTime())/2;p(G,H,J,true);if((g.tokenParsed&&g.tokenParsed.nonce!=C.storedNonce)||(g.refreshTokenParsed&&g.refreshTokenParsed.nonce!=C.storedNonce)||(g.idTokenParsed&&g.idTokenParsed.nonce!=C.storedNonce)){console.log("invalid nonce!");g.clearToken();F&&F.setError()}else{g.timeSkew=Math.floor(x/1000)-g.tokenParsed.iat;if(I){g.onAuthSuccess&&g.onAuthSuccess();F&&F.setSuccess()}}}}function h(y){var B=d();var x;if(!v){x="keycloak.json"}else{if(typeof v==="string"){x=v}}if(x){var A=new XMLHttpRequest();A.open("GET",x,true);A.setRequestHeader("Accept","application/json");A.onreadystatechange=function(){if(A.readyState==4){if(A.status==200){var C=JSON.parse(A.responseText);g.authServerUrl=C["auth-server-url"];g.realm=C.realm;g.clientId=C.resource;g.clientSecret=(C.credentials||{})["secret"];B.setSuccess()}else{B.setError()}}};A.send()}else{if(!v.url){var w=document.getElementsByTagName("script");for(var z=0;z<w.length;z++){if(w[z].src.match(/.*keycloak\.js/)){v.url=w[z].src.substr(0,w[z].src.indexOf("/js/keycloak.js"));break}}}if(!v.realm){throw"realm missing"}if(!v.clientId){throw"clientId missing"}g.authServerUrl=v.url;g.realm=v.realm;g.clientId=v.clientId;g.clientSecret=(v.credentials||{}).secret;B.setSuccess()}return B.promise}function p(z,y,C,w){if(g.tokenTimeoutHandle){clearTimeout(g.tokenTimeoutHandle);g.tokenTimeoutHandle=null}if(z){g.token=z;g.tokenParsed=n(z);var A=g.realm+"/"+g.tokenParsed.sub;if(g.tokenParsed.session_state){A=A+"/"+g.tokenParsed.session_state}g.sessionId=A;g.authenticated=true;g.subject=g.tokenParsed.sub;g.realmAccess=g.tokenParsed.realm_access;g.resourceAccess=g.tokenParsed.resource_access;if(g.onTokenExpired){var B=w?g.tokenParsed.iat:(new Date().getTime()/1000);var x=g.tokenParsed.exp-B;g.tokenTimeoutHandle=setTimeout(g.onTokenExpired,x*1000)}}else{delete g.token;delete g.tokenParsed;delete g.subject;delete g.realmAccess;delete g.resourceAccess;g.authenticated=false}if(y){g.refreshToken=y;g.refreshTokenParsed=n(y)}else{delete g.refreshToken;delete g.refreshTokenParsed}if(C){g.idToken=C;g.idTokenParsed=n(C)}else{delete g.idToken;delete g.idTokenParsed}}function n(w){w=w.split(".")[1];w=w.replace("/-/g","+");w=w.replace("/_/g","/");switch(w.length%4){case 0:break;case 2:w+="==";break;case 3:w+="=";break;default:throw"Invalid token"}w=(w+"===").slice(0,w.length+(w.length%4));w=w.replace(/-/g,"+").replace(/_/g,"/");w=decodeURIComponent(escape(atob(w)));w=JSON.parse(w);return w}function e(){var z=[];var w="0123456789abcdef";for(var x=0;x<36;x++){z[x]=w.substr(Math.floor(Math.random()*16),1)}z[14]="4";z[19]=w.substr((z[19]&3)|8,1);z[8]=z[13]=z[18]=z[23]="-";var y=z.join("");return y}g.callback_id=0;function o(){var w="<id: "+(g.callback_id++)+(Math.random())+">";return w}function f(y){var w=new i(y,g.responseMode).parseUri();var x=sessionStorage.oauthState&&JSON.parse(sessionStorage.oauthState);if(x&&(w.code||w.error||w.access_token||w.id_token)&&w.state&&w.state==x.state){delete sessionStorage.oauthState;w.redirectUri=x.redirectUri;w.storedNonce=x.nonce;if(w.fragment){w.newUrl+="#"+w.fragment}return w}}function d(){var w={setSuccess:function(x){w.success=true;w.result=x;if(w.successCallback){w.successCallback(x)}},setError:function(x){w.error=true;w.result=x;if(w.errorCallback){w.errorCallback(x)}},promise:{success:function(x){if(w.success){x(w.result)}else{if(!w.error){w.successCallback=x}}return w.promise},error:function(x){if(w.error){x(w.result)}else{if(!w.success){w.errorCallback=x}}return w.promise}}};return w}function u(){var A=d();if(!r.enable){A.setSuccess();return A.promise}if(r.iframe){A.setSuccess();return A.promise}var y=document.createElement("iframe");r.iframe=y;y.onload=function(){var B=l();if(B.charAt(0)==="/"){r.iframeOrigin=s()}else{r.iframeOrigin=B.substring(0,B.indexOf("/",8))}A.setSuccess();setTimeout(w,r.interval*1000)};var z=l()+"/protocol/openid-connect/login-status-iframe.html?client_id="+encodeURIComponent(g.clientId)+"&origin="+s();y.setAttribute("src",z);y.style.display="none";document.body.appendChild(y);var x=function(B){if(B.origin!==r.iframeOrigin){return}var C=JSON.parse(B.data);var D=r.callbackMap[C.callbackId];delete r.callbackMap[C.callbackId];if((!g.sessionId||g.sessionId==C.session)&&C.loggedIn){D.setSuccess()}else{g.clearToken();D.setError()}};a.addEventListener("message",x,false);var w=function(){j();if(g.token){setTimeout(w,r.interval*1000)}};return A.promise}function j(){var y=d();if(r.iframe&&r.iframeOrigin){var x={};x.callbackId=o();r.callbackMap[x.callbackId]=y;var w=r.iframeOrigin;r.iframe.contentWindow.postMessage(JSON.stringify(x),w)}else{y.setSuccess()}return y.promise}function t(w){if(!w||w=="default"){return{login:function(x){a.location.href=g.createLoginUrl(x);return d().promise},logout:function(x){a.location.href=g.createLogoutUrl(x);return d().promise},register:function(x){a.location.href=g.createRegisterUrl(x);return d().promise},accountManagement:function(){a.location.href=g.createAccountUrl();return d().promise},redirectUri:function(x){if(x&&x.redirectUri){return x.redirectUri}else{if(g.redirectUri){return g.redirectUri}else{var y=location.href;if(location.hash){y=y.substring(0,location.href.indexOf("#"));y+=(y.indexOf("?")==-1?"?":"&")+"redirect_fragment="+encodeURIComponent(location.hash.substring(1))}return y}}}}}if(w=="cordova"){r.enable=false;return{login:function(y){var C=d();var B="location=no";if(y&&y.prompt=="none"){B+=",hidden=yes"}var A=g.createLoginUrl(y);var z=a.open(A,"_blank",B);var D;var x;z.addEventListener("loadstart",function(E){if(E.url.indexOf("http://localhost")==0){D=f(E.url);z.close()}});z.addEventListener("loaderror",function(E){if(E.url.indexOf("http://localhost")!=0){x=true;z.close()}});z.addEventListener("exit",function(E){if(x||!D){C.setError()}else{k(D,C)}});return C.promise},logout:function(z){var B=d();var x=g.createLogoutUrl(z);var A=a.open(x,"_blank","location=no,hidden=yes");var y;A.addEventListener("loadstart",function(C){if(C.url.indexOf("http://localhost")==0){A.close()}});A.addEventListener("loaderror",function(C){if(C.url.indexOf("http://localhost")!=0){y=true;A.close()}});A.addEventListener("exit",function(C){if(y){B.setError()}else{g.clearToken();B.setSuccess()}});return B.promise},register:function(){var x=g.createRegisterUrl();var y=a.open(x,"_blank","location=no");y.addEventListener("loadstart",function(z){if(z.url.indexOf("http://localhost")==0){y.close()}})},accountManagement:function(){var x=g.createAccountUrl();var y=a.open(x,"_blank","location=no");y.addEventListener("loadstart",function(z){if(z.url.indexOf("http://localhost")==0){y.close()}})},redirectUri:function(x){return"http://localhost"}}}throw"invalid adapter type: "+w}var i=function(w,z){if(!(this instanceof i)){return new i(w,z)}var B=this;var x=function(){var F=null;var G=null;var E=null;var C=w.indexOf("?");var D=w.indexOf("#",C+1);if(C==-1&&D==-1){F=w}else{if(C!=-1){F=w.substring(0,C);G=w.substring(C+1);if(D!=-1){D=G.indexOf("#");E=G.substring(D+1);G=G.substring(0,D)}}else{F=w.substring(0,D);E=w.substring(D+1)}}return{baseUri:F,queryString:G,fragmentString:E}};var y=function(I){var C={};var H=I.split("&");for(var D=0;D<H.length;D++){var F=H[D].split("=");var E=decodeURIComponent(F[0]);var G=decodeURIComponent(F[1]);C[E]=G}return C};var A=function(F,G,C){var E=["code","error","state"];for(var D=0;D<E.length;D++){if(F===E[D]){C[F]=G;return true}}return false};B.parseUri=function(){var G=x();var E={};if(G.queryString){E=y(G.queryString)}var C={newUrl:G.baseUri};for(var F in E){switch(F){case"redirect_fragment":C.fragment=E[F];break;case"prompt":C.prompt=E[F];break;default:if(z!="query"||!A(F,E[F],C)){C.newUrl+=(C.newUrl.indexOf("?")==-1?"?":"&")+F+"="+E[F]}break}}if(z==="fragment"){var D={};if(G.fragmentString){D=y(G.fragmentString)}for(var F in D){C[F]=D[F]}}return C}}};if(typeof module==="object"&&module&&typeof module.exports==="object"){module.exports=b}else{a.Keycloak=b;if(typeof define==="function"&&define.amd){define("keycloak",[],function(){return b})}}})(window);
(function(a,c){var b=function(x){if(!(this instanceof b)){return new b(x)}var g=this;var m;var q=[];var r;var s={enable:true,callbackMap:[],interval:5};g.init=function(C){g.authenticated=false;r=new v();if(a.Cordova){m=u("cordova")}else{m=u()}if(C){if(typeof C.checkLoginIframe!=="undefined"){s.enable=C.checkLoginIframe}if(C.checkLoginIframeInterval){s.interval=C.checkLoginIframeInterval}if(C.onLoad==="login-required"){g.loginRequired=true}if(C.responseMode){if(C.responseMode==="query"||C.responseMode==="fragment"){g.responseMode=C.responseMode}else{throw"Invalid value for responseMode"}}if(C.flow){switch(C.flow){case"standard":g.responseType="code";break;case"implicit":g.responseType="id_token token";break;case"hybrid":g.responseType="code id_token token";break;default:throw"Invalid value for flow"}g.flow=C.flow}}if(!g.responseMode){g.responseMode="fragment"}if(!g.responseType){g.responseType="code";g.flow="standard"}var D=d();var z=d();z.promise.success(function(){g.onReady&&g.onReady(g.authenticated);D.setSuccess(g.authenticated)}).error(function(){D.setError()});var B=h(x);function A(){var F=function(G){if(!G){E.prompt="none"}g.login(E).success(function(){z.setSuccess()}).error(function(){z.setError()})};var E={};switch(C.onLoad){case"check-sso":if(s.enable){w().success(function(){j().success(function(){F(false)}).error(function(){z.setSuccess()})})}else{F(false)}break;case"login-required":F(true);break;default:throw"Invalid value for onLoad"}}function y(){var E=f(a.location.href);if(E){w();a.history.replaceState({},null,E.newUrl);k(E,z);return}else{if(C){if(C.token||C.refreshToken){p(C.token,C.refreshToken,C.idToken,false);g.timeSkew=C.timeSkew||0;if(s.enable){w().success(function(){j().success(function(){z.setSuccess()}).error(function(){if(C.onLoad){A()}})})}else{z.setSuccess()}}else{if(C.onLoad){A()}else{z.setSuccess()}}}else{z.setSuccess()}}}B.success(y);B.error(function(){D.setError()});return D.promise};g.login=function(y){return m.login(y)};g.createLoginUrl=function(z){var C=e();var A=e();var D=m.redirectUri(z);if(z&&z.prompt){D+=(D.indexOf("?")==-1?"?":"&")+"prompt="+z.prompt}r.setItem("oauthState",JSON.stringify({state:C,nonce:A,redirectUri:encodeURIComponent(D)}));var B="auth";if(z&&z.action=="register"){B="registrations"}var y=l()+"/protocol/openid-connect/"+B+"?client_id="+encodeURIComponent(g.clientId)+"&redirect_uri="+encodeURIComponent(D)+"&state="+encodeURIComponent(C)+"&nonce="+encodeURIComponent(A)+"&response_mode="+encodeURIComponent(g.responseMode)+"&response_type="+encodeURIComponent(g.responseType);if(z&&z.prompt){y+="&prompt="+encodeURIComponent(z.prompt)}if(z&&z.loginHint){y+="&login_hint="+encodeURIComponent(z.loginHint)}if(z&&z.idpHint){y+="&kc_idp_hint="+encodeURIComponent(z.idpHint)}if(z&&z.scope){y+="&scope="+encodeURIComponent(z.scope)}if(z&&z.locale){y+="&ui_locales="+encodeURIComponent(z.locale)}return y};g.logout=function(y){return m.logout(y)};g.createLogoutUrl=function(z){var y=l()+"/protocol/openid-connect/logout?redirect_uri="+encodeURIComponent(m.redirectUri(z,false));return y};g.register=function(y){return m.register(y)};g.createRegisterUrl=function(y){if(!y){y={}}y.action="register";return g.createLoginUrl(y)};g.createAccountUrl=function(z){var y=l()+"/account?referrer="+encodeURIComponent(g.clientId)+"&referrer_uri="+encodeURIComponent(m.redirectUri(z));return y};g.accountManagement=function(){return m.accountManagement()};g.hasRealmRole=function(z){var y=g.realmAccess;return !!y&&y.roles.indexOf(z)>=0};g.hasResourceRole=function(A,z){if(!g.resourceAccess){return false}var y=g.resourceAccess[z||g.clientId];return !!y&&y.roles.indexOf(A)>=0};g.loadUserProfile=function(){var y=l()+"/account";var z=new XMLHttpRequest();z.open("GET",y,true);z.setRequestHeader("Accept","application/json");z.setRequestHeader("Authorization","bearer "+g.token);var A=d();z.onreadystatechange=function(){if(z.readyState==4){if(z.status==200){g.profile=JSON.parse(z.responseText);A.setSuccess(g.profile)}else{A.setError()}}};z.send();return A.promise};g.loadUserInfo=function(){var y=l()+"/protocol/openid-connect/userinfo";var z=new XMLHttpRequest();z.open("GET",y,true);z.setRequestHeader("Accept","application/json");z.setRequestHeader("Authorization","bearer "+g.token);var A=d();z.onreadystatechange=function(){if(z.readyState==4){if(z.status==200){g.userInfo=JSON.parse(z.responseText);A.setSuccess(g.userInfo)}else{A.setError()}}};z.send();return A.promise};g.isTokenExpired=function(y){if(!g.tokenParsed||(!g.refreshToken&&g.flow!="implicit")){throw"Not authenticated"}var z=g.tokenParsed.exp-(new Date().getTime()/1000)+g.timeSkew;if(y){z-=y}return z<0};g.updateToken=function(y){var B=d();if(!g.tokenParsed||!g.refreshToken){B.setError();return B.promise}y=y||5;var z=function(){if(!g.isTokenExpired(y)){B.setSuccess(false)}else{var F="grant_type=refresh_token&refresh_token="+g.refreshToken;var D=l()+"/protocol/openid-connect/token";q.push(B);if(q.length==1){var E=new XMLHttpRequest();E.open("POST",D,true);E.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(g.clientId&&g.clientSecret){E.setRequestHeader("Authorization","Basic "+btoa(g.clientId+":"+g.clientSecret))}else{F+="&client_id="+encodeURIComponent(g.clientId)}var C=new Date().getTime();E.onreadystatechange=function(){if(E.readyState==4){if(E.status==200){C=(C+new Date().getTime())/2;var H=JSON.parse(E.responseText);p(H.access_token,H.refresh_token,H.id_token,true);g.timeSkew=Math.floor(C/1000)-g.tokenParsed.iat;g.onAuthRefreshSuccess&&g.onAuthRefreshSuccess();for(var G=q.pop();G!=null;G=q.pop()){G.setSuccess(true)}}else{g.onAuthRefreshError&&g.onAuthRefreshError();for(var G=q.pop();G!=null;G=q.pop()){G.setError(true)}}}};E.send(F)}}};if(s.enable){var A=j();A.success(function(){z()}).error(function(){B.setError()})}else{z()}return B.promise};g.clearToken=function(){if(g.token){p(null,null,null,true);g.onAuthLogout&&g.onAuthLogout();if(g.loginRequired){g.login()}}};function l(){if(g.authServerUrl.charAt(g.authServerUrl.length-1)=="/"){return g.authServerUrl+"realms/"+encodeURIComponent(g.realm)}else{return g.authServerUrl+"/realms/"+encodeURIComponent(g.realm)}}function t(){if(!a.location.origin){return a.location.protocol+"//"+a.location.hostname+(a.location.port?":"+a.location.port:"")}else{return a.location.origin}}function k(E,H){var A=E.code;var F=E.error;var B=E.prompt;var z=new Date().getTime();if(F){if(B!="none"){g.onAuthError&&g.onAuthError();H&&H.setError()}else{H&&H.setSuccess()}return}else{if((g.flow!="standard")&&(E.access_token||E.id_token)){D(E.access_token,null,E.id_token,true)}}if((g.flow!="implicit")&&A){var C="code="+A+"&grant_type=authorization_code";var y=l()+"/protocol/openid-connect/token";var G=new XMLHttpRequest();G.open("POST",y,true);G.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(g.clientId&&g.clientSecret){G.setRequestHeader("Authorization","Basic "+btoa(g.clientId+":"+g.clientSecret))}else{C+="&client_id="+encodeURIComponent(g.clientId)}C+="&redirect_uri="+E.redirectUri;G.withCredentials=true;G.onreadystatechange=function(){if(G.readyState==4){if(G.status==200){var I=JSON.parse(G.responseText);D(I.access_token,I.refresh_token,I.id_token,g.flow==="standard")}else{g.onAuthError&&g.onAuthError();H&&H.setError()}}};G.send(C)}function D(I,J,L,K){z=(z+new Date().getTime())/2;p(I,J,L,true);if((g.tokenParsed&&g.tokenParsed.nonce!=E.storedNonce)||(g.refreshTokenParsed&&g.refreshTokenParsed.nonce!=E.storedNonce)||(g.idTokenParsed&&g.idTokenParsed.nonce!=E.storedNonce)){console.log("invalid nonce!");g.clearToken();H&&H.setError()}else{g.timeSkew=Math.floor(z/1000)-g.tokenParsed.iat;if(K){g.onAuthSuccess&&g.onAuthSuccess();H&&H.setSuccess()}}}}function h(A){var D=d();var z;if(!x){z="keycloak.json"}else{if(typeof x==="string"){z=x}}if(z){var C=new XMLHttpRequest();C.open("GET",z,true);C.setRequestHeader("Accept","application/json");C.onreadystatechange=function(){if(C.readyState==4){if(C.status==200){var E=JSON.parse(C.responseText);g.authServerUrl=E["auth-server-url"];g.realm=E.realm;g.clientId=E.resource;g.clientSecret=(E.credentials||{})["secret"];D.setSuccess()}else{D.setError()}}};C.send()}else{if(!x.url){var y=document.getElementsByTagName("script");for(var B=0;B<y.length;B++){if(y[B].src.match(/.*keycloak\.js/)){x.url=y[B].src.substr(0,y[B].src.indexOf("/js/keycloak.js"));break}}}if(!x.realm){throw"realm missing"}if(!x.clientId){throw"clientId missing"}g.authServerUrl=x.url;g.realm=x.realm;g.clientId=x.clientId;g.clientSecret=(x.credentials||{}).secret;D.setSuccess()}return D.promise}function p(B,A,E,y){if(g.tokenTimeoutHandle){clearTimeout(g.tokenTimeoutHandle);g.tokenTimeoutHandle=null}if(B){g.token=B;g.tokenParsed=n(B);var C=g.realm+"/"+g.tokenParsed.sub;if(g.tokenParsed.session_state){C=C+"/"+g.tokenParsed.session_state}g.sessionId=C;g.authenticated=true;g.subject=g.tokenParsed.sub;g.realmAccess=g.tokenParsed.realm_access;g.resourceAccess=g.tokenParsed.resource_access;if(g.onTokenExpired){var D=y?g.tokenParsed.iat:(new Date().getTime()/1000);var z=g.tokenParsed.exp-D;g.tokenTimeoutHandle=setTimeout(g.onTokenExpired,z*1000)}}else{delete g.token;delete g.tokenParsed;delete g.subject;delete g.realmAccess;delete g.resourceAccess;g.authenticated=false}if(A){g.refreshToken=A;g.refreshTokenParsed=n(A)}else{delete g.refreshToken;delete g.refreshTokenParsed}if(E){g.idToken=E;g.idTokenParsed=n(E)}else{delete g.idToken;delete g.idTokenParsed}}function n(y){y=y.split(".")[1];y=y.replace("/-/g","+");y=y.replace("/_/g","/");switch(y.length%4){case 0:break;case 2:y+="==";break;case 3:y+="=";break;default:throw"Invalid token"}y=(y+"===").slice(0,y.length+(y.length%4));y=y.replace(/-/g,"+").replace(/_/g,"/");y=decodeURIComponent(escape(atob(y)));y=JSON.parse(y);return y}function e(){var B=[];var y="0123456789abcdef";for(var z=0;z<36;z++){B[z]=y.substr(Math.floor(Math.random()*16),1)}B[14]="4";B[19]=y.substr((B[19]&3)|8,1);B[8]=B[13]=B[18]=B[23]="-";var A=B.join("");return A}g.callback_id=0;function o(){var y="<id: "+(g.callback_id++)+(Math.random())+">";return y}function f(A){var y=new i(A,g.responseMode).parseUri();var B=r.getItem("oauthState");var z=B&&JSON.parse(B);if(z&&(y.code||y.error||y.access_token||y.id_token)&&y.state&&y.state==z.state){r.removeItem("oauthState");y.redirectUri=z.redirectUri;y.storedNonce=z.nonce;if(y.fragment){y.newUrl+="#"+y.fragment}return y}}function d(){var y={setSuccess:function(z){y.success=true;y.result=z;if(y.successCallback){y.successCallback(z)}},setError:function(z){y.error=true;y.result=z;if(y.errorCallback){y.errorCallback(z)}},promise:{success:function(z){if(y.success){z(y.result)}else{if(!y.error){y.successCallback=z}}return y.promise},error:function(z){if(y.error){z(y.result)}else{if(!y.success){y.errorCallback=z}}return y.promise}}};return y}function w(){var C=d();if(!s.enable){C.setSuccess();return C.promise}if(s.iframe){C.setSuccess();return C.promise}var A=document.createElement("iframe");s.iframe=A;A.onload=function(){var D=l();if(D.charAt(0)==="/"){s.iframeOrigin=t()}else{s.iframeOrigin=D.substring(0,D.indexOf("/",8))}C.setSuccess();setTimeout(y,s.interval*1000)};var B=l()+"/protocol/openid-connect/login-status-iframe.html?client_id="+encodeURIComponent(g.clientId)+"&origin="+t();A.setAttribute("src",B);A.style.display="none";document.body.appendChild(A);var z=function(D){if(D.origin!==s.iframeOrigin){return}var E=JSON.parse(D.data);var F=s.callbackMap[E.callbackId];delete s.callbackMap[E.callbackId];if((!g.sessionId||g.sessionId==E.session)&&E.loggedIn){F.setSuccess()}else{g.clearToken();F.setError()}};a.addEventListener("message",z,false);var y=function(){j();if(g.token){setTimeout(y,s.interval*1000)}};return C.promise}function j(){var A=d();if(s.iframe&&s.iframeOrigin){var z={};z.callbackId=o();s.callbackMap[z.callbackId]=A;var y=s.iframeOrigin;s.iframe.contentWindow.postMessage(JSON.stringify(z),y)}else{A.setSuccess()}return A.promise}function u(y){if(!y||y=="default"){return{login:function(z){a.location.href=g.createLoginUrl(z);return d().promise},logout:function(z){a.location.href=g.createLogoutUrl(z);return d().promise},register:function(z){a.location.href=g.createRegisterUrl(z);return d().promise},accountManagement:function(){a.location.href=g.createAccountUrl();return d().promise},redirectUri:function(z,A){if(arguments.length==1){A=true}if(z&&z.redirectUri){return z.redirectUri}else{if(g.redirectUri){return g.redirectUri}else{var B=location.href;if(location.hash&&A){B=B.substring(0,location.href.indexOf("#"));B+=(B.indexOf("?")==-1?"?":"&")+"redirect_fragment="+encodeURIComponent(location.hash.substring(1))}return B}}}}}if(y=="cordova"){s.enable=false;return{login:function(z){var E=d();var D="location=no";if(z&&z.prompt=="none"){D+=",hidden=yes"}var C=g.createLoginUrl(z);var B=a.open(C,"_blank",D);var A=false;B.addEventListener("loadstart",function(F){if(F.url.indexOf("http://localhost")==0){var G=f(F.url);k(G,E);B.close();A=true}});B.addEventListener("loaderror",function(F){if(!A){if(F.url.indexOf("http://localhost")==0){var G=f(F.url);k(G,E);B.close();A=true}else{E.setError();B.close()}}});return E.promise},logout:function(B){var D=d();var z=g.createLogoutUrl(B);var C=a.open(z,"_blank","location=no,hidden=yes");var A;C.addEventListener("loadstart",function(E){if(E.url.indexOf("http://localhost")==0){C.close()}});C.addEventListener("loaderror",function(E){if(E.url.indexOf("http://localhost")==0){C.close()}else{A=true;C.close()}});C.addEventListener("exit",function(E){if(A){D.setError()}else{g.clearToken();D.setSuccess()}});return D.promise},register:function(){var z=g.createRegisterUrl();var A=a.open(z,"_blank","location=no");A.addEventListener("loadstart",function(B){if(B.url.indexOf("http://localhost")==0){A.close()}})},accountManagement:function(){var z=g.createAccountUrl();var A=a.open(z,"_blank","location=no");A.addEventListener("loadstart",function(B){if(B.url.indexOf("http://localhost")==0){A.close()}})},redirectUri:function(z){return"http://localhost"}}}throw"invalid adapter type: "+y}var v=function(){if(!(this instanceof v)){return new v()}var C=this;var y=function(){if(typeof localStorage==="undefined"){return true}try{var D="@@keycloak-session-storage/test";localStorage.setItem(D,"test");localStorage.removeItem(D);return false}catch(E){return true}};C.setItem=function(D,E){if(y()){A(D,E,B(5))}else{localStorage.setItem(D,E)}};C.getItem=function(D){if(y()){return z(D)}return localStorage.getItem(D)};C.removeItem=function(D){if(typeof localStorage!=="undefined"){try{localStorage.removeItem(D)}catch(E){}}A(D,"",B(-100))};var B=function(D){var E=new Date();E.setTime(E.getTime()+(D*60*1000));return E};var z=function(G){var E=G+"=";var D=document.cookie.split(";");for(var F=0;F<D.length;F++){var H=D[F];while(H.charAt(0)==" "){H=H.substring(1)}if(H.indexOf(E)==0){return H.substring(E.length,H.length)}}return""};var A=function(F,G,D){var E=F+"="+G+"; expires="+D.toUTCString()+"; ";document.cookie=E}};var i=function(y,B){if(!(this instanceof i)){return new i(y,B)}var D=this;var z=function(){var H=null;var I=null;var G=null;var E=y.indexOf("?");var F=y.indexOf("#",E+1);if(E==-1&&F==-1){H=y}else{if(E!=-1){H=y.substring(0,E);I=y.substring(E+1);if(F!=-1){F=I.indexOf("#");G=I.substring(F+1);I=I.substring(0,F)}}else{H=y.substring(0,F);G=y.substring(F+1)}}return{baseUri:H,queryString:I,fragmentString:G}};var A=function(K){var E={};var J=K.split("&");for(var F=0;F<J.length;F++){var H=J[F].split("=");var G=decodeURIComponent(H[0]);var I=decodeURIComponent(H[1]);E[G]=I}return E};var C=function(H,I,E){var G=["code","error","state"];for(var F=0;F<G.length;F++){if(H===G[F]){E[H]=I;return true}}return false};D.parseUri=function(){var I=z();var G={};if(I.queryString){G=A(I.queryString)}var E={newUrl:I.baseUri};for(var H in G){switch(H){case"redirect_fragment":E.fragment=G[H];break;case"prompt":E.prompt=G[H];break;default:if(B!="query"||!C(H,G[H],E)){E.newUrl+=(E.newUrl.indexOf("?")==-1?"?":"&")+H+"="+G[H]}break}}if(B==="fragment"){var F={};if(I.fragmentString){F=A(I.fragmentString)}for(var H in F){E[H]=F[H]}}return E}}};if(typeof module==="object"&&module&&typeof module.exports==="object"){module.exports=b}else{a.Keycloak=b;if(typeof define==="function"&&define.amd){define("keycloak",[],function(){return b})}}})(window);
{
"name": "keycloak-js",
"version": "1.8.0-cr.3",
"version": "1.9.5",
"description": "Keycloak Adapter",

@@ -5,0 +5,0 @@ "main": "dist/keycloak.js",

keycloak-adapter-bower
======================
A [Bower](http://bower.io) project for the [Keycloak](http://keycloak.jboss.org/) [javascript adapter](http://docs.jboss.org/keycloak/docs/1.0-beta-3/userguide/html/ch07.html#javascript-adapter).
A [Bower](http://bower.io) project for the [Keycloak](http://keycloak.jboss.org/) [javascript adapter](http://keycloak.github.io/docs/userguide/keycloak-server/html/ch08.html#javascript-adapter).

@@ -6,0 +6,0 @@ # Usage

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc