File:  [Public] / java / classes / org / w3c / jigsaw / acl / AuthUserPrincipal.java
Revision 1.3: download - view: text, annotated - select for diffs
Sat Jun 16 15:48:44 2012 UTC (12 years ago) by ylafon
Branches: MAIN
CVS tags: HEAD
various updates, use of StringBuilder, for each loops, starting some generics, some optims, ipv6 patch for acls

// AuthUserPrincipal.java
// $Id: AuthUserPrincipal.java,v 1.3 2012/06/16 15:48:44 ylafon Exp $
// (c) COPYRIGHT MIT, INRIA and Keio, 1999.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigsaw.acl;

import java.net.InetAddress;
import java.util.Hashtable;
import org.w3c.jigsaw.auth.AuthUser;
import org.w3c.jigsaw.auth.IPMatcher;

/**
 * @author Benoît Mahé (bmahe@w3.org)
 * @version $Revision: 1.3 $
 */
public class AuthUserPrincipal implements AclPrincipal {

    protected String name = null;
    protected String password = null;
    protected String realm = null;
    protected Hashtable values = null;
    protected IPMatcher ipmatcher = null;

    public boolean equals(Object another) {
        if (another instanceof AuthUserPrincipal) {
            return toString().equals(another.toString());
        } else {
            return another.equals(this);
        }
    }

    public String toString() {
        if (password == null)
            return name;
        else
            return name + ":" + password;
    }

    public int hashCode() {
        return toString().hashCode();
    }

    public String getName() {
        return name;
    }

    public String getRealm() {
        return realm;
    }

    public String getPassword() {
        return password;
    }

    public void setValue(String name, Object value) {
        values.put(name, value);
    }

    public Object getValue(String name) {
        return values.get(name);
    }

    public boolean matchIP(InetAddress adr) {
        return (ipmatcher.lookup(adr) == Boolean.TRUE);
    }

    public AuthUserPrincipal(AuthUser user, String realm) {
        this.name = user.getName();
        this.password = user.getPassword();
        this.realm = realm;
        this.ipmatcher = new IPMatcher();
        this.values = new Hashtable();

        short ips[][] = user.getIPTemplates();
        if (ips != null) {
            for (short[] ip : ips) {
                ipmatcher.add(ip, Boolean.TRUE);
            }
        }
    }


}



Webmaster