Package org.w3c.jigedit.filters

Source Code of org.w3c.jigedit.filters.JigEditAclFilter

// JigEditAclFilter.java
// $Id: JigEditAclFilter.java,v 1.1 2001/01/16 15:05:05 bmahe Exp $
// (c) COPYRIGHT MIT, INRIA and Keio, 2000.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigedit.filters ;

import java.net.*;

import org.w3c.tools.resources.ProtocolException;
import org.w3c.tools.resources.*;

import org.w3c.jigsaw.acl.*;
import org.w3c.jigsaw.auth.IPMatcher;
import org.w3c.jigsaw.auth.IPTemplatesAttribute;

import org.w3c.jigsaw.http.Request;
import org.w3c.jigsaw.http.Client;

/**
* @version $Revision: 1.1 $
* @author  Beno�t Mah� (bmahe@w3.org)
*/
public class JigEditAclFilter extends AclFilter {
   
    /**
     * Attribute Index - Secure ip array
     */
    public static int ATTR_SECURE_IPS = -1;

    static {
  Attribute a = null ;
  Class     c = null ;
  try {
      c = Class.forName("org.w3c.jigedit.filters.JigEditAclFilter");
  } catch (Exception ex) {
      ex.printStackTrace() ;
      System.exit(1) ;
  }
  a = new IPTemplatesAttribute("secure-ips"
             , null
             , Attribute.EDITABLE) ;
  ATTR_SECURE_IPS = AttributeRegistry.registerAttribute(c, a);
    }

    /**
     * The IPMatcher to match secure IP
     */
    protected IPMatcher ipmatcher = null ;

    protected IPMatcher getIPMatcher() {
  if (ipmatcher == null) {
      ipmatcher = new IPMatcher();
      short[][] ips = getSecureIPs();
      if ( ips != null ) {
    for (int i = 0 ; i < ips.length ; i++)
        ipmatcher.add(ips[i], Boolean.TRUE) ;
      }
  }
  return ipmatcher;
    }

    /**
     * Get the secure ip address
     */
    public short[][] getSecureIPs() {
  return (short[][]) getValue(ATTR_SECURE_IPS, null) ;
    }

    /**
     * Catch set value on the filter, to maintain cached values.
     */
     public void setValue(int idx, Object value) {
   super.setValue(idx, value);
  if ( idx == ATTR_SECURE_IPS ) {
      ipmatcher = null;
  }
    }

    /**
     * Authenticate the given request.
     * @param request The request to be authentified.
     * @param acls The Access Control List array.
     * @exception org.w3c.tools.resources.ProtocolException if authentication
     * failed
     */
    protected void authenticate(Request request, JAcl acls[])
      throws ProtocolException
    {
  Client      client      = request.getClient();
  InetAddress inetaddress = client.getInetAddress();
  IPMatcher   ipmatcher   = getIPMatcher();
  System.out.println(">>> "+inetaddress);
  if (ipmatcher.lookup(inetaddress) != null) {
      // secure ip, basic auth
      setValue(ATTR_SECURITY_LEVEL, new Integer(0));
  } else {
      // unsecure ip, digest auth
      setValue(ATTR_SECURITY_LEVEL, new Integer(1));
  }
  super.authenticate(request, acls);
    }
   
}
TOP

Related Classes of org.w3c.jigedit.filters.JigEditAclFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.