net.lightbody.bmp.proxy.jetty.http.handler.SecurityHandler Maven / Gradle / Ivy
The newest version!
// ========================================================================
// $Id: SecurityHandler.java,v 1.32 2005/08/13 00:01:26 gregwilkins Exp $
// Copyright 199-2004 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ========================================================================
package net.lightbody.bmp.proxy.jetty.http.handler;
import net.lightbody.bmp.proxy.jetty.http.*;
import net.lightbody.bmp.proxy.jetty.log.LogFactory;
import org.apache.commons.logging.Log;
import java.io.IOException;
/* ------------------------------------------------------------ */
/** Handler to enforce SecurityConstraints.
*
* @version $Id: SecurityHandler.java,v 1.32 2005/08/13 00:01:26 gregwilkins Exp $
* @author Greg Wilkins (gregw)
*/
public class SecurityHandler extends AbstractHttpHandler
{
private static Log log = LogFactory.getLog(SecurityHandler.class);
/* ------------------------------------------------------------ */
private String _authMethod=SecurityConstraint.__BASIC_AUTH;
/* ------------------------------------------------------------ */
public String getAuthMethod()
{
return _authMethod;
}
/* ------------------------------------------------------------ */
public void setAuthMethod(String method)
{
if (isStarted() && _authMethod!=null && !_authMethod.equals(method))
throw new IllegalStateException("Handler started");
_authMethod = method;
}
/* ------------------------------------------------------------ */
public void start()
throws Exception
{
if (getHttpContext().getAuthenticator()==null)
{
// Find out the Authenticator.
if (SecurityConstraint.__BASIC_AUTH.equalsIgnoreCase(_authMethod))
getHttpContext().setAuthenticator(new BasicAuthenticator());
else if (SecurityConstraint.__CERT_AUTH.equalsIgnoreCase(_authMethod))
getHttpContext().setAuthenticator(new ClientCertAuthenticator());
else
log.warn("Unknown Authentication method:"+_authMethod);
}
super.start();
}
/* ------------------------------------------------------------ */
public void handle(String pathInContext,
String pathParams,
HttpRequest request,
HttpResponse response)
throws HttpException, IOException
{
getHttpContext().checkSecurityConstraints(pathInContext,request,response);
}
}