Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security Shiro或Spring Security与忍者框架或Spark_Spring Security_Apache Spark_Shiro - Fatal编程技术网

Spring security Shiro或Spring Security与忍者框架或Spark

Spring security Shiro或Spring Security与忍者框架或Spark,spring-security,apache-spark,shiro,Spring Security,Apache Spark,Shiro,我可以在Ninja框架或Spark框架中使用Spring Security或Shiro Security吗?我找不到任何将此安全框架与web框架集成的示例。ninja网站中没有任何关于用户身份验证和web应用程序安全性的信息 Spark有过滤器的概念。因此,您可以添加Shiro或Spring安全过滤器。也就是说,这并不像为这两个安全框架中的任何一个添加过滤器那么简单。但是在理论上…这个问题已经很老了,但是我找不到任何将ApacheShiro与Ninja框架集成的例子,所以这里是我的发现 Ninj

我可以在Ninja框架或Spark框架中使用Spring Security或Shiro Security吗?我找不到任何将此安全框架与web框架集成的示例。ninja网站中没有任何关于用户身份验证和web应用程序安全性的信息

Spark有过滤器的概念。因此,您可以添加Shiro或Spring安全过滤器。也就是说,这并不像为这两个安全框架中的任何一个添加过滤器那么简单。但是在理论上…

这个问题已经很老了,但是我找不到任何将ApacheShiro与Ninja框架集成的例子,所以这里是我的发现

Ninja Framework需要AbstractModule的实例,当您尝试类似建议的配置时,它会向我显示一个错误:

但是,检查ShiroModule类的源代码时,我注意到它进行了扩展,因此应该可以正常工作,至少我没有得到编译错误:

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");
            }
        });
    }
}

如果您想保护web restful api,建议使用sureness-
它没有特定的框架依赖关系(支持springboot、quarkus、javalin、ktor等)。
确保的本质是拦截所有rest请求以进行身份验证和授权。
拦截器可以是过滤器,也可以是spring拦截器,它拦截所有检查它们的请求


您需要知道的是,sureness是我们创建的项目,欢迎使用。

为什么要使用Spark或Ninja。你的目标是什么?也许还有另一个容器更适合你的需要?到目前为止,你唯一的答案是推广我认为是你自己的项目,而没有说明是你自己做的。请注意,如果您继续这样做,这可能被视为等同于垃圾邮件。@Kemp对不起,我是回答问题的新手。我稍后会更正它。
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");
            }
        });
    }
}