ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/catalina/users/DataSourceUserDatabaseFactory.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/catalina/users/DataSourceUserDatabaseFactory.java
Status
scanned
Type
file
Name
DataSourceUserDatabaseFactory.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
5912 (5.8 KB)
MD5
b18291f271f859315adc07c460c64fcf
SHA1
99169ce6260de238b466c7fd596f6860907d5c61
SHA256
d8ccec43f0e21e782cbb5bf6b0d579bf4decc996e7014b8ff7abbfde1f0365e9
SHA512

      
    
SHA1_git
988ce95f891fec6a91c1f9d410221b93ecbbaeb7
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
DataSourceUserDatabaseFactory.java | 5.8 KB |

/* * 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.users; import java.util.Hashtable; import javax.naming.Context; import javax.naming.Name; import javax.naming.RefAddr; import javax.naming.Reference; import javax.naming.spi.ObjectFactory; import javax.sql.DataSource; /** * <p> * JNDI object creation factory for <code>DataSourceUserDatabase</code> instances. This makes it convenient to configure * a user database in the global JNDI resources associated with this Catalina instance, and then link to that resource * for web applications that administer the contents of the user database. * </p> * <p> * The <code>DataSourceUserDatabase</code> instance is configured based on the following parameter values: * </p> * <ul> * <li><strong>dataSourceName</strong> - JNDI name of the DataSource, which must be located in the same Context * environment as the UserDatabase</li> * </ul> */ public class DataSourceUserDatabaseFactory implements ObjectFactory { // --------------------------------------------------------- Public Methods /** * <p> * Create and return a new <code>DataSourceUserDatabase</code> instance that has been configured according to the * properties of the specified <code>Reference</code>. If the instance cannot be created, return <code>null</code> * instead. * </p> * * @param obj The possibly null object containing location or reference information that can be used in * creating an object * @param name The name of this object relative to <code>nameCtx</code> * @param nameCtx The context relative to which the <code>name</code> parameter is specified, or * <code>null</code> if <code>name</code> is relative to the default initial context * @param environment The possibly null environment that is used in creating this object */ @Override public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception { // We only know how to deal with <code>javax.naming.Reference</code>s // that specify a class name of "org.apache.catalina.UserDatabase" if (!(obj instanceof Reference ref)) { return null; } if (!"org.apache.catalina.UserDatabase".equals(ref.getClassName())) { return null; } DataSource dataSource = null; String dataSourceName = null; RefAddr ra = ref.get("dataSourceName"); if (ra != null) { dataSourceName = ra.getContent().toString(); dataSource = (DataSource) nameCtx.lookup(dataSourceName); } // Create and configure a DataSourceUserDatabase instance based on the // RefAddr values associated with this Reference DataSourceUserDatabase database = new DataSourceUserDatabase(dataSource, name.toString()); database.setDataSourceName(dataSourceName); ra = ref.get("readonly"); if (ra != null) { database.setReadonly(Boolean.parseBoolean(ra.getContent().toString())); } ra = ref.get("userTable"); if (ra != null) { database.setUserTable(ra.getContent().toString()); } ra = ref.get("groupTable"); if (ra != null) { database.setGroupTable(ra.getContent().toString()); } ra = ref.get("roleTable"); if (ra != null) { database.setRoleTable(ra.getContent().toString()); } ra = ref.get("userRoleTable"); if (ra != null) { database.setUserRoleTable(ra.getContent().toString()); } ra = ref.get("userGroupTable"); if (ra != null) { database.setUserGroupTable(ra.getContent().toString()); } ra = ref.get("groupRoleTable"); if (ra != null) { database.setGroupRoleTable(ra.getContent().toString()); } ra = ref.get("roleNameCol"); if (ra != null) { database.setRoleNameCol(ra.getContent().toString()); } ra = ref.get("roleAndGroupDescriptionCol"); if (ra != null) { database.setRoleAndGroupDescriptionCol(ra.getContent().toString()); } ra = ref.get("groupNameCol"); if (ra != null) { database.setGroupNameCol(ra.getContent().toString()); } ra = ref.get("userCredCol"); if (ra != null) { database.setUserCredCol(ra.getContent().toString()); } ra = ref.get("userFullNameCol"); if (ra != null) { database.setUserFullNameCol(ra.getContent().toString()); } ra = ref.get("userNameCol"); if (ra != null) { database.setUserNameCol(ra.getContent().toString()); } // Return the configured database instance database.open(); return database; } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
19.57
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9