2012-11-01 85 views
2

我需要使用CAS来授权访问使用Play! 2.x框架。玩! 1.x有一个CAS模块(http://www.playframework.org/modules/cas);玩! 2.x没有(我已经能够找到)。CAS认证与Play框架

有没有人有他们愿意分享的示例代码?提示/技巧/陷阱?否则,我将深入到1.x模块,看看我是否可以使它适应2.x.

我正在用Scala开发。

感谢, 拜伦

[更新] 我也问过这个在玩游戏!谷歌组。詹姆斯罗珀回答说:

那么,播放2是不同于播放1,所以不要指望它很容易移植。你有两种一般的方法:

1)简单但不是很好的方法,使用官方CAS Java客户端在CAS服务器上进行阻塞调用。确保你的Akka线程池已被调优,默认情况下,它们为每个内核提供一个线程,如果你使用这种方法,你可能需要100-200个线程,否则其他请求将被尝试的请求阻塞与CAS服务器交谈,特别是如果CAS服务器反应缓慢。

2)困难但更好的方法,使用Play WS API实现您自己的非阻塞CAS客户端。协议描述如下:http://www.jasig.org/cas/protocol

我目前的想法是把一台Apache服务器放在Play前面做CAS认证。

回答

2

我创建了您要查找的内容:a支持Scala和Java支持OAuth/CAS/OpenID/HTTP身份验证和用户配置文件检索的2.x客户端:https://github.com/leleuj/play-pac4j

它完全支持CAS协议:

  • CAS 1.0/2.0/SAML valition +代理验票
  • 注销请求
  • CAS proxification
+0

这是否插件支持X.509证书支持? –

+0

这是一个有趣的建议,但没有。在模块中添加该支持肯定是有意义的:https://github.com/leleuj/pac4j/tree/master/pac4j-http。也就是说,CAS服务器支持X509证书,play-pac4j支持CAS服务器。 – jleleu