/*#################*\
Issuer validation
\*#################*/
sel1 = select JWT_PROVIDER_NAME from JWT_PROVIDERS where ISSUER_NAME=''|| v_issuer_name ||'';
select count(*) into v_count1 from :sel1;
--No issuer - JWT PROVIDER creation
if v_count1=0 then
EXECUTE IMMEDIATE 'CREATE JWT PROVIDER COCKPIT_XSA WITH ISSUER '''|| v_issuer_name ||''' CLAIM ''user_name'' AS EXTERNAL IDENTITY';
end if;
--One issuer with the issuer token. Check to see if it has the correct name.
if v_count1 = 1 then
v_jwt_name = :sel1.JWT_PROVIDER_NAME[1];
if( v_jwt_name != 'COCKPIT_XSA' ) then
v_dropJwt := 'DROP JWT PROVIDER '||v_jwt_name||'';
EXEC(:v_dropJwt);
EXECUTE IMMEDIATE 'CREATE JWT PROVIDER COCKPIT_XSA WITH ISSUER '''|| v_issuer_name ||''' CLAIM ''user_name'' AS EXTERNAL IDENTITY';
end if;
end if;
/*###########*\
Main script
\*###########*/
sel2 = select USER_NAME, VALUE from USER_PARAMETERS where PARAMETER='EMAIL ADDRESS';
select count(*) into v_count2 from :sel2;
for v_i in 1..v_count2 do
v_username = :sel2.USER_NAME[v_i];
v_value = :sel2.VALUE[v_i];
v_AlterUser := 'ALTER USER '||v_username||' ADD IDENTITY '''||v_value||''' FOR JWT PROVIDER COCKPIT_XSA';
EXEC(:v_AlterUser);
v_AlterUser := 'ALTER USER '||v_username||' ENABLE JWT;';
EXEC(:v_AlterUser);
end for;
DO
BEGIN
/*################*\
Define variables
\*################*/
declare v_count1 integer;
declare v_issuer_name varchar(512) := '<JWT_ISSUER_ID>';
declare v_jwt_name varchar(256);
declare v_dropJwt varchar(256);
declare v_count2 integer;
declare v_i integer;
declare v_username varchar(256);
declare v_value varchar(256);
declare v_AlterUser varchar(256);
/*#################*\
Issuer validation
\*#################*/
sel1 = select JWT_PROVIDER_NAME from JWT_PROVIDERS where ISSUER_NAME=''|| v_issuer_name ||'';
select count(*) into v_count1 from :sel1;
--No issuer - JWT PROVIDER creation
if v_count1=0 then
EXECUTE IMMEDIATE 'CREATE JWT PROVIDER COCKPIT_XSA WITH ISSUER '''|| v_issuer_name ||''' CLAIM ''user_name'' AS EXTERNAL IDENTITY';
end if;
--One issuer with the issuer token. Check to see if it has the correct name.
if v_count1 = 1 then
v_jwt_name = :sel1.JWT_PROVIDER_NAME[1];
if( v_jwt_name != 'COCKPIT_XSA' ) then
v_dropJwt := 'DROP JWT PROVIDER '||v_jwt_name||'';
EXEC(:v_dropJwt);
EXECUTE IMMEDIATE 'CREATE JWT PROVIDER COCKPIT_XSA WITH ISSUER '''|| v_issuer_name ||''' CLAIM ''user_name'' AS EXTERNAL IDENTITY';
end if;
end if;
/*###########*\
Main script
\*###########*/
sel2 = select USER_NAME, VALUE from USER_PARAMETERS where PARAMETER='EMAIL ADDRESS';
select count(*) into v_count2 from :sel2;
for v_i in 1..v_count2 do
v_username = :sel2.USER_NAME[v_i];
v_value = :sel2.VALUE[v_i];
v_AlterUser := 'ALTER USER '||v_username||' ADD IDENTITY '''||v_value||''' FOR JWT PROVIDER COCKPIT_XSA';
EXEC(:v_AlterUser);
v_AlterUser := 'ALTER USER '||v_username||' ENABLE JWT;';
EXEC(:v_AlterUser);
end for;
END;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
10 | |
5 | |
5 | |
4 | |
4 | |
4 | |
3 | |
3 | |
3 |