/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 org.apache.catalina.realm; import org.apache.tomcat.util.digester.Digester; import org.apache.tomcat.util.digester.Rule; import org.apache.tomcat.util.digester.RuleSetBase; import org.xml.sax.Attributes; /** *
RuleSet for recognizing the users defined in the
* XML file processed by MemoryRealm.
RuleSet with the default
* matching pattern prefix.
*/
public MemoryRuleSet() {
this("tomcat-users/");
}
/**
* Construct an instance of this RuleSet with the specified
* matching pattern prefix.
*
* @param prefix Prefix for matching pattern rules (including the
* trailing slash character)
*/
public MemoryRuleSet(String prefix) {
super();
this.prefix = prefix;
}
// --------------------------------------------------------- Public Methods
/**
* Add the set of Rule instances defined in this RuleSet to the
* specified Digester instance, associating them with
* our namespace URI (if any). This method should only be called
* by a Digester instance.
Rule.
*/
public MemoryUserRule() {
// No initialisation required
}
/**
* Process a <user> element from the XML database file.
*
* @param attributes The attribute list for this element
*/
@Override
public void begin(String namespace, String name, Attributes attributes)
throws Exception {
String username = attributes.getValue("username");
if (username == null) {
username = attributes.getValue("name");
}
String password = attributes.getValue("password");
String roles = attributes.getValue("roles");
MemoryRealm realm =
(MemoryRealm) digester.peek(digester.getCount() - 1);
realm.addUser(username, password, roles);
}
}