⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultauthorizationmapping.java

📁 openfire 服务器源码下载
💻 JAVA
字号:
/** * $RCSfile$ * $Revision: $ * $Date: 2006-04-07 09:28:54 -0500 (Fri, 07 Apr 2006) $ * * Copyright (C) 2008 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Public License (GPL), * a copy of which is included in this distribution, or a commercial license * agreement with Jive. */package org.jivesoftware.openfire.auth;import java.util.Vector;import java.util.StringTokenizer;import org.jivesoftware.util.JiveGlobals;import org.jivesoftware.util.Log;/** * This is the interface the used to provide default defualt authorization  * ID's when none was selected by the client. * This class simply removes the realm (if any) from the principal if and only if * the realm matches the server's realm, the server's xmpp domain name, or  *  * @author Jay Kline */public class DefaultAuthorizationMapping implements AuthorizationMapping {    private Vector<String> approvedRealms;    public DefaultAuthorizationMapping() {        approvedRealms = new Vector<String>();                String realmList = JiveGlobals.getXMLProperty("sasl.approvedRealms");        if(realmList != null) {            StringTokenizer st = new StringTokenizer(realmList, " ,\t\n\r\f");            while(st.hasMoreTokens()) {                approvedRealms.add(st.nextToken());            }        }    }    /**     * Returns true if the principal is explicity authorized to the JID     *     * @param principal The autheticated principal requesting authorization.     * @return The name of the default username to use.     */    public String map(String principal) {        if(principal.contains("@")) {            String realm = principal.substring(principal.lastIndexOf('@')+1);            String username = principal.substring(0,principal.lastIndexOf('@'));            if(realm.length() > 0) {                if(realm.equals(JiveGlobals.getProperty("xmpp.domain"))) {                    Log.debug("DefaultAuthorizationMapping: realm = xmpp.domain");                    return username;                } else if(realm.equals(JiveGlobals.getXMLProperty("sasl.realm"))) {                    Log.debug("DefaultAuthorizationMapping: ream = sasl.realm");                    return username;                } else {                    for(String approvedRealm : approvedRealms) {                        if(realm.equals(approvedRealm)) {                            Log.debug("DefaultAuthorizationMapping: realm ("+realm+") = "+approvedRealm+" which is approved");                            return username;                        } else {                            Log.debug("DefaultAuthorizationPolicy: realm ("+realm+") != "+approvedRealm+" which is approved");                        }                    }                }                Log.debug("DefaultAuthorizationMapping: No approved mappings found.");                return principal;            } else {                Log.debug("DefaultAuthorizationMapping: Realm has no length");            }        } else {            Log.debug("DefaultAuthorizationMapping: No realm found");        }        return principal;    }    /**     * Returns the short name of the Policy     *     * @return The short name of the Policy     */    public String name() {        return "Default Mapping";    }    /**     * Returns a description of the Policy     *     * @return The description of the Policy.     */    public String description() {        return "Simply remove's the realm of the requesting principal if and only if "+               "the realm matches the server's realm or the server's xmpp domain name. "+               "Otherwise the principal is used as the username.";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -