001 /* 002 Copyright (C) 2001 Laurent Martelli <laurent@aopsys.com> 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 GNU Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public License 015 along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 017 018 package org.objectweb.jac.aspects.authentication; 019 020 import org.objectweb.jac.aspects.gui.DisplayContext; 021 import org.objectweb.jac.aspects.gui.GuiAC; 022 import org.objectweb.jac.core.Collaboration; 023 import org.objectweb.jac.core.Display; 024 import org.objectweb.jac.core.rtti.ClassRepository; 025 import org.objectweb.jac.core.rtti.MethodItem; 026 import org.objectweb.jac.util.Log; 027 028 /** 029 * This Authenticator just ask the username of the user without asking 030 * a password. It just trusts the user to enter the correct 031 * username. It needs a DisplayContext attribute in order to be able 032 * to interact with the user. 033 */ 034 public class TrustingAuthenticator implements Authenticator { 035 public String authenticate() throws AuthenticationFailedException { 036 DisplayContext context = 037 (DisplayContext)Collaboration.get().getAttribute(GuiAC.DISPLAY_CONTEXT); 038 if (context!=null) { 039 Display display = context.getDisplay(); 040 MethodItem method = 041 ClassRepository.get().getClass(this).getMethod("askUsername"); 042 Object[] parameters = new Object[method.getParameterTypes().length]; 043 if (!display.showInput(this,method,parameters)) { 044 return null; 045 } 046 return (String)parameters[0]; 047 048 } else { 049 Log.warning("No display context available, cannot authenticate user"); 050 return null; 051 } 052 } 053 public void askUsername(String username) { 054 } 055 }