Security Scala web应用程序安全

Security Scala web应用程序安全,security,web-applications,scala,Security,Web Applications,Scala,在Scala web应用程序中,什么是web安全的好框架选择。我们想尝试Scala web开发,但还没有找到好的Scala web应用安全框架 从Java方面,我至少知道Spring安全性和ApacheShiro 您是否有在Scala环境下使用Scala web app安全框架或Spring security/Apache Shiro的经验?具有Lift作者David Pollak所描述的安全性。我在小型Scala web应用程序中使用了Spring安全性。我在开始学习Scala时创建了它,并尝

在Scala web应用程序中,什么是web安全的好框架选择。我们想尝试Scala web开发,但还没有找到好的Scala web应用安全框架

从Java方面,我至少知道Spring安全性和ApacheShiro


您是否有在Scala环境下使用Scala web app安全框架或Spring security/Apache Shiro的经验?

具有Lift作者David Pollak所描述的安全性。

我在小型Scala web应用程序中使用了Spring安全性。我在开始学习Scala时创建了它,并尝试使用完整的Java堆栈:SpringMVC+Spring+SpringSecurity+Hibernate+BlazeDS(我在这个项目中也使用Flex作为前端)。现在我可以说,这是一次非常好的积极体验。一般来说,问题是scala与Spring和Hibernate的集成有多好。我必须在实体中使用
@BeanProperty
@BeanInfo
和java集合

但我还没有从spring安全方面面对任何真正的问题。它按预期工作。我只记得SpringAOP的一个小问题:服务类通过BlazeDS将其方法发布到flex应用程序。我还使用SpringSecurity的对象ACL(使用
)保护它们。当然,所有这些都是可能的,因为AOP的魔力。所以我注意到这个wired Spring AOP的行为——如果您的类实现了一些接口,那么它将使用JDK的代理来实现它们并将所有调用委托给目标,但如果类没有实现任何接口,那么它将使用cglib来扩展您的类并委托每个方法调用。问题是我的公共服务类没有实现任何接口,但是AOP没有正常工作。原因是由所有scala类实现的
ScalaObject
接口。为了解决这个问题,我为所有公共服务创建了新的特性(我还没有找到任何配置SpringAOP的方法——似乎这种行为是硬编码的)

因此,正如您所看到的,将Spring安全性与Scala结合使用并不是一个问题。我相信使用ApacheShiro应该更容易,因为它声称完全独立于容器或环境(我听说在Spring之外使用Spring安全性是可能的,但我也听说这相当痛苦)。通常,在Scala中,您可以在Java中归档所有可以归档的内容。问题是生成的代码有多漂亮/惯用/纯粹/无副作用

顺便说一下,有一个新项目将Lift与apacheshiro集成在一起:。你也可以找到它


希望这能有所帮助。

谢谢你的回答,但我也在寻找与web框架无关的通用方法。谢谢你的回答。关于ScalaObject代理的问题非常值得了解。