使用CAS代理和Spring Security调用RESTful服务

时间:2012-05-10 14:46:23

标签: ajax spring-security cas

我目前正在使用Spring Security with CAS作为身份验证机制来保护Web应用程序以及我的RESTful服务API(在单独的服务器上)。我想从AJAX中的Web应用程序调用RESTful服务。我已成功设置从Web应用程序到服务的CAS代理。使用我的AJAX / JQuery代码中的PGT调用服务来检索服务数据的最佳方法是什么?

现在我可以使用以下测试servlet成功读取服务数据,但我想知道使用AJAX的方法。

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
String targetUrl = "https://example.com/services/helloworld";

final CasAuthenticationToken token = (CasAuthenticationToken) req
    .getUserPrincipal();
final String proxyTicket = token.getAssertion().getPrincipal()
    .getProxyTicketFor(targetUrl);

// Make a remote call using the proxy ticket
final String serviceUrl = targetUrl + "?ticket="
    + URLEncoder.encode(proxyTicket, "UTF-8");
String proxyResponse = CommonUtils.getResponseFromServer(serviceUrl);

resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
PrintWriter writer = resp.getWriter();
writer.println(proxyResponse);
writer.flush();
}

1 个答案:

答案 0 :(得分:1)

我最终放弃了这个并转向OAuth 2解决方案。