01: /*
02: * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com>
03: * Distributed under the terms of either:
04: * - the common development and distribution license (CDDL), v1.0; or
05: * - the GNU Lesser General Public License, v2.1 or later
06: * $Id: SessionAttributes.java 3643 2007-01-12 15:29:45Z gbevin $
07: */
08: package com.uwyn.rife.authentication;
09:
10: /**
11: * This interface defines the methods that classes with
12: * {@code SessionAttributes} functionalities have to implement.
13: * <p>
14: * A {@code SessionAttributes} class defines the context in which a session
15: * is being validated. The presence and the value of certain attributes can
16: * influence whether the access to a secured resource is authorized or
17: * prohibited for a particular user.
18: * <p>
19: * For example, regular users have access to everything besides ithe
20: * administration interface. Resources that are restricted to administrators can
21: * for example have a {@code role} attribute that is set to
22: * {@code admin}. A {@code SessionValidator} instance can detect the
23: * presence of this attribute and act accordingly to verify if the user has the
24: * authorities of the required role (in this case, administrator rights).
25: *
26: * @author Geert Bevin (gbevin[remove] at uwyn dot com)
27: * @version $Revision: 3643 $
28: * @see com.uwyn.rife.authentication.SessionValidator
29: * @since 1.0
30: */
31: public interface SessionAttributes {
32: /**
33: * Checks if a certain attribute is present.
34: *
35: * @param key The key that identifies the attribute.
36: *
37: * @return {@code true} if the attribute was present; or
38: * <p>
39: * {@code false} otherwise.
40: *
41: * @see #getAttribute(String)
42: *
43: * @since 1.0
44: */
45: public boolean hasAttribute(String key);
46:
47: /**
48: * Retrieves the value of a particular attribute.
49: *
50: * @param key The key that identifies the attribute.
51: *
52: * @return A {@code String} instance with the value of the requested
53: * attribute; or
54: * <p>
55: * {@code null} if the attribute couldn't be found.
56: *
57: * @see #hasAttribute(String)
58: *
59: * @since 1.0
60: */
61: public String getAttribute(String key);
62: }
|