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

时间:2016-09-21 02:27:49

标签: java tomcat cas

设置

A" Hello World"部署在Tomcat(ROOT)中的servlet

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

        
  • 的http://本地主机:8090 /你好
  •     
  • 的https://本地主机: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登录名,该登录名会在成功时重定向回我的应用程序。

2 个答案:

答案 0 :(得分:0)

如果我理解您的问题,那么您正试图加入您的问候语Web应用程序

我相信,为了让您的应用程序更新,它需要在安全端口上运行。

话虽如此,您将获得以下服务网址https://localhost:8443/hello

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

答案 1 :(得分:0)

(1)我更改了Tomcat ROOT的web.xml,因为我的应用程序的类被复制到ROOT文件夹中并从那里部署。

(2)我在检查Tomcat和CAS服务器的日志时遇到了这个问题。许多日志记录(和其他一些)库都不存在。我列出了所有这些,因为我不记得确切的补充:

        
  • 共享记录
  •     
  • SLF4J-API
  •     
  • SLF4J-EXT /锂&GT;     
  • SLF4J-JCL
  •     
  • SLF4J-JDK
  •     
  • SLF4J-log4j的
  •     
  • SLF4J-迁移
  •     
  • 公地NOP
  •     
  • 公地简单

(3)我并不声称对此具体事项有所了解,但可以通过在以下文件中将“HTTP”添加到“serverId”属性来确定HTTP URL: 〜/ [CAS SERVER DEPLOYMENT DIRECTORY] / WEB-INF / classes / services / HTTPSandIMAPS- [SOME NUMBER] .json