001: /*
002: * The contents of this file are subject to the Sapient Public License
003: * Version 1.0 (the "License"); you may not use this file except in compliance
004: * with the License. You may obtain a copy of the License at
005: * http://carbon.sf.net/License.html.
006: *
007: * Software distributed under the License is distributed on an "AS IS" basis,
008: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
009: * the specific language governing rights and limitations under the License.
010: *
011: * The Original Code is The Carbon Component Framework.
012: *
013: * The Initial Developer of the Original Code is Sapient Corporation
014: *
015: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
016: */
017:
018: package org.sape.carbon.services.security.management.rdbms;
019:
020: import org.sape.carbon.core.component.ComponentConfiguration;
021: import org.sape.carbon.services.sql.StatementFactory;
022: import org.sape.carbon.services.sql.connection.ConnectionFactory;
023:
024: /**
025: * Configuration interface for the RdbmsImplementation of the User Manager
026: * Service.
027: *
028: * <P>
029: * The configuration contains a list names for the various queries to be
030: * executed by the RDBMS server as well as a reference to a connection
031: * factory and statement factory the service can use to query
032: * information.
033: * </p>
034: *
035: * @author $Author: dvoet $ $Date: 2003/10/28 19:02:01 $
036: * @version $Revision: 1.8 $
037: *
038: * @stereotype interface
039: * @since carbon 1.2
040: */
041: public interface RdbmsUserManagerConfiguration extends
042: ComponentConfiguration {
043: /** Default - retreiveUserQuery. */
044: String RetreiveUserQueryName = "retreiveUserQuery";
045:
046: /** Default - retreiveUserQuery. */
047: String AuthenticateUserQueryName = "authenticateUserQuery";
048:
049: /** Default - retreiveGroupQuery. */
050: String RetreiveGroupQueryName = "retreiveGroupQuery";
051:
052: /** Default - retreiveGroupsForUserQuery. */
053: String RetreiveGroupsForUserQueryName = "retreiveGroupsForUserQuery";
054:
055: /** Default - retreiveGroupsForGroupsQuery. */
056: String RetreiveGroupsForGroupsQueryName = "retreiveGroupsForGroupsQuery";
057:
058: /** Default - createUserQuery. */
059: String CreateUserQueryName = "createUserQuery";
060:
061: /** Default - removeUserQuery. */
062: String RemoveUserQueryName = "removeUserQuery";
063:
064: /** Default - updateCredentialQuery. */
065: String UpdateCredentialQueryName = "updateCredentialQuery";
066:
067: /** Default - createGroupQuery. */
068: String CreateGroupQueryName = "createGroupQuery";
069:
070: /** Default - removeGroupQuery. */
071: String RemoveGroupQueryName = "removeGroupQuery";
072:
073: /** Default - addPrincipalToGroupQuery. */
074: String AddPrincipalToGroupQueryName = "addPrincipalToGroupQuery";
075:
076: /** Default - removePrincipalFromGroupQuery. */
077: String RemovePrincipalFromGroupQueryName = "removePrincipalFromGroupQuery";
078:
079: /** Default - retreiveMemebersQuery. */
080: String RetreiveMemebersQueryName = "retreiveMemebersQuery";
081:
082: /** Default - removeAllRelationshipsQuery */
083: String RemoveAllRelationshipsQueryName = "removeAllRelationshipsQuery";
084:
085: /** Default - retreiveAllUsersQuery. */
086: String RetreiveAllUsersQuery = "retreiveAllUsersQuery";
087:
088: /** Default - retreiveAllGroupsQuery. */
089: String RetreiveAllGroupsQuery = "retreiveAllGroupsQuery";
090:
091: /** Default - createCredentialQuery. */
092: String CreateCredentialQueryName = "createCredentialQuery";
093:
094: /** Default - retreiveUserPrimaryKeyQuery. */
095: String RetreiveUserPrimaryKeyQueryName = "retreiveUserPrimaryKeyQuery";
096:
097: /** Default - retreiveGroupPrimaryKeyQuery. */
098: String RetreiveGroupPrimaryKeyQueryName = "retreiveGroupPrimaryKeyQuery";
099:
100: /** Default - removeCredentialQuery. */
101: String RemoveCredentialQueryName = "removeCredentialQuery";
102:
103: String[] CreateUserBindParameters = new String[] { "Credentials" };
104:
105: /**
106: * Returns the ConnectionFactory used to execute queries against. This
107: * is needed for executing transactions against the connection and
108: * allows for a great optimization of the queries.
109: *
110: * @return connection factory for this manager
111: */
112: ConnectionFactory getConnectionFactory();
113:
114: /**
115: * Returns the StatementFactory used to execute queries against the
116: * database for the management of a user store.
117: *
118: * @return statement factory with all the statements
119: */
120: StatementFactory getStatementFactory();
121:
122: /**
123: * (Optional) Returns the name of the query to execute to find a user.
124: *
125: * <p>
126: * The bind parameters on the query are:
127: * </p>
128: *
129: * <ol>
130: * <li>
131: * The userName parameter
132: * </li>
133: * </ol>
134: *
135: *
136: * @return name of the query
137: */
138: String getRetreiveUserQueryName();
139:
140: /**
141: * (Optional) Returns the name of the query to execute to authenticate
142: * a user.
143: *
144: * <p>
145: * The bind parameters on the query are:
146: * </p>
147: *
148: * <ol>
149: * <li>
150: * The userName parameter
151: * </li>
152: * <li>
153: * The credential parameter
154: * </li>
155: * </ol>
156: *
157: *
158: * @return name of the query
159: */
160: String getAuthenticateUserQueryName();
161:
162: /**
163: * (Optional) Returns the name of the query to execute to find a
164: * group.
165: *
166: * <p>
167: * The bind parameters on the query are:
168: * </p>
169: *
170: * <ol>
171: * <li>
172: * The groupName parameter
173: * </li>
174: * </ol>
175: *
176: *
177: * @return name of the query
178: */
179: String getRetreiveGroupQueryName();
180:
181: /**
182: * (Optional) Returns the name of the query to execute to find a
183: * group.
184: *
185: * <p>
186: * The bind parameters on the query are:
187: * </p>
188: *
189: * <ol>
190: * <li>
191: * The username parameter
192: * </li>
193: * </ol>
194: *
195: *
196: * @return name of the query
197: */
198: String getRetreiveGroupsForUserQueryName();
199:
200: /**
201: * (Optional) Returns the name of the query to execute to find a
202: * group.
203: *
204: * <p>
205: * The bind parameters on the query are:
206: * </p>
207: *
208: * <ol>
209: * <li>
210: * The groupname parameter
211: * </li>
212: * </ol>
213: *
214: *
215: * @return name of the query
216: */
217: String getRetreiveGroupsForGroupsQueryName();
218:
219: /**
220: * (Optional) Returns the name of the query to execute to add a user.
221: *
222: * <p>
223: * The bind parameters on the query are:
224: * </p>
225: *
226: * <ol>
227: * <li>
228: * The userName parameter
229: * </li>
230: * </ol>
231: *
232: *
233: * @return name of the query
234: */
235: String getCreateUserQueryName();
236:
237: /**
238: * (Optional) Returns the name of the query to execute to remove a
239: * user.
240: *
241: * <p>
242: * The bind parameters on the query are:
243: * </p>
244: *
245: * <ol>
246: * <li>
247: * The primary key for the user parameter
248: * </li>
249: * </ol>
250: *
251: *
252: * @return name of the query
253: */
254: String getRemoveUserQueryName();
255:
256: /**
257: * (Optional) Returns the name of the query to execute to update a
258: * user's credential.
259: *
260: * <p>
261: * The bind parameters on the query are:
262: * </p>
263: *
264: * <ol>
265: * <li>
266: * The credential parameter
267: * </li>
268: * <li>
269: * The primary key of the user
270: * </li>
271: * </ol>
272: *
273: *
274: * @return name of the query
275: */
276: String getUpdateCredentialQueryName();
277:
278: /**
279: * (Optional) Returns the name of the query to execute to add a group.
280: *
281: * <p>
282: * The bind parameters on the query are:
283: * </p>
284: *
285: * <ol>
286: * <li>
287: * The groupName parameter
288: * </li>
289: * </ol>
290: *
291: *
292: * @return name of the query
293: */
294: String getCreateGroupQueryName();
295:
296: /**
297: * (Optional) Returns the name of the query to execute to remove a
298: * group.
299: *
300: * <p>
301: * The bind parameters on the query are:
302: * </p>
303: *
304: * <ol>
305: * <li>
306: * The primary key for the group
307: * </li>
308: * </ol>
309: *
310: *
311: * @return name of the query
312: */
313: String getRemoveGroupQueryName();
314:
315: /**
316: * (Optional) Returns the name of the query to execute to add a user
317: * to a group.
318: *
319: * <p>
320: * The bind parameters on the query are:
321: * </p>
322: *
323: * <ol>
324: * <li>
325: * The primary key of the principal
326: * </li>
327: * <li>
328: * The primary key of the group
329: * </li>
330: * </ol>
331: *
332: *
333: * @return name of the query
334: */
335: String getAddPrincipalToGroupQueryName();
336:
337: /**
338: * (Optional) Returns the name of the query to execute to retreive the
339: * members of a group.
340: *
341: * <p>
342: * The bind parameters on the query are:
343: * </p>
344: *
345: * <ol>
346: * <li>
347: * The group name parameter
348: * </li>
349: * </ol>
350: *
351: *
352: * @return name of the query
353: */
354: String getRetreiveMemebersQueryName();
355:
356: /**
357: * (Optional) Returns the name of the query to execute to remove a
358: * user from a group.
359: *
360: * <p>
361: * The bind parameters on the query are:
362: * </p>
363: *
364: * <ol>
365: * <li>
366: * The primary key of the principal
367: * </li>
368: * <li>
369: * The primary key of the group
370: * </li>
371: * </ol>
372: *
373: *
374: * @return name of the query
375: */
376: String getRemovePrincipalFromGroupQueryName();
377:
378: /**
379: * (Optional) Returns the name of the query to execute to remove all
380: * relationships a principal participates in.
381: *
382: * <p>
383: * The bind parameters on the query are:
384: * </p>
385: *
386: * <ol>
387: * <li>
388: * The primary key of the principal
389: * </li>
390: * <li>
391: * The primary key of the principal
392: * </li>
393: * </ol>
394: *
395: *
396: * @return name of the query
397: */
398: String getRemoveAllRelationshipsQueryName();
399:
400: /**
401: * (Optional) Returns the name of the query to execute to retreive all
402: * users from the database.
403: *
404: * <p>
405: * There are no bind parameters for this query:
406: * </p>
407: *
408: * @return name of the query
409: */
410: String getRetreiveAllUsersQuery();
411:
412: /**
413: * (Optional) Returns the name of the query to execute to retreive all
414: * groups from the database.
415: *
416: * <p>
417: * There are no bind parameters for this query:
418: * </p>
419: *
420: * @return name of the query
421: */
422: String getRetreiveAllGroupsQuery();
423:
424: /**
425: * (Optional) Returns the name of the query to execute to create a
426: * credential for a user.
427: *
428: * <p>
429: * The bind parameters on the query are:
430: * </p>
431: *
432: * <ol>
433: * <li>
434: * The primary key of the principal
435: * </li>
436: * <li>
437: * The credential
438: * </li>
439: * </ol>
440: *
441: *
442: * @return name of the query
443: */
444: String getCreateCredentialQueryName();
445:
446: /**
447: * (Optional) Returns the name of the query to execute to get back a
448: * user's primary key
449: *
450: * <p>
451: * The bind parameters on the query are:
452: * </p>
453: *
454: * <ol>
455: * <li>
456: * The name of principal to get the surrogate key for
457: * </li>
458: * </ol>
459: *
460: *
461: * @return name of the query
462: */
463: String getRetreiveUserPrimaryKeyQueryName();
464:
465: /**
466: * (Optional) Returns the name of the query to execute to get back a
467: * group's primary key
468: *
469: * <p>
470: * The bind parameters on the query are:
471: * </p>
472: *
473: * <ol>
474: * <li>
475: * The name of group to get the surrogate key for
476: * </li>
477: * </ol>
478: *
479: *
480: * @return name of the query
481: */
482: String getRetreiveGroupPrimaryKeyQueryName();
483:
484: /**
485: * (Optional) Returns the name of the query to execute to remove a
486: * users credential information.
487: *
488: * <p>
489: * The bind parameters on the query are:
490: * </p>
491: *
492: * <ol>
493: * <li>
494: * The primary key of the user to remove the credential from
495: * </li>
496: * </ol>
497: *
498: *
499: * @return name of the query
500: */
501: String getRemoveCredentialQueryName();
502:
503: String[] getCreateUserBindParameters();
504:
505: }
|