2

我需要使用 CAS 来授权对使用 Play 构建的 Web 应用程序的访问!2.x 框架。玩!1.x 有一个 CAS 模块(http://www.playframework.org/modules/cas);玩!2.x 没有(我已经找到了)。

有没有人愿意分享示例代码?提示/技巧/陷阱?否则,我将深入研究 1.x 模块,看看是否可以调整它以与 2.x 一起使用。

我正在使用 Scala 进行开发。

谢谢,拜伦

[更新] 我也在Play上问过这个!谷歌组。詹姆斯罗珀回复说:

好吧,Play 2 与 Play 1 完全不同,所以不要指望它很容易移植。您有两种通用方法:

1)简单但不太好的方法,使用官方的 CAS Java 客户端在 CAS 服务器上进行阻塞调用。确保您的 Akka 线程池为此进行了调整,默认情况下,它们为每个核心提供一个线程,如果您采用这种方法,您可能需要 100-200 个线程,否则其他请求将被正在尝试的请求阻塞与 CAS 服务器通信,尤其是在 CAS 服务器响应缓慢的情况下。

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

我目前的想法是在 Play 前面放置一个 Apache 服务器来进行 CAS 身份验证。

4

1 回答 1

2

我已经创建了您正在寻找的东西:Scala 和 Java 中的 Play 2.x 客户端,它支持 OAuth/CAS/OpenID/HTTP 身份验证和用户配置文件检索:https ://github.com/leleuj/play-pac4j 。

它完全支持 CAS 协议:

  • CAS 1.0 / 2.0 / SAML valition + 代理票证验证
  • 注销请求
  • CAS 代理
于 2013-02-21T09:19:20.097 回答