2014-09-02 50 views
1

我可以使用春季安全或四郎安全與忍者框架或火狐框架?我找不到任何示例將此安全框架與Web框架集成在一起。忍者網站上沒有關於用戶認證和網絡應用安全的任何信息。四郎或春季安全與忍者框架或火花

+0

爲什麼使用火花或忍者。你有什麼目標?也許有另一個容器更適合你的需要? – 2014-09-04 07:40:42

回答

1

Spark有過濾器的概念。因此您可以添加Shiro或Spring Security過濾器。也就是說,這並不像放入這些安全框架的過濾器那麼簡單。但在理論上...

1

這個問題是相當古老的,但我無法找到任何集成Apache Shiro忍者框架的例子,所以這裏是我的調查結果。

忍者框架需要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"); 
      } 
     }); 
    } 
}