使用CAS保护Spring引导休息服务

时间:2016-01-22 19:56:29

标签: rest spring-security spring-boot cas

最近我使用spring-boot创建了一个Web服务应用程序,现在它几乎没有安全的入口点。 (这是一个纯粹的基于休息的应用程序,只有休息入口点没有任何UI组件)。

现在我想在此应用程序中添加CAS客户端,以确保其余的入口点。

我的CAS服务器已准备就绪并启动并运行。我已经在我的cas服务器中配置了CAS Rest协议,通过休息呼叫访问TGT / ST,我正计划只使用其余的呼叫,而不是使用登录页面。

因此,当用户尝试访问我的休息应用程序时,我将在内部调用CAS休息入口点(通过使用restTemplate)来验证用户凭据并生成TGT和ST。

可用的CAS入口点是(来自jasig参考文档),

  1. POST / cas / v1 / ticket HTTP / 1.0 用户名= battags&安培;密码=密码&安培; additionalParam1 = paramvalue
  2. POST / cas / v1 / tickets / {TGT id} HTTP / 1.0 service = {表格编码参数为服务网址}
  3. DELETE / cas / v1 / tickets / TGT-fdsjfsdfjkalfewrihfdhfaie HTTP / 1.0
  4. 我想,我对此部分一点都不清楚。如果我错了,请纠正我。

    现在我的查询是,如何在我的春季启动应用程序中添加ST票证验证器?我是否需要使用spring-security添加任何过滤器?或者我是否需要拨打任何其他休息api来验证ST?请指导我继续进行。

2 个答案:

答案 0 :(得分:2)

您可以使用现有的 Spring boot cas starter

这将使用CAS身份验证为您配置神奇地您的 spring boot 应用程序(因此您的应用程序将能够阅读ST或{{1毫不费力)。

我是cas security spring boot starter的作者,因此我不会影响您的选择,但与该项目的主要区别以及 Unicon 开发的cas client autoconfig support是关于 Spring安全性集成。

确实cas security spring boot starter完全符合 spring security ,因此您可以使用 spring security 中的任何功能。而cas client autoconfig support将实例化并配置 Apereo(Jasig)过滤器,而这些过滤器并非旨在与 Spring security 一起开箱即用。

答案 1 :(得分:1)

除非您想通过网络服务拨打其他服务,否则您不需要服务票证。通过CAS REST API验证收到的凭证就足够了。

如果您正在寻找通过CAS REST API保护Web服务的安全库,您应该尝试:https://github.com/pac4j/spring-webmvc-pac4j,尤其是此配置:https://github.com/pac4j/spring-webmvc-pac4j-demo/blob/master/src/main/webapp/WEB-INF/demo-servlet.xml#L74