Можно ли использовать Spring Security или Shiro Security с Ninja Framework или Spark Framework? Я не могу найти какой-либо пример для интеграции этих фреймов безопасности с веб-фреймами. на веб-сайте ниндзя нет информации об аутентификации пользователя и безопасности веб-приложений.Безопасность Shiro или Spring с каркасом ниндзя или искры
1
A
ответ
1
Spark имеет понятие об фильтрах. http://sparkjava.com/documentation.html#filters поэтому вы можете добавить фильтр Shiro или Spring Security. Тем не менее, это не так просто, как сбросить фильтр для любой из этих систем безопасности. Но в теории ...
1
Этот вопрос довольно старый, но я не могу найти какой-либо пример интеграции Apache Shiro с Ninja Framework, так что вот мои выводы об этом.
Ninja Framework требуется экземпляр AbstractModule, он показывает мне ошибку, когда вы пытаетесь что-то вроде конфигурации, рекомендуется here:
package conf;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import org.apache.shiro.config.Ini;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.guice.ShiroModule;
class Module extends ShiroModule {
protected void configureShiro() {
try {
bindRealm().toConstructor(IniRealm.class.getConstructor(Ini.class));
} catch (NoSuchMethodException e) {
addError(e);
}
}
@Provides
Ini loadShiroIni() {
return Ini.fromResourcePath("classpath:shiro.ini");
}
}
Однако проверка исходного кода класса ShiroModule я заметил, что он расширяет PrivateModule так что это должно работать, по крайней мере, я не получаю ошибок компиляции:
package conf;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import org.apache.shiro.config.Ini;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.guice.ShiroModule;
public class Module extends AbstractModule
{
@Override
protected void configure()
{
install(new ShiroModule()
{
@Override
protected void configureShiro()
{
//shiro recomended configuration
try {
bindRealm().toConstructor(IniRealm.class.getConstructor(Ini.class));
} catch (NoSuchMethodException e) {
addError(e);
}
}
@Provides
Ini loadShiroIni()
{
return Ini.fromResourcePath("classpath:shiro.ini");
}
});
}
}
Зачем использовать искры или ниндзя. Какие у вас цели? Возможно, есть еще один контейнер, который лучше подходит вам? –