`

jndi简单运用之weblogic

    博客分类:
  • j2ee
阅读更多

Main.java

package weblogic;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
public class Main {
	public static void main(String[] args) throws Exception {
		bind("object","This is a object.");
		
		System.out.println(getResource("object"));
	}
	// get the resource of the specified name
	private static Object getResource(String jndiName) throws Exception{
		Properties jndiConfig=getJndiConfig();
		Context context = new InitialContext(jndiConfig);
		Object resource=context.lookup(jndiName);
		context.close();
		return resource;
	}
	// bind a object to the specified name
	private static void bind(String jndiName,Object object) throws Exception{
		Properties jndiConfig=getJndiConfig();
		Context context = new InitialContext(jndiConfig);
		context.bind(jndiName, object);
		context.close();
	}
	// get the configuration properties
	private static Properties getJndiConfig(){
		String initialContextFactory="weblogic.jndi.WLInitialContextFactory";
		String providerUrl="t3://localhost:8888";
		String securityPrincipal="weblogic";
		String securityCredentials="password";
		Properties jndiConfig=new Properties();
		jndiConfig.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
		jndiConfig.put(Context.PROVIDER_URL, providerUrl);
//		jndiConfig.put(Context.SECURITY_PRINCIPAL, securityPrincipal);
//		jndiConfig.put(Context.SECURITY_CREDENTIALS, securityCredentials);
		return jndiConfig;
	}
}

 getJndiConfig()方法中提供了初始化Context的property配置。

属性名 属性说明
Context.INITIAL_CONTEXT_FACTORY 指定InitialContext的实现类名称。这里使用weblogic作为服务器。所以相应的值为weblogic.jndi.WLInitialContextFactory。
Context.PROVIDER_URL 连接jndi服务器的url。这里weblogic运行在本机,并且端口号为8888。所以值设置为t3://localhost:8888。
Context.SECURITY_PRINCIPAL 通过jndi访问指定resource的凭证名称。简单理解为访问这个resource时的用户名。如果这个resource没有设定访问策略,则可以不设。
Context.SECURITY_CREDENTIALS 通过jndi访问指定resource时与凭证相对应的密码。简单理解为访问这个resource时与用户名相对应的密码。如果这个resource没有设定访问策略,则可以不设。

 

getJndiConfig()有以下2行注释

//jndiConfig.put(Context.SECURITY_PRINCIPAL, securityPrincipal);

//jndiConfig.put(Context.SECURITY_CREDENTIALS, securityCredentials);

 

这是因为没有对新注册的resource{object=This is a object}设置访问策略。

通过以下步骤可以在weblogic10.3中对某一个resource设置访问策略。

1) 登录weblogic



 2) 切换到指定server



 3)打开jndi配置页面

 4)择选新注册的resource,切换到sercurity页。

1
5) 选择Policies页,单击Add Conditions



 6)Predicate List 选择User,单击Next



 7)User Argument Name 填写Weblogic(这是我登录weblogic的一个用户名),点击Add按钮,点击Finish


 
8)最终点击Save,会出现保存成功信息



  

 

通过以上步骤为名称为object的resource设定了访问策略。如果通过api访问这个resoucre,

必须提供Context.SECURITY_PRINCIPAL,Context.SECURITY_CREDENTIALS。

及以上示例只需要重新启用注释的那2行代码。

  • 大小: 23 KB
  • 大小: 20.1 KB
  • 大小: 11.9 KB
  • 大小: 19.5 KB
  • 大小: 16.9 KB
  • 大小: 26.9 KB
  • 大小: 14.6 KB
  • 大小: 13.9 KB
分享到:
评论
1 楼 lijiejava 2013-03-15  
好帖,顶!!!

相关推荐

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    5.3.1 WebLogic的JNDI支持 212 5.3.2 JBoss的JNDI支持 215 5.4 RMI概述 216 5.4.1 RMI的相关概念 216 5.4.2 RMI的作用和意义 217 5.5 RMI编程 217 5.5.1 开发RMI服务器 217 5.5.2 开发RMI客户端 220 5.5.3 RMI的基本...

    JAVA上百实例源码以及开源项目源代码

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

    java源码包---java 源码 大量 实例

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    java源码包2

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    java源码包3

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    java源码包4

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

Global site tag (gtag.js) - Google Analytics