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