Привет, на примере osgi webapp, созданного с помощью фреймворка Amdatu, можно найти в этом ShowCase, хотя реализация выполняется точно так же, как пример, каждый раз, когда экземпляр службы всегда имеет значение null. Кроме того, я прочитал документацию по адресу security module Amdatu, но не смог ее настроить, сделал ли кто-нибудь пошаговое руководство по использованию TokenProvider?Amdatu TokenProvider
Спасибо
Когда выполнение дм notavail команды я получает:
[1] agenda.web.filters
javax.servlet.Filter(pattern=/*.*) unregistered
org.amdatu.security.tokenprovider.TokenProvider service required unavailable
[15] org.amdatu.security.tokenprovider.impl
org.amdatu.security.tokenprovider.TokenProvider unregistered
org.amdatu.security.tokenprovider configuration required available
org.amdatu.security.tokenprovider.TokenStorageProvider service required unavailable
org.osgi.service.log.LogService service optional (not tracking)
[16] org.amdatu.security.tokenstorage.mongo
org.amdatu.security.tokenprovider.TokenStorageProvider, org.amdatu.security.tokenstorage.mongo.ExpiredTokenPurger unregistered
org.amdatu.mongo.MongoDBService service required unavailable
org.osgi.service.log.LogService service optional (not tracking)
org.quartz.Job unregistered
org.amdatu.security.tokenstorage.mongo.ExpiredTokenPurger service required unavailable
org.osgi.service.log.LogService service optional (not tracking)
Мой Активатор это:
import java.util.Properties;
import javax.servlet.Filter;
import org.amdatu.security.tokenprovider.TokenProvider;
import org.apache.felix.dm.DependencyActivatorBase;
import org.apache.felix.dm.DependencyManager;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogService;
import agenda.web.filters.teste.AdminLoginResource;
import agenda.web.filters.teste.RedirectFilter;
import agenda.web.filters.teste.SecurityFilter;
public class Activator extends DependencyActivatorBase {
@Override
public void init(BundleContext arg0, DependencyManager dm)
throws Exception {
Properties properties = new Properties();
properties.put("pattern", "/*.*");
dm.add(createComponent()
.setInterface(Filter.class.getName(), properties)
.setImplementation(SecurityFilter.class)
.add(createServiceDependency().setService(TokenProvider.class).setRequired(true))
.add(createServiceDependency()
.setService(LogService.class)
.setRequired(false)));
}
@Override
public void destroy(BundleContext arg0, DependencyManager arg1)
throws Exception {
// TODO Auto-generated method stub
}
}
Вы используете Felix Dependency Manager? Не могли бы вы попробовать «dm notavail» в оболочке и опубликовать то, что видите? Мне интересно, правильно ли зарегистрирована услуга, например. что вы также установили TokenStorageProvider. –
Привет, Пол, спасибо за внимание, я добавляю свой вопрос с данными, которые вы просите. – user2705861