01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.auth;
18:
19: import java.util.Map;
20:
21: /**
22: * This is the central component of Cocoon Authentication. It controls all applications
23: * defined in the current Cocoon instance and provides ways to authenticate
24: * a user.
25: *
26: * @version $Id: ApplicationManager.java 433543 2006-08-22 06:22:54Z crossley $
27: */
28: public interface ApplicationManager {
29:
30: /** The string used to store the user in the object model and the prefix
31: * for the session. */
32: String USER = "cauth-user";
33:
34: /** The string used to store the application in the object model. */
35: String APPLICATION = "cauth-application";
36:
37: /** The string used to store the application data in the object model .*/
38: String APPLICATION_DATA = "cauth-application-data";
39:
40: /** The key for parameters in the login context. */
41: String LOGIN_CONTEXT_PARAMETERS_KEY = "parameters";
42:
43: /** The key for parameters in the logout context. */
44: String LOGOUT_CONTEXT_PARAMETERS_KEY = "parameters";
45:
46: /** The key for the logout method in the logout context. */
47: String LOGOUT_CONTEXT_MODE_KEY = "mode";
48:
49: /** logout mode: terminate session if the user is not logged into
50: * any application anymore (default). */
51: String LOGOUT_MODE_TERMINATE_SESSION_IF_UNUSED = "0";
52:
53: /** logout mode: don't terminate the session. */
54: String LOGOUT_MODE_KEEP_SESSION = "1";
55:
56: /**
57: * Test, if the current user is already logged into the application.
58: * @param appName The name of the application.
59: * @return Returns true if the user is already logged in, false otherwise.
60: */
61: boolean isLoggedIn(String appName);
62:
63: /**
64: * Log the user in to the application. If the user is already logged in
65: * then the corresponding user object is returned.
66: * If the login process is started, the login context is passed to
67: * {@link SecurityHandler#login(Map)} and on successful login to
68: * {@link Application#userDidLogin(User, Map)}.
69: * @param appName The name of the application.
70: * @param loginContext The context for the login operation.
71: * @return The user object on a successful login, null otherwise.
72: * @throws Exception If anything goes wrong.
73: */
74: User login(String appName, Map loginContext) throws Exception;
75:
76: /**
77: * Logout the user from an application.
78: * During the logout process, the logout context is passed to
79: * {@link Application#userWillLogout(User, Map)},
80: * and eventually to {@link SecurityHandler#logout(Map, User)}.
81: * @param appName The name of the application.
82: * @param logoutContext The context for the logout operation.
83: */
84: void logout(String appName, Map logoutContext);
85: }
|