rest - 访问 CAS REST API 的工作 Java REST 客户端示例

标签 rest cas jasig

我关注了 this在我的本地 CAS 服务器上启用 REST 服务的教程。

但是没有Java示例

“Java REST 客户端示例

我们需要一个真实的、有效的例子,前一个没用。许多人给我发电子邮件说它不起作用,我确认它不起作用。”

我找到了 this但不幸的是,这对我不起作用。

任何指针/链接?非常感激。

最佳答案

知道了!

这是关于如何启用 CAS REST API 并能够通过 JAVA REST 客户端连接到它以造福他人的完整解决方案

  • 获取 CAS 源代码。
  • 评论 this文章
  • 像#2
  • 中的文章所建议的那样,将以下内容添加到 pom.xml
    <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-integration-restlet</artifactId> <version>${cas.version}</version> <type>jar</type> </dependency>
  • 确保将以下内容添加到 pom.xml 以避免 Spring jar 冲突。就我而言,cas-server-integration-reSTLet 依赖于 spring-web,它默认使用旧版本的 Spring。所以,我明确定义了
  • <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.1.RELEASE</version> </dependency>
  • 编译你的 cas 代码。应该在您的目标文件夹中获取 cas.war。
  • 将其上传到您的服务器,更改 tomcat 的权限并等待它部署
  • 在 CATALINA/conf 中找到 server.xml 并取消注释 8443 端口配置,以便我们的服务器允许 SSL 连接。此外,请在此处指定您的证书。
  • 现在导航到展开的 cas.war 文件并深入到 WEB-INF 文件夹以查找 deployerConfigContext.xml 文件。指定 CAS 将用于验证的内容。就我而言,我使用了 LDAP。
  • 将以下每篇文章添加到 web.xml
  • <servlet> <servlet-name>restlet</servlet-name> <servlet-class>com.noelios.restlet.ext.spring.RestletFrameworkServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet><servlet-mapping> <servlet-name>restlet</servlet-name> <url-pattern>/v1/*</url-pattern> </servlet-mapping>
  • 重启 tomcat 使更改生效。
  • 测试您是否可以通过标准 CAS UI 登录:https://server:8443/cas/login
  • 测试 REST API 是否通过以下方式公开:https://server:8443/cas/v1/tickets
  • 现在让我们连接它。我用过 this示例代码。确保提供正确的链接和用户名/密码
  • 当我尝试按原样运行代码时,它提示“由:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径”。基本上要求您安装证书。如果您有权访问服务器,只需将其复制过来即可。如果没有,我找到了 this如果您没有访问权限或太懒,代码将为您处理安装:)
  • 现在,如果您使用有效凭据运行 JAVA CAS 客户端,您应该会看到类似
  • 的内容。

    201
    https://server_name:8443/cas/v1/tickets/TGT-4-rhVWLapYuOYi4InSEcmfNcABzaLMCPJgGIzlKqU1vb50zxb6pp-server_name
    Tgt is : TGT-4-rhVWLapYuOYi4InSEcmfNcABzaLMCPJgGIzlKqU1vb50zxb6pp-server_name.ndev.coic.mil
    Service url is : service=https%3A%2F%2Fmyserver.com%2FtestApplication
    https://server_name:8443/cas/v1/tickets/TGT-4-rhVWLapYuOYi4InSEcmfNcABzaLMCPJgGIzlKqU1vb50zxb6pp-server_name
    Response code is:  200
    200
    ST-4-BZNVm9h6k3DAvSQe5I3C-server_name
    

  • 您可以看到 200 代码和票证。如果您要查看服务器上 cas 的日志,您应该会看到有关成功验证和票证生成的消息。
  • 将用户名/密码更改为一些虚拟数据并尝试运行代码。您将收到 400 错误消息,这意味着访问权限被拒绝。

  • 成功!

    关于rest - 访问 CAS REST API 的工作 Java REST 客户端示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625368/

    相关文章:

    docker - 如何启动本地 docker 拉取镜像 (apereo/cas)?

    spring - 配置 Jasig CAS 以使用 BCrypt

    tomcat - 当我构建应用程序以对抗 SLO(单点注销)时停止工作

    java - CXF平安归来图片

    javascript - 具有 json 和 bigint 属性的 Node.js Rest api

    java - Cas 客户端票证验证失败,出现错误:找不到与 cas URL 匹配的主题备用 DNS 名称

    java - 发送一些内容后重定向网页

    Node.js HTTP GET 请求内容类型

    java - 使用 queryMap 进行 Spark 路由解析

    java - CAS4 不支持的主要.次要版本 52.0