新建一个叫 LDAPLoginBundle 的Equinox 项目

文件结构如图所示,我们要在 META-INF/MANIFEST.MF 中的 依赖 选项卡中选择导入 org.vwpolo.services 这个包
package org.vwpolo.login.service;
import java.util.Hashtable;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.vwpolo.login.service.impl.LDAPLoginServiceImpl;
import org.vwpolo.services.LoginService;

public class LDAPActivator implements BundleActivator ...{
private BundleContext context = null;
private LDAPLoginServiceImpl loginServiceImpl;
private ServiceRegistration serviceRegistration=null;

/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception ...{
this.context = context;
loginServiceImpl = new LDAPLoginServiceImpl();
serviceRegistration = this.context.registerService(LoginService.class.getName(), loginServiceImpl, new Hashtable());
}

/**//*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception ...{
serviceRegistration.unregister();
context = null;
}
}
package org.vwpolo.login.service.impl;
import org.vwpolo.services.LoginService;

public class LDAPLoginServiceImpl implements LoginService...{
@Override
public boolean login(String userName, String password) ...{
System.out.println("LDAP 登陆方式");
if(userName.equals("vwpolo") && password.equals("123"))
return true;
return false;
}
}MANIFEST.MF文件:
Manifest-Version: 1.0Bundle-ManifestVersion: 2
Bundle-Name: LDAPLoginBundle Plug-in
Bundle-SymbolicName: LDAPLoginBundle
Bundle-Version: 1.0.0
Bundle-Activator: org.vwpolo.login.service.LDAPActivator
Import-Package: org.osgi.framework;version="1.3.0",
org.vwpolo.services
Eclipse-LazyStart: true

本文介绍如何使用 OSGi 框架实现 LDAP 登录服务。通过创建 LDAPLoginBundle 项目,并利用 LDAPActivator 类注册 LoginService 接口的具体实现 LDAPLoginServiceImpl。该服务提供简单的用户名密码验证。
1万+

被折叠的 条评论
为什么被折叠?



