Java 使用Spring安全性玩框架?
我是Play框架的新手,希望为我的webapp实现一些身份验证 我已经对Spring和Spring安全性有了一些经验,并希望使用它,但我不确定这是否有意义,因为Spring安全性主要用于ServletAPI 将Play与Spring Security集成有意义吗 谢谢 经过进一步搜索,我找到了以下帖子:Java 使用Spring安全性玩框架?,java,spring,scala,playframework,spring-security,Java,Spring,Scala,Playframework,Spring Security,我是Play框架的新手,希望为我的webapp实现一些身份验证 我已经对Spring和Spring安全性有了一些经验,并希望使用它,但我不确定这是否有意义,因为Spring安全性主要用于ServletAPI 将Play与Spring Security集成有意义吗 谢谢 经过进一步搜索,我找到了以下帖子: 这似乎是可能的,但仍有许多特定于播放的实现(过滤器等)需要完成。您应该——也许——看看。它是专用的解决方案,因此它将开箱即用。是的,将spring security与play一起使用是有意义的
这似乎是可能的,但仍有许多特定于播放的实现(过滤器等)需要完成。您应该——也许——看看。它是专用的解决方案,因此它将开箱即用。是的,将spring security与play一起使用是有意义的。Spring安全性已经在很多项目中使用,编写安全代码比看起来要困难得多 你有两个问题。一是认证。您需要做一些事情来实现身份验证。这意味着要么旋转play使其成为有状态的容器(但话说回来,在这种情况下,为什么要使用play?),要么将spring security web和deadbolt相互用力投掷,以便使用spring进行身份验证,但是与cookie游戏的优点集成,这样就不必在服务器端的会话对象中存储内容。不过,我建议你从某个地方为每个请求获取授权的权威机构。您希望减小会话大小 安全对象还提供了一些关于如何执行此操作的好提示 只要您在threadlocal或其他文件中存储了身份验证对象,spring中的授权就不难处理。在包装器中创建调用spring访问决策投票者的东西-类似
def handleRequest ... {
withAuthorization(<list of roles necessary>) {
service code
}
}
def handleRequest。。。{
withAuthorization(){
服务代码
}
}
我们应该做到这一点。为了增加优点,在执行此操作时,在threadlocal中添加一个标志-标志的存在使您可以轻松地在测试中编写需要授权才能执行的断言。这是开发人员面临的最大安全问题之一—请参阅
希望这能有所帮助。Deadbolt2只提供授权部分,您仍然需要执行或找到用于身份验证的现成解决方案。只是好奇,您最终做了什么?我也在研究同样的问题——寻找一个健壮的、经生产验证的认证模型,遇到了Spring Security,我想知道它是否可以用于PlayFramework。我最后使用了Pac4j库用于Play:这是一个非常直接的实现,对我来说非常好。社区也非常积极和支持。