/* This file is part of PortableFtpServer. PortableFtpServer is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. PortableFtpServer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PortableFtpServer. If not, see <http://www.gnu.org/licenses/>. */ package org.erc.pftps.services; import java.util.ArrayList; import java.util.List; import org.apache.ftpserver.ftplet.Authentication; import org.apache.ftpserver.ftplet.AuthenticationFailedException; import org.apache.ftpserver.ftplet.Authority; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.ftplet.User; import org.apache.ftpserver.ftplet.UserManager; import org.apache.ftpserver.usermanager.UsernamePasswordAuthentication; import org.apache.ftpserver.usermanager.impl.BaseUser; import org.apache.ftpserver.usermanager.impl.ConcurrentLoginPermission; import org.apache.ftpserver.usermanager.impl.WritePermission; /** * The Class InMemoryUserManager. */ public class InMemoryUserManager implements UserManager { /** The user. */ private BaseUser user; /** * Sets the user. * * @param _user the new user */ public void setUser(BaseUser _user){ user = _user; if(user.getAuthorities() == null || user.getAuthorities().isEmpty()){ List<Authority> authorities = new ArrayList<Authority>(); authorities.add(new WritePermission()); authorities.add(new ConcurrentLoginPermission(10, 10)); user.setAuthorities(authorities); } } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#authenticate(org.apache.ftpserver.ftplet.Authentication) */ @Override public User authenticate(Authentication auth) throws AuthenticationFailedException { if(auth!=null && auth instanceof UsernamePasswordAuthentication){ UsernamePasswordAuthentication userAuth = (UsernamePasswordAuthentication) auth; if(user.getName().equals(userAuth.getUsername()) && user.getPassword().equals(userAuth.getPassword())){ return user; } } return null; } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#delete(java.lang.String) */ @Override public void delete(String login) throws FtpException {} /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#doesExist(java.lang.String) */ @Override public boolean doesExist(String login) throws FtpException { return (user.getName().equals(login)); } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#getAdminName() */ @Override public String getAdminName() throws FtpException { return user.getName(); } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#getAllUserNames() */ @Override public String[] getAllUserNames() throws FtpException { return new String[]{user.getName()}; } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#getUserByName(java.lang.String) */ @Override public User getUserByName(String login) throws FtpException { return user; } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#isAdmin(java.lang.String) */ @Override public boolean isAdmin(String login) throws FtpException { return (user.getName().equals(login)); } /* (non-Javadoc) * @see org.apache.ftpserver.ftplet.UserManager#save(org.apache.ftpserver.ftplet.User) */ @Override public void save(User login) throws FtpException {} }