2016-01-22 155 views
2

朋友,REST服务保证弹簧的引导与CAS

最近我已经创建了使用弹簧启动,现在它有一些不安全的入口点一个网络服务应用程序。 (这是一个纯粹的基于休息的应用程序,只有休息入口点没有任何UI组件)。

现在我想添加CAS客户端与此应用程序来保护其他入口点。

我的CAS服务器已准备就绪并正常运行。而且我还配置了CAS Rest协议以及我的cas服务器以通过其余呼叫访问TGT/ST,并且我正在计划仅使用其余呼叫而不是使用登录页面。

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

推介CAS入口点(从jasig参考文档),

  1. POST/CAS/V1 /车票HTTP/1.0 用户名= battags &密码=密码& additionalParam1 = paramvalue
  2. POST/CAS/V1 /车票/ {TGT ID} HTTP/1.0 服务= {对服务URL形式编码参数}
  3. DELETE/CAS/V1 /票/ TGT-fdsjfsdfjkalfewrihfdhfaie HTTP/1.0

我想,我对这部分有点清楚。如果我错了,请纠正我。

现在我在这里的查询是我应该怎样在我的弹簧启动应用程序中添加ST票证验证器?我是否需要使用spring-security添加任何过滤器?或者我需要调用任何其他休息API来验证ST?请指导我继续下一步。

回答

1

除非您想从Web服务调用其他服务,否则不需要服务票据。通过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

+0

感谢您的宝贵意见@jleleu我没有尝试pac4j之前。现在让我试试这个新的。 – Sasikumar

+0

嗨@jleleu我试过[spring-webmvc-pac4j-boot-demo](https://github.com/pac4j/spring-webmvc-pac4j-boot-demo)它为我工作。谢谢。但是,我是否需要在我的所有请求中发送用户凭据(用户名和密码)?我可以使用令牌来验证经过身份验证的用户吗?请澄清 – Sasikumar

+0

当然。 CasRestBAsicAuthClient将login/pwd作为基本身份验证,并通过CAS服务器进行身份验证。使用JwtGenerator从经过身份验证的用户配置文件生成一个令牌。使用JwtAuthenticator添加ParameterClient以从令牌进行身份验证。更多帮助:https://groups.google.com/forum/?hl=zh_CN#!forum/pac4j-users – jleleu

1

您可以使用现有春季启动CAS首发

这会为您配置和神奇春季启动应用与CAS认证(因此你的应用程序将能够读取STPT毫不费力)。

我的cas security spring boot starter作家,所以我不会从UNICON开发的项目和cas client autoconfig support影响你的选择,但主要区别在于对春季安全整合。

事实上cas security spring boot starter春季安全完全兼容,这样你就可以用你春季安全知道的任何功能。而cas client autoconfig support将实例化和配置Apereo(Jasig)过滤器这不是设计用于开箱即用弹簧安全