103928aee4356845252ac6b662d5c72c29903813eJake Slack// 203928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 303928aee4356845252ac6b662d5c72c29903813eJake Slack// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. 403928aee4356845252ac6b662d5c72c29903813eJake Slack// ------------------------------------------------------------------------ 503928aee4356845252ac6b662d5c72c29903813eJake Slack// All rights reserved. This program and the accompanying materials 603928aee4356845252ac6b662d5c72c29903813eJake Slack// are made available under the terms of the Eclipse Public License v1.0 703928aee4356845252ac6b662d5c72c29903813eJake Slack// and Apache License v2.0 which accompanies this distribution. 803928aee4356845252ac6b662d5c72c29903813eJake Slack// 903928aee4356845252ac6b662d5c72c29903813eJake Slack// The Eclipse Public License is available at 1003928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.eclipse.org/legal/epl-v10.html 1103928aee4356845252ac6b662d5c72c29903813eJake Slack// 1203928aee4356845252ac6b662d5c72c29903813eJake Slack// The Apache License v2.0 is available at 1303928aee4356845252ac6b662d5c72c29903813eJake Slack// http://www.opensource.org/licenses/apache2.0.php 1403928aee4356845252ac6b662d5c72c29903813eJake Slack// 1503928aee4356845252ac6b662d5c72c29903813eJake Slack// You may elect to redistribute this code under either of these licenses. 1603928aee4356845252ac6b662d5c72c29903813eJake Slack// ======================================================================== 1703928aee4356845252ac6b662d5c72c29903813eJake Slack// 1803928aee4356845252ac6b662d5c72c29903813eJake Slack 1903928aee4356845252ac6b662d5c72c29903813eJake Slackpackage org.eclipse.jetty.security; 2003928aee4356845252ac6b662d5c72c29903813eJake Slack 2103928aee4356845252ac6b662d5c72c29903813eJake Slackimport org.eclipse.jetty.server.UserIdentity; 2203928aee4356845252ac6b662d5c72c29903813eJake Slack 2303928aee4356845252ac6b662d5c72c29903813eJake Slack 2403928aee4356845252ac6b662d5c72c29903813eJake Slack/* ------------------------------------------------------------ */ 2503928aee4356845252ac6b662d5c72c29903813eJake Slack/** 2603928aee4356845252ac6b662d5c72c29903813eJake Slack * Login Service Interface. 2703928aee4356845252ac6b662d5c72c29903813eJake Slack * <p> 2803928aee4356845252ac6b662d5c72c29903813eJake Slack * The Login service provides an abstract mechanism for an {@link Authenticator} 2903928aee4356845252ac6b662d5c72c29903813eJake Slack * to check credentials and to create a {@link UserIdentity} using the 3003928aee4356845252ac6b662d5c72c29903813eJake Slack * set {@link IdentityService}. 3103928aee4356845252ac6b662d5c72c29903813eJake Slack */ 3203928aee4356845252ac6b662d5c72c29903813eJake Slackpublic interface LoginService 3303928aee4356845252ac6b662d5c72c29903813eJake Slack{ 3403928aee4356845252ac6b662d5c72c29903813eJake Slack 3503928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 3603928aee4356845252ac6b662d5c72c29903813eJake Slack /** 3703928aee4356845252ac6b662d5c72c29903813eJake Slack * @return Get the name of the login service (aka Realm name) 3803928aee4356845252ac6b662d5c72c29903813eJake Slack */ 3903928aee4356845252ac6b662d5c72c29903813eJake Slack String getName(); 4003928aee4356845252ac6b662d5c72c29903813eJake Slack 4103928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 4203928aee4356845252ac6b662d5c72c29903813eJake Slack /** Login a user. 4303928aee4356845252ac6b662d5c72c29903813eJake Slack * @param username The user name 4403928aee4356845252ac6b662d5c72c29903813eJake Slack * @param credentials The users credentials 4503928aee4356845252ac6b662d5c72c29903813eJake Slack * @return A UserIdentity if the credentials matched, otherwise null 4603928aee4356845252ac6b662d5c72c29903813eJake Slack */ 4703928aee4356845252ac6b662d5c72c29903813eJake Slack UserIdentity login(String username,Object credentials); 4803928aee4356845252ac6b662d5c72c29903813eJake Slack 4903928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 5003928aee4356845252ac6b662d5c72c29903813eJake Slack /** Validate a user identity. 5103928aee4356845252ac6b662d5c72c29903813eJake Slack * Validate that a UserIdentity previously created by a call 5203928aee4356845252ac6b662d5c72c29903813eJake Slack * to {@link #login(String, Object)} is still valid. 5303928aee4356845252ac6b662d5c72c29903813eJake Slack * @param user The user to validate 5403928aee4356845252ac6b662d5c72c29903813eJake Slack * @return true if authentication has not been revoked for the user. 5503928aee4356845252ac6b662d5c72c29903813eJake Slack */ 5603928aee4356845252ac6b662d5c72c29903813eJake Slack boolean validate(UserIdentity user); 5703928aee4356845252ac6b662d5c72c29903813eJake Slack 5803928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 5903928aee4356845252ac6b662d5c72c29903813eJake Slack /** Get the IdentityService associated with this Login Service. 6003928aee4356845252ac6b662d5c72c29903813eJake Slack * @return the IdentityService associated with this Login Service. 6103928aee4356845252ac6b662d5c72c29903813eJake Slack */ 6203928aee4356845252ac6b662d5c72c29903813eJake Slack IdentityService getIdentityService(); 6303928aee4356845252ac6b662d5c72c29903813eJake Slack 6403928aee4356845252ac6b662d5c72c29903813eJake Slack /* ------------------------------------------------------------ */ 6503928aee4356845252ac6b662d5c72c29903813eJake Slack /** Set the IdentityService associated with this Login Service. 6603928aee4356845252ac6b662d5c72c29903813eJake Slack * @param service the IdentityService associated with this Login Service. 6703928aee4356845252ac6b662d5c72c29903813eJake Slack */ 6803928aee4356845252ac6b662d5c72c29903813eJake Slack void setIdentityService(IdentityService service); 6903928aee4356845252ac6b662d5c72c29903813eJake Slack 7003928aee4356845252ac6b662d5c72c29903813eJake Slack void logout(UserIdentity user); 7103928aee4356845252ac6b662d5c72c29903813eJake Slack 7203928aee4356845252ac6b662d5c72c29903813eJake Slack} 73