java - 将 CAS 集成到 Java 动态 Web 项目中

标签 java tomcat cas

设置


在 Tomcat (ROOT) 中部署的“Hello World”servlet

(1) 这在没有 CAS 的情况下工作,我可以通过以下 URL 访问我的应用程序:

  • http://localhost:8090/你好
  • https://localhost:8443/你好

(2) 我在 Tomcat ROOT 的 web.xml 中插入了以下内容:

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>org.leo.Hello</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

<!-- Authentication filter -->
<filter>
    <filter-name>CAS Authentication Filter</filter-name> 
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 
    <init-param> 
        <param-name>casServerLoginUrl</param-name> 
        <param-value>https://localhost:8443/cas/login</param-value> 
    </init-param> 
    <init-param> 
        <param-name>serverName</param-name> 
        <param-value>https://localhost:8443</param-value>
    </init-param> 
</filter>

<!-- Ticket validation filter -->
<filter>
    <filter-name>CAS Validation Filter</filter-name> 
    <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> 
    <init-param> 
        <param-name>casServerUrlPrefix</param-name> 
        <param-value>https://localhost:8443/cas</param-value> 
    </init-param> 
    <init-param> 
        <param-name>serverName</param-name> 
        <param-value>https://localhost:8443</param-value>
    </init-param>
</filter> 

<!-- HTTP servlet request wrapper filter -->
<filter>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 
    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> 
</filter>

<!-- Assertion thread local filter -->
<filter>
    <filter-name>CAS Assertion Thread Local Filter</filter-name>
    <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>

<filter-mapping> 
    <filter-name>CAS Authentication Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>CAS Validation Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>
<filter-mapping>
    <filter-name>CAS Assertion Thread Local Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

(3)CAS服务器也部署在Tomcat内部


问题


完成所有这些编辑后,我通过 HTTP 和 HTTPS 都收到了 404。我在这里做错了什么?

我需要我的应用程序重定向到 CAS 登录名,它会在成功时重定向回我的应用程序。

最佳答案

如果我对你的问题的理解是正确的,那么你正在尝试对你的 hello web 应用程序进行 casify

我相信,要对您的应用程序进行 casify,它需要在安全端口上运行。

话虽如此,您将对以下服务 URL 进行分类,https://localhost:8443/hello

您能否尝试将 web.xml 条目(CAS 相关)添加到您的 hello 应用程序的 web.xml 而不是 tomcat 的 ROOT web.xml?

关于java - 将 CAS 集成到 Java 动态 Web 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39606570/

相关文章:

java - 子列表内使用 HashMap 进行映射

java - Tomcat - 访问部署的应用程序时端口和 url 发生变化

java - 撒克逊 Xalan JSP

ASP.NET - 信任级别 = 完全?

java - 尝试在 Spring Webflow 中渲染 View 时的 NPE

spring - Shiro 和 CAS 如何使用不同的域进行身份验证和授权?

java - 在 Java 中预分配对象有哪些问题?

java - MapStruct:源参数中不存在名为 "updatedDate"的属性。您的意思是 "empty"吗?

java - 我是否必须将 csv 值加载到 Java Web 应用程序的数据库中

tomcat - 使用 Tomcat Cookbook 安装 tomcat7