74分布式电商项目 - CAS客户端Demo

代码已上传至Github
地址:https://github.com/ylw-github/SSO-Demo.git

整个工程结构图如下:
在这里插入图片描述
Maven项目依赖cas,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.pyg</groupId>
    <artifactId>sso-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>SsoDemo1</module>
        <module>SsoDemo2</module>
    </modules>

    <packaging>pom</packaging>
    <dependencies>
   
        <!-- cas -->
        <dependency>
            <groupId>org.jasig.cas.client</groupId>
            <artifactId>cas-client-core</artifactId>
            <version>3.3.3</version>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

客户端工程1搭建

1)声明parent,并设置打包方式为war:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>sso-demo</artifactId>
        <groupId>com.pyg</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>sso-demo1</artifactId>

    <packaging>war</packaging>
</project>

2)新建web.xml,部署tomcat时,IP端口要与web.xml声明的servername对应的IP端口一致,例如工程1的端口是8079,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->
    <listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener
        </listener-class>
    </listener>

    <!-- 该过滤器用于实现单点登出功能,可选配置。 -->
    <filter>
        <filter-name>CAS Single Sign Out Filter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>CAS Single Sign Out Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 该过滤器负责用户的认证工作,必须启用它 -->
    <filter>
        <filter-name>CASFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>http://192.168.25.128:8080/cas/login</param-value><!--这里的 server 是服务端的 IP -->
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://localhost:8079</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 该过滤器负责对 Ticket 的校验工作,必须启用它 -->
    <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>http://192.168.25.128:8080/cas</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://localhost:8079</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CAS Validation Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 该过滤器负责实现 HttpServletRequest 请求的包裹, 比如允许开发者通过HttpServletRequest 的 getRemoteUser()方法获得 SSO 登录用户的登录名,可选配置。 -->
    <filter>
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
        <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 该过滤器使得开发者可以通过 org.jasig.cas.client.util.AssertionHolder 来获取用户的登录名。 比如 AssertionHolder.getAssertion().getPrincipal().getName()。 -->
    <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 Assertion Thread Local Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

3)新建index.jsp,内容如下:

<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>一品优购</title>
</head>
<body>
欢迎来到一品优购
<%=request.getRemoteUser()%>
</body>
</html>

客户端工程2搭建

仿照前面工程一设置,步骤二的端口为8078,index的内容也做了部分修改,欢迎来到一改为欢迎来到二

单点登录测试

(1)启动 cas 部署的 tomcat
(2)启动客户端工程 1 和客户端工程 2
(3)地址栏输入 http://localhost:8079/http://localhost:8078/ ,地址均会跳转到 CAS
登录页
(4)输入用户名和密码后,页面跳转回 8079 ,再次访问8079和8078 也可以打开主页面。

单点退出登录

地址栏输入 http://192.168.25.125:8080/cas/logout(tomcat配置的cas服务器地址)即可看到退出后的提示页面。
在这里插入图片描述
但我们更希望退出登录后,能自动跳转到某个页面,那如何处理呢?

修改 cas 系统的配置文件 cas-servlet.xml

<bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
p:servicesManager-ref="servicesManager"
p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>

改为 true 后,可以在退出时跳转页面到目标页面,修改 index.jsp 的退出链接

<a href="http://localhost:9100/cas/logout?service=http://www.baidu.com">退出登录</a>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电子商务购物平台 概要设计说明书 1引言 作为互联网战略的延伸,电子商务的热潮一度兴起,但是一直以来,很多企业网站都局限在信息发布等一些基本的功能,而越来越深入的实践表明,这些仅仅代表了企业网站的一个起点功能。随着企业网络环境的发展成熟,企业门户网站可以帮助企业把现有的业务系统整合起来,集中优势资源为客户提供个性化服务,并为企业创建一个良好的收入渠道。 1.1编写目的 锻炼本阶段学校的成果,让我们更加的熟练运用所学的知识,对应web开发的流程更加的清晰,增加了我们对servlet的理解。 1.2背景 网上购物是电子商务的重要组成部分。网上购物就是通过互联网检索商品信息,并通过电订购单发出购物请求,然后填上私人支票帐号或信用卡的号码,厂商通过邮购的方式发货,或是通过快递公司送货上门。国内的网上购物,一般付款方式是款到发货(直接银行转帐,在线汇款)。担保交易(淘宝支付宝,百度百付宝,腾讯财付通等的担保交易),货到付款等 2总体设计 2.1运行环境 Jdk1.7 Tomcat7.0.61 Oracle 11g 2.2软件功能框架图 基于jsp+servlet开发的电子商务购物平台 3相关设计 3.1类框图(必须包括DAO相关类框图) 基于jsp+servlet开发的电子商务购物平台 1.1编写目的 锻炼本阶段学校的成果,让我们更加的熟练运用所学的知识,对应web开发的流程更加的清晰,增加了我们对servlet的理解。 2未完成功能说明 重置用户所有密码 3安装与初始化 3.1可执行程序安装运行说明 前台登录url:http://localhost:8080/EbProject/ 后台管理登录url:http://localhost:8080/EbProject/admin/AdminIndex.jsp 3.2数据库安装说明 百度安照教程去操作http://jingyan.baidu.com/article/ed15cb1b785b1c1be3698105.html 3.3初始数据说明 前台登录账号与密码, 账户0002密码2222 后台登录账号与密码 账户Admin密码8888 普通管理员: 账户0008密码8888 4操作简要说明 结合项目效果图说明操作步骤,每一个功能对应一张效果图 基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值