1 // ========================================================================
2 // Copyright (c) 2008-2009 Mort Bay Consulting Pty. Ltd.
3 // ------------------------------------------------------------------------
4 // All rights reserved. This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v1.0
6 // and Apache License v2.0 which accompanies this distribution.
7 // The Eclipse Public License is available at
8 // http://www.eclipse.org/legal/epl-v10.html
9 // The Apache License v2.0 is available at
10 // http://www.opensource.org/licenses/apache2.0.php
11 // You may elect to redistribute this code under either of these licenses.
12 // ========================================================================
13
14 package org.eclipse.jetty.security;
15
16 import org.eclipse.jetty.server.UserIdentity;
17
18
19 /* ------------------------------------------------------------ */
20 /**
21 * Login Service Interface.
22 * <p>
23 * The Login service provides an abstract mechanism for an {@link Authenticator}
24 * to check credentials and to create a {@link UserIdentity} using the
25 * set {@link IdentityService}.
26 */
27 public interface LoginService
28 {
29
30 /* ------------------------------------------------------------ */
31 /**
32 * @return Get the name of the login service (aka Realm name)
33 */
34 String getName();
35
36 /* ------------------------------------------------------------ */
37 /** Login a user.
38 * @param username The user name
39 * @param credentials The users credentials
40 * @return A UserIdentity if the credentials matched, otherwise null
41 */
42 UserIdentity login(String username,Object credentials);
43
44 /* ------------------------------------------------------------ */
45 /** Validate a user identity.
46 * Validate that a UserIdentity previously created by a call
47 * to {@link #login(String, Object)} is still valid.
48 * @param user The user to validate
49 * @return true if authentication has not been revoked for the user.
50 */
51 boolean validate(UserIdentity user);
52
53 /* ------------------------------------------------------------ */
54 /** Get the IdentityService associated with this Login Service.
55 * @return the IdentityService associated with this Login Service.
56 */
57 IdentityService getIdentityService();
58
59 /* ------------------------------------------------------------ */
60 /** Set the IdentityService associated with this Login Service.
61 * @param service the IdentityService associated with this Login Service.
62 */
63 void setIdentityService(IdentityService service);
64
65 void logout(UserIdentity user);
66
67 }