39: ** ldap: ldap sesion
40: ** dn : OiD Entry
41: ** attrName: attributeName
42: ** filterExp: additional filter.
43: ** Exceptions: DBMS_LDAP exceptions
44: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
45: **
46: */
47: function getAttribute(ldap in out nocopy dbms_ldap.session,dn in varchar2, attrName in varchar2, filterExp in varchar2 default 'objectclass=*')
40: ** dn : OiD Entry
41: ** attrName: attributeName
42: ** filterExp: additional filter.
43: ** Exceptions: DBMS_LDAP exceptions
44: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
45: **
46: */
47: function getAttribute(ldap in out nocopy dbms_ldap.session,dn in varchar2, attrName in varchar2, filterExp in varchar2 default 'objectclass=*')
48: return varchar2
43: ** Exceptions: DBMS_LDAP exceptions
44: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
45: **
46: */
47: function getAttribute(ldap in out nocopy dbms_ldap.session,dn in varchar2, attrName in varchar2, filterExp in varchar2 default 'objectclass=*')
48: return varchar2
49: is
50: result pls_integer;
51: l_attrs dbms_ldap.string_collection;
47: function getAttribute(ldap in out nocopy dbms_ldap.session,dn in varchar2, attrName in varchar2, filterExp in varchar2 default 'objectclass=*')
48: return varchar2
49: is
50: result pls_integer;
51: l_attrs dbms_ldap.string_collection;
52: l_message dbms_ldap.message := NULL;
53: l_entry dbms_ldap.message := NULL;
54: l_result varchar2(4000);
55:
48: return varchar2
49: is
50: result pls_integer;
51: l_attrs dbms_ldap.string_collection;
52: l_message dbms_ldap.message := NULL;
53: l_entry dbms_ldap.message := NULL;
54: l_result varchar2(4000);
55:
56: BEGIN
49: is
50: result pls_integer;
51: l_attrs dbms_ldap.string_collection;
52: l_message dbms_ldap.message := NULL;
53: l_entry dbms_ldap.message := NULL;
54: l_result varchar2(4000);
55:
56: BEGIN
57: l_attrs(0):= attrName;
54: l_result varchar2(4000);
55:
56: BEGIN
57: l_attrs(0):= attrName;
58: result := dbms_ldap.search_s(ld => ldap
59: , base => dn
60: , scope => dbms_ldap.SCOPE_BASE
61: , filter => filterExp
62: , attrs => l_attrs
56: BEGIN
57: l_attrs(0):= attrName;
58: result := dbms_ldap.search_s(ld => ldap
59: , base => dn
60: , scope => dbms_ldap.SCOPE_BASE
61: , filter => filterExp
62: , attrs => l_attrs
63: , attronly => 0
64: , res => l_message);
61: , filter => filterExp
62: , attrs => l_attrs
63: , attronly => 0
64: , res => l_message);
65: l_entry := dbms_ldap.first_entry(ldap, l_message);
66: if (l_entry is null ) then
67: return null;
68: end if;
69: l_attrs := dbms_ldap.get_values(ldap, l_entry, attrName);
65: l_entry := dbms_ldap.first_entry(ldap, l_message);
66: if (l_entry is null ) then
67: return null;
68: end if;
69: l_attrs := dbms_ldap.get_values(ldap, l_entry, attrName);
70: l_result := l_attrs(0);
71: return l_result;
72: -- Bug 6129943
73: exception when dbms_ldap.general_error then
69: l_attrs := dbms_ldap.get_values(ldap, l_entry, attrName);
70: l_result := l_attrs(0);
71: return l_result;
72: -- Bug 6129943
73: exception when dbms_ldap.general_error then
74: return null;
75: when others then
76: raise;
77: END getAttribute;
84: ** Parameters :
85: ** ldap: ldap sesion
86: ** dn : OiD Entry
87: ** attrName: attributeName - multivalued
88: ** Exceptions: DBMS_LDAP exceptions
89: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
90: **
91: */
92: function parse_ops(ldap in out nocopy dbms_ldap.session, dn in varchar2, attrname in varchar2)
85: ** ldap: ldap sesion
86: ** dn : OiD Entry
87: ** attrName: attributeName - multivalued
88: ** Exceptions: DBMS_LDAP exceptions
89: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
90: **
91: */
92: function parse_ops(ldap in out nocopy dbms_ldap.session, dn in varchar2, attrname in varchar2)
93: return permited_operation
88: ** Exceptions: DBMS_LDAP exceptions
89: ** NOte that this DBMS_LDAP exception maybe risen by other reasons
90: **
91: */
92: function parse_ops(ldap in out nocopy dbms_ldap.session, dn in varchar2, attrname in varchar2)
93: return permited_operation
94: is
95: r permited_operation;
96: l_result pls_integer;
93: return permited_operation
94: is
95: r permited_operation;
96: l_result pls_integer;
97: l_attrs dbms_ldap.string_collection;
98: l_entry dbms_ldap.message;
99: l_message dbms_ldap.message;
100: vals dbms_ldap.string_collection;
101: i pls_integer;
94: is
95: r permited_operation;
96: l_result pls_integer;
97: l_attrs dbms_ldap.string_collection;
98: l_entry dbms_ldap.message;
99: l_message dbms_ldap.message;
100: vals dbms_ldap.string_collection;
101: i pls_integer;
102: i1 pls_integer;
95: r permited_operation;
96: l_result pls_integer;
97: l_attrs dbms_ldap.string_collection;
98: l_entry dbms_ldap.message;
99: l_message dbms_ldap.message;
100: vals dbms_ldap.string_collection;
101: i pls_integer;
102: i1 pls_integer;
103: i2 pls_integer;
96: l_result pls_integer;
97: l_attrs dbms_ldap.string_collection;
98: l_entry dbms_ldap.message;
99: l_message dbms_ldap.message;
100: vals dbms_ldap.string_collection;
101: i pls_integer;
102: i1 pls_integer;
103: i2 pls_integer;
104: i3 pls_integer;
118: r.subscription_delete :=null;
119: r.subscription_update:=null;
120: r.enabled := true; -- else this method shouldn't had been called
121: l_attrs(0) := attrname;
122: l_result := dbms_ldap.search_s(ld => ldap,
123: base => dn,
124: scope => dbms_ldap.SCOPE_BASE,
125: filter => 'objectclass=*',
126: attrs => l_attrs,
120: r.enabled := true; -- else this method shouldn't had been called
121: l_attrs(0) := attrname;
122: l_result := dbms_ldap.search_s(ld => ldap,
123: base => dn,
124: scope => dbms_ldap.SCOPE_BASE,
125: filter => 'objectclass=*',
126: attrs => l_attrs,
127: attronly => 0,
128: res => l_message);
125: filter => 'objectclass=*',
126: attrs => l_attrs,
127: attronly => 0,
128: res => l_message);
129: l_entry := dbms_ldap.first_entry(ldap,l_message);
130: vals := dbms_ldap.get_values(ldap,l_entry,attrname);
131: for i in vals.first..vals.last loop
132: v2 :=vals(i);
133: i1 := instr(vals(i),':',1);
126: attrs => l_attrs,
127: attronly => 0,
128: res => l_message);
129: l_entry := dbms_ldap.first_entry(ldap,l_message);
130: vals := dbms_ldap.get_values(ldap,l_entry,attrname);
131: for i in vals.first..vals.last loop
132: v2 :=vals(i);
133: i1 := instr(vals(i),':',1);
134: i2 := instr(vals(i),':',i1+1);
179: ** Parameters :
180: ** r : realm. The filed r.dn is used to start
181: ** dn : OiD Entry
182: ** attrName: attributeName - multivalued
183: ** Exceptions: DBMS_LDAP exceptions,
184: ** NO_DATA_FOUND : if the dn is not at realm.
185: **
186: */
187:
188: procedure load_realm( r in out nocopy realm_type)
189:
190: is
191: flag pls_integer;
192: ldap dbms_ldap.session;
193: appdn varchar2(4000);
194: appguid raw(16);
195: provProfileDn varchar2(4000);
196: guid raw(16);
297: ** Parameters :
298: ** r : realm. The filed r.dn is used to start
299: ** dn : OiD Entry
300: ** attrName: attributeName - multivalued
301: ** Exceptions: DBMS_LDAP exceptions,
302: ** NO_DATA_FOUND : if the dn is not at realm.
303: **
304: */
305:
323: (son IN VARCHAR2,
324: parent IN VARCHAR2)
325: RETURN BOOLEAN
326: IS
327: l1 dbms_ldap.string_collection := dbms_ldap.explode_dn(upper(son),0);
328: l2 dbms_ldap.string_collection := dbms_ldap.explode_dn(upper(parent),0);
329: d pls_integer;
330: i pls_integer;
331: BEGIN
324: parent IN VARCHAR2)
325: RETURN BOOLEAN
326: IS
327: l1 dbms_ldap.string_collection := dbms_ldap.explode_dn(upper(son),0);
328: l2 dbms_ldap.string_collection := dbms_ldap.explode_dn(upper(parent),0);
329: d pls_integer;
330: i pls_integer;
331: BEGIN
332: d := l1.count - l2.count;
340:
341: function getUserRealmIndex(dn in varchar2)
342: return pls_integer
343: is
344: searchBase dbms_ldap.string_collection;
345: BEGIN
346: for r in realm_table.first .. realm_table.last loop
347: begin
348: searchBase := getRealmSearchBaseList(r);
356: end loop;
357: return -1;
358: END getUserRealmIndex;
359:
360: function getRealmSearchBaseList( realm_idx in pls_integer ) return dbms_ldap.string_collection
361: is
362:
363: emptyCollection dbms_ldap.string_collection;
364: ret dbms_ldap.string_collection;
359:
360: function getRealmSearchBaseList( realm_idx in pls_integer ) return dbms_ldap.string_collection
361: is
362:
363: emptyCollection dbms_ldap.string_collection;
364: ret dbms_ldap.string_collection;
365: BEGIN
366: if (realm_idx>=0) THEN
367: ret:= realm_table(realm_idx).ldap_data.data('orclcommonusersearchbase');
360: function getRealmSearchBaseList( realm_idx in pls_integer ) return dbms_ldap.string_collection
361: is
362:
363: emptyCollection dbms_ldap.string_collection;
364: ret dbms_ldap.string_collection;
365: BEGIN
366: if (realm_idx>=0) THEN
367: ret:= realm_table(realm_idx).ldap_data.data('orclcommonusersearchbase');
368: return ret;
392: ** Desc : Given a DN , returns its index in the cache realm_table.
393: ** If is not in the cache, will call add_realm.
394: ** Parameters :
395: ** dn : OiD Entry
396: ** Exceptions: DBMS_LDAP exceptions,
397: ** NO_DATA_FOUND : if the dn is not at realm.
398: **
399: */
400:
815: END get_user_or_site_profile;
816:
817: function getGuidRealm(l_guid FND_USER.user_guid%type) return varchar2
818: IS
819: ldap dbms_ldap.session;
820: realm_idx pls_integer;
821: dn varchar2(4000);
822: flag pls_integer;
823: l_module_source varchar2(1000);
866:
867:
868:
869:
870: function getDefaultRealm(ldap in out nocopy dbms_ldap.session )
871: return varchar2
872: IS
873: flag pls_integer;
874: l_module_source varchar2(1000) ;
927: function getDefaultRealm
928: return varchar2
929: IS
930: flag pls_integer;
931: ldap dbms_ldap.session;
932: l_module_source varchar2(1000) ;
933: l_session_flag boolean := false;
934:
935: BEGIN
975: END getDefaultRealm;
976:
977: PROCEDURE init
978: is
979: realms dbms_ldap.string_collection;
980: r varchar2(4000);
981: i pls_integer;
982: BEGIN
983: