/* * JLibs: Common Utilities for Java * Copyright (C) 2009 Santhosh Kumar T <santhosh.tekuri@gmail.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. */ package jlibs.nio.http.filters; import jlibs.nio.http.FilterType; import jlibs.nio.http.ServerExchange; import jlibs.nio.http.util.BasicChallenge; import jlibs.nio.http.util.BasicCredentials; import jlibs.nio.http.util.Credentials; /** * @author Santhosh Kumar Tekuri * * Server Request Filter */ public class CheckBasicAuthentication extends CheckAuthentication{ private BasicChallenge challenge; public CheckBasicAuthentication(Authenticator authenticator, String realm, boolean proxy){ super(authenticator, proxy); challenge = new BasicChallenge(realm); } @Override public boolean filter(ServerExchange exchange, FilterType type) throws Exception{ assert type==FilterType.REQUEST; Credentials credentials = getCredentials(exchange); if(credentials instanceof BasicCredentials){ BasicCredentials basicCredentials = (BasicCredentials)credentials; String password = authenticator.getPassword(basicCredentials.user); if(basicCredentials.password.equals(password)){ authorized(exchange, basicCredentials.user); return true; } } throw unauthorized(exchange, challenge); } }