SSO单点登录教程(四)自己动手写SSO单点登录服务端和客户端

作者:蓝雄威,叩丁狼教育高级讲师。原创文章,转载请注明出处。

一、前言

我们自己动手写单点登录的服务端目的是为了加深对单点登录的理解.如果你们公司想实现单点登录/单点注销功能,推荐使用开源的单点登录框架CAS.我们后面的章节也会带同学们快速搭建CAS Server和CAS Client的环境.

二、条件

如果没看前面章节的同学,请返回去观看这几章内容,不然这代码是不太好理解的.

  • SSO单点登录教程(一)多系统的复杂性
  • SSO单点登录教程(二)单点登录流程分析
  • SSO单点登录教程(三)单点注销流程分析

    三、环境要求

  • JDK1.7+
  • Maven3.3
  • Eclipse/IDEA

    四、准备工作

    因为我们主要讲的是跨域的单点登录,所以我们需要把不同项目部署到不同域名下.不可能为了完成这个代码,让同学们去阿里云买三台主机,映射三个IP.所以我们的实验就在本机来实现.我们需要修改host文件,让三个域名映射到本机.
    host文件存放的位置:C:\Windows\System32\drivers\etc
    打开host文件之后,在最后追加如下配置:
    127.0.0.1 www.sso.com
    127.0.0.1 www.crm.com
    127.0.0.1 www.wms.com
    
    这段配置的意思是,我们在浏览器中输入:
    http://www.sso.com
    http://www.crm.com
    http://www.wms.com
    其实访问的都是本机:127.0.0.1

PS:有些同学打开这个文件之后,保存的时候可能被拒绝.原因可能是权限不够.解决方法:把host文件拷贝到桌面(有权限的地方即可),修改好之后再把:C:\Windows\System32\drivers\etc的host文件覆盖.

五、下载基础项目

基础项目代码下载链接在页面底部.

我在github上传的是maven结构的项目.如果需要导入到Eclipse/IDEA中需要生成对应的Eclipse/IDEA的配置文件.
cmd命令进入到项目的根目录 $项目存放位置/sso-server-base-project

  • 如果是Eclipse,运行mvn eclipse:eclipse
  • 如果是IDEA,运行mvn idea:idea

处理好之后,把项目导入到工具中,我们就可以开始开发了.

六、项目结构说明

服务端
sso-server-base-project目录
  src
      main
        java
        resources
           -applicationContext.xml
        webapp
          static
          WEB-INF
              views
                -login.jsp
                -logOut.jsp
              -web.xml
  -pom.xml

服务端项目就只配置了SpringMVC的环境.
pom.xml:项目的pom文件,已经配置的Tomcat插件端口为:8443
applicationContext.xml:spring配置文件
static:静态资源目录,存放css,js
login.jsp:登陆页面
logOut.jsp:登出页面
web.xml:web的配置文件,配置前端请求DispatherServlet

客户端
sso-client-base-project目录
  src
      main
        java
          -cn.wolfcode.sso.controller.MainServlet.java
          -cn.wolfcode.sso.controller.LogOutServlet.java
        webapp
          WEB-INF
              views
                -main.jsp
              -web.xml

客户端没有使用Spring框架.使用Servlet3.0

@WebServlet(name = "mainServlet", urlPatterns = "/main")

在Servlet类上贴这个注解就可以进行映射.
MainServlet.java:处理主页请求/main的servlet.
LogOutServlet.java:处理登出的请求/logOut的servlet
main.jsp:首页

客户端项目导入之后,运行tomcat7:run命令,在浏览器中输入
http://www.crm.com:8088/main
会看到如下界面:
CRM项目首页

七、执行流程图

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值