📄 secureclient.java
字号:
package ch30;
import java.rmi.RemoteException;
import java.util.Hashtable;
import java.util.Properties;
import javax.ejb.CreateException;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
public final class SecureClient
{
public void callMethods(String url,String username,String password)
{
Properties properties = new Properties();
properties.put("java.naming.factory.initial",
"weblogic.jndi.WLInitialContextFactory");
properties.put("java.naming.provider.url", url);
if(username != null)
{
properties.put("java.naming.security.principal", username);
properties.put("java.naming.security.credentials", password);
}
Context ctx=null;
Secure secure=null;
try
{
ctx= new InitialContext(properties);
//以上代码用于创建上下文
Object obj = ctx.lookup("secureHome");
SecureHome securehome = (SecureHome) PortableRemoteObject.narrow(obj,SecureHome.class);
//以上代码用于查找home对象
secure = securehome.create(username);
//以上代码用于创建ejb对象
}catch(Exception e)
{
System.out.println(e.toString());
}
try {
secure.noSecurityMethod();
System.out.println( username + "可以访问noSecurityMethod");
} catch(RemoteException re) {
System.out.println( username + "不能访问noSecurityMethod");
//System.out.println(re.toString());
}
try {
secure.onlyAdministrators();
System.out.println( username + "可以访问onlyAdministrators()");
} catch(RemoteException re) {
System.out.println( username + "不能访问onlyAdministrators()");
//System.out.println(re.toString());
}
try {
secure.onlyUser();
System.out.println( username + "可以访问onlyUser()");
} catch(RemoteException re) {
System.out.println( username + "不能访问onlyUser()");
//System.out.println(re.toString());
}
}
public static void main(String args[])
{
String s = "t3://localhost:7001"; //所使用的协议
SecureClient client=new SecureClient();
System.out.println("zhangsan是管理员,访问的结果如下:");
client.callMethods(s, "zhangsan","zhangsan"); //使用用户"zhangsan"访问
System.out.println();
System.out.println("lisi是普通用户,访问的结果如下:");
client.callMethods(s, "lisi","lisilisi"); //使用用户"lisi"访问
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -