Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
Java 使用Spring安全性玩框架?_Java_Spring_Scala_Playframework_Spring Security - Fatal编程技术网

Java 使用Spring安全性玩框架?

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一起使用是有意义的

我是Play框架的新手,希望为我的webapp实现一些身份验证

我已经对Spring和Spring安全性有了一些经验,并希望使用它,但我不确定这是否有意义,因为Spring安全性主要用于ServletAPI

将Play与Spring Security集成有意义吗

谢谢

经过进一步搜索,我找到了以下帖子:


这似乎是可能的,但仍有许多特定于播放的实现(过滤器等)需要完成。

您应该——也许——看看。它是专用的解决方案,因此它将开箱即用。

是的,将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:这是一个非常直接的实现,对我来说非常好。社区也非常积极和支持。