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 class describes the current application. Inside Cocoon, you can have
23: * different applications running at the same time (a portal, a shop, a
24: * registration wizard etc.) Each of these applications might require its
25: * own login or might have different settings. The application object helps in
26: * managing these things.
27: *
28: * An application provides access to the corresponding {@link SecurityHandler}
29: * and {@link ApplicationStore}. It can also store configuration values as
30: * attributes.
31: *
32: * In addition, the application is notified about user actions (login, logout
33: * and usage).
34: *
35: * @version $Id: Application.java 433543 2006-08-22 06:22:54Z crossley $
36: */
37: public interface Application {
38:
39: /**
40: * Return the security handler for this application.
41: * @return The security handler
42: */
43: SecurityHandler getSecurityHandler();
44:
45: /**
46: * Return the application store for loading/saving user specific data.
47: * @return Return the application store or null.
48: */
49: ApplicationStore getApplicationStore();
50:
51: /**
52: * Notify the application about a successful login of a user.
53: * @param user The current user.
54: * @param context The context for the login operation.
55: */
56: void userDidLogin(User user, Map context);
57:
58: /**
59: * Notify the application about a logout of a user.
60: * @param user The current user.
61: * @param context The context for the logout operation.
62: */
63: void userWillLogout(User user, Map context);
64:
65: /**
66: * Notify the application about a user using the application
67: * in the current request. This method might be called more than
68: * once during one request, so the application should check this.
69: * This hook can for example be used by the application to
70: * prepare the current object model of the request.
71: * @param user The current user.
72: */
73: void userIsAccessing(User user);
74:
75: /**
76: * Set an application attribute.
77: * @param key The key of the attribute.
78: * @param value The value of the attribute.
79: */
80: void setAttribute(String key, Object value);
81:
82: /**
83: * Remove an application attribute.
84: * @param key The key of the attribute.
85: */
86: void removeAttribute(String key);
87:
88: /**
89: * Get the value of an application attribute.
90: * @param key The key of the attribute.
91: * @return The value of the attribute or null.
92: */
93: Object getAttribute(String key);
94: }
|