public class JndiTemplate extends Object
JndiCallback
interface
to perform any operation they like with a JNDI naming context provided.
Note that this implementation is an almost exact copy of the Spring Framework's identically named class from their 2.5.4 distribution - we didn't want to re-invent the wheel, but not require a full dependency on the Spring framework, nor does Spring make available only its JNDI classes in a small jar, or we would have used that. Since Shiro is also Apache 2.0 licensed, all regular licenses and conditions and authors have remained in tact.
Constructor and Description |
---|
JndiTemplate()
Create a new JndiTemplate instance.
|
JndiTemplate(Properties environment)
Create a new JndiTemplate instance, using the given environment.
|
Modifier and Type | Method and Description |
---|---|
void |
bind(String name,
Object object)
Bind the given object to the current JNDI context, using the given name.
|
protected Context |
createInitialContext()
Create a new JNDI initial context.
|
Object |
execute(JndiCallback contextCallback)
Execute the given JNDI context callback implementation.
|
Properties |
getEnvironment()
Return the environment for the JNDI InitialContext, or
null if none should be used. |
Object |
lookup(String name)
Look up the object with the given name in the current JNDI context.
|
Object |
lookup(String name,
Class requiredType)
Look up the object with the given name in the current JNDI context.
|
void |
rebind(String name,
Object object)
Rebind the given object to the current JNDI context, using the given name.
|
void |
setEnvironment(Properties environment)
Set the environment for the JNDI InitialContext.
|
void |
unbind(String name)
Remove the binding for the given name from the current JNDI context.
|
public JndiTemplate()
public JndiTemplate(Properties environment)
environment
- the Properties to initialize withpublic void setEnvironment(Properties environment)
environment
- the Properties to initialize withpublic Properties getEnvironment()
null
if none should be used.null
if none should be used.public Object execute(JndiCallback contextCallback) throws NamingException
contextCallback
- JndiCallback implementationnull
NamingException
- thrown by the callback implementationcreateInitialContext()
protected Context createInitialContext() throws NamingException
execute(org.apache.shiro.jndi.JndiCallback)
.
The default implementation use this template's environment settings. Can be subclassed for custom contexts, e.g. for testing.
NamingException
- in case of initialization errorspublic Object lookup(String name) throws NamingException
name
- the JNDI name of the objectnull
; if a not so well-behaved
JNDI implementations returns null, a NamingException gets thrown)NamingException
- if there is no object with the given
name bound to JNDIpublic Object lookup(String name, Class requiredType) throws NamingException
name
- the JNDI name of the objectrequiredType
- type the JNDI object must match. Can be an interface or
superclass of the actual class, or null
for any match. For example,
if the value is Object.class
, this method will succeed whatever
the class of the returned instance.null
; if a not so well-behaved
JNDI implementations returns null, a NamingException gets thrown)NamingException
- if there is no object with the given
name bound to JNDIpublic void bind(String name, Object object) throws NamingException
name
- the JNDI name of the objectobject
- the object to bindNamingException
- thrown by JNDI, mostly name already boundpublic void rebind(String name, Object object) throws NamingException
name
- the JNDI name of the objectobject
- the object to rebindNamingException
- thrown by JNDIpublic void unbind(String name) throws NamingException
name
- the JNDI name of the objectNamingException
- thrown by JNDI, mostly name not foundCopyright © 2004–2019 The Apache Software Foundation. All rights reserved.