simplepasswordjmxauthenticator.java
来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 99 行
JAVA
99 行
/* * $Id: SimplePasswordJmxAuthenticator.java 11249 2008-03-07 14:59:58Z tcarlson $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.module.management.support;import org.mule.module.management.agent.JmxAgent;import org.mule.util.ObjectUtils;import org.mule.util.StringUtils;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;import javax.management.remote.JMXAuthenticator;import javax.management.remote.JMXPrincipal;import javax.security.auth.Subject;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * A JMX authenticator for a simple username/password scheme. * Passwords are neither encrypted, nor obfuscated. */public class SimplePasswordJmxAuthenticator implements JMXAuthenticator{ /** * Logger used by this class. */ protected static final Log logger = LogFactory.getLog(JmxAgent.class); /** * An in-memory credentials storage. */ private Map credentials = new HashMap(); /** * {@inheritDoc} */ public Subject authenticate (Object authToken) { if (authToken == null) { throw new SecurityException("No authentication token available"); } if (!(authToken instanceof String[]) || ((String[]) authToken).length != 2) { throw new SecurityException("Unsupported credentials format"); } String[] authentication = (String[]) authToken; String username = StringUtils.defaultString(authentication[0]); String password = StringUtils.defaultString(authentication[1]); if (!credentials.containsKey(username)) { throw new SecurityException("Unauthenticated user: " + username); } if (!password.equals(ObjectUtils.toString(credentials.get(username)))) { throw new SecurityException("Invalid password"); } Set principals = new HashSet(); principals.add(new JMXPrincipal(username)); return new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET); } /** * Setter for property 'credentials'. * * @param newCredentials Value to set for property 'credentials'. */ public void setCredentials (final Map newCredentials) { this.credentials.clear(); if (newCredentials == null || newCredentials.isEmpty()) { logger.warn("Credentials cache has been purged, remote access will no longer be available"); } else { this.credentials.putAll(newCredentials); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?