1 /* 2 * Copyright 2002 by 3 * <a HREF="http://www.coridan.com">Coridan</a> 4 * <a HREF="mailto: support@coridan.com ">support@coridan.com</a> 5 * 6 * The contents of this file are subject to the Mozilla Public License Version 7 * 1.1 (the "License"); you may not use this file except in compliance with the 8 * License. You may obtain a copy of the License at 9 * http://www.mozilla.org/MPL/ 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 * 16 * The Original Code is "MantaRay" (TM). 17 * 18 * The Initial Developer of the Original Code is Shirley Sasson. 19 * Portions created by the Initial Developer are Copyright (C) 2006 20 * Coridan Inc. All Rights Reserved. 21 * 22 * Contributor(s): all the names of the contributors are added in the source 23 * code where applicable. 24 * 25 * Alternatively, the contents of this file may be used under the terms of the 26 * LGPL license (the "GNU LESSER GENERAL PUBLIC LICENSE"), in which case the 27 * provisions of LGPL are applicable instead of those above. If you wish to 28 * allow use of your version of this file only under the terms of the LGPL 29 * License and not to allow others to use your version of this file under 30 * the MPL, indicate your decision by deleting the provisions above and 31 * replace them with the notice and other provisions required by the LGPL. 32 * If you do not delete the provisions above, a recipient may use your version 33 * of this file under either the MPL or the GNU LESSER GENERAL PUBLIC LICENSE. 34 35 * 36 * This library is free software; you can redistribute it and/or modify it 37 * under the terms of the MPL as stated above or under the terms of the GNU 38 * Lesser General Public License as published by the Free Software Foundation; 39 * either version 2.1 of the License, or any later version. 40 * 41 * This library is distributed in the hope that it will be useful, but WITHOUT 42 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 43 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 44 * License for more details. 45 */ 46 47 package org.mr.kernel.security; 48 49 import javax.jms.JMSSecurityException; 50 51 /** 52 * This interface is used by a Manta layer to authenticate with username and password. 53 * The implementing class will implement the actual authentication. 54 * 55 * @version 1.0 56 * @since Mar 9, 2006 57 * @author Shirley Sasson 58 * 59 */ 60 public interface MantaAuthentication { 61 62 /** 63 * This method is used to authenticate a Manta layer with username and password. 64 * If the user is authenticated, the method returns a Session id which is a unique generated number. 65 * This Session ID will be used later by the Manta layer to gain authorization for performing actions. 66 * 67 * @param username 68 * client’s authentication username 69 * @param password 70 * client’s authentication password 71 * @return a unique session id 72 * @throws JMSSecurityException if the user has not been authenticated 73 */ 74 public SessionID authenticate(String username, String password) throws JMSSecurityException; 75 76 /** 77 * This method is used to invalidate a client's session. 78 * This method should be called by the client after it has finished performing secure actions. 79 * When this method is called, the session id is removed from the list of session ids for that client. 80 * 81 * @param sessionID 82 * client’s session id to be invaidated 83 * @throws JMSSecurityException if invalidationg was not successful 84 */ 85 public void logout(SessionID sessionID) throws JMSSecurityException; 86 } 87