我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何分析JEESZ-SSO的解决方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何分析JEESZ-SSO的解决方案

如何分析JEESZ-SSO的解决方案,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

第一节:单点登录简介

了解单点登录

SSO主要特点是: SSO应用之间使用Web协议(如HTTPS),并且只有一个登录入口.

SSO的体系中有下面三种角色:

1) User(多个)

2) Web应用(多个)

3) SSO认证中心(一个)

SSO实现包含以下三个原则:

1)所有的登录都在SSO认证中心进行。

2) SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是通过认证的用户.

3) SSO认证中心和所有的Web应用建立一种信任关系.

CAS的基本原理CAS(Central Authentication Service)是Yale耶鲁大学发起的构建Web SSO的Java开源项目。

CAS术语解释:

SSO-Single Sign On单点登录

TGT-Ticket Granting Ticket用户身份认证凭证票据

ST-Service Ticket服务许可凭证票据

TGC-Ticket Granting Cookie存放用户身份认证凭证票据的cookie.

了解单点登录体系结构

1)CAS Server负责完成对用户信息的认证,需要单独部署,CAS Server会处理用户名/密码等凭证(Credentials).

2)CAS Client部署在客户端,当有对本地Web应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server进行认证.

单点登录环境准备工作

1)cas-server-3.5.0-release.zip(CAS服务端)

2)cas-client-3.3.3-release.zip(CAS客户端)

3)apache-tomcat-7.0.40

4)cas-client-core-3.2.1.jar

5)cas-server-core-3.5.0.jar

6)cas-server-support-jdbc-3.5.0.jar

第二节:单点登录环境搭建与部署

环境部署

通过Java JDK生成证书三部曲

证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了JDK自带的证书生成工具keytool。

当然在实际项目中你可以到专门的证书认证中心购买证书。

使用JDK自带的keytool生成证书

第一步生成证书:

keytool -genkey -alias mycacerts -keyalg RSA -keystore C:/common/keys/keycard

注意:输入相关信息用于生成证书.其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,

注意不要写IP。

第二步导出证书:

keytool -export -file C:/common/keys/keycard.crt -alias mycacerts -keystoreC:/common/keys/keycard

第三步导入到JDK安装目录证书:

keytool -import -keystore C:/"ProgramFiles"/Java/jdk1.6.0_32/jre/lib/security/cacerts -fileC:/common/keys/keycard.crt -alias mycacerts

解压cas-server-3.5.0-release.zip文件,

在cas-server-3.5.0-release\cas-server-3.5.0\modules目录下找到cas-server-webapp-3.5.0.war文件并命名为cas.war,并复制到在Tomcat根目录的webapps目录下,

如下图:

修改host文件(C:\Windows\System32\drivers\etc)hosts文件中添加添加以下配置

127.0.0.1         jeesz.cn (配置自己的域名.)

注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到 fast-web.cn,可以用相应PC机的IP代替

修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml)添加以下内容:

在server.xml文件中把

maxThreads="150" scheme="https"secure="true"

clientAuth="false" sslProtocol="TLS" />

修改成如下:

port="8443"

protocol="org.apache.coyote.http11.Http11Protocol"

maxThreads="150"

SSLEnabled="true"

scheme="https"

secure="true"

clientAuth="false"

sslProtocol="TLS"

keystoreFile="C:/common/keys/keycard"

keystorePass="xxxxxx "

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

/>

启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入 jeesz.cn:8080/cas如果出现以下界面,则代表CAS服务端配置成功。

注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。

配置数据库验证

在apache-tomcat-7.0.2\webapps\cas\WEB-INF目录下找到deployerConfigContext.xml文件

这里sql属性是从user表中根据cas登陆名查找密码-->

增加数据源dataSource,

在deployerConfigContext.xml,(跟上面同一个文件)找到

,在下面添加如下代码:

com.mysql.jdbc.Driver

jdbc:mysql://127.0.0.1:3306/sso根据自己的数据库URL地址-->

root根据自己的数据库用户名-->

根据自己的数据库密码-->

数据库添加用户表及数据(这里用的mysql),比如在mysql数据库中有t_user表

增加jar包,cas-client-core-3.2.1.jar、cas-server-core-3.5.0.jar、cas-server-support-jdbc-3.5.0.jar包拷贝到apache-tomcat-7.0.2\webapps\cas\WEB-INF\lib目录下。

重启Tomcat,打开浏览器,输入  jeesz.cn:8080/,输入数据库里的用户名和密码,如果出现如下界面,则配置成功。

现在我们的CAS服务端已经配置好了,接下来,我们配置客户端

第二节:配置自己的Web工程(客户端)

在host文件下,添加如下代码:

127.0.0.1          www.sso1.com

127.0.0.1        www.sso2.com

注意:这个网址最好不要用互联网已经存在的域名,否则你将无法访问该地址。

如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,可以不配置此项,下文有用到www.sso1.com,www.sso2.com,可以用相应PC机的IP代替

在Tomcat根目录下创建一个sso1,sso2目录。如下如:

2在eclipse新建两个web工程,分别为sso1,sso2。

3在自己的Web工程里加入cas-client-core.jar,commons-logging-1.1.jar,(解压cas-client-3.2.0-release.zip,在cas-client-3.2.0-release.zip\cas-client-3.2.0\modules,找到该JAR包)分别加入到sso1,sso2工程的lib里。

看完上述内容,你们掌握如何分析JEESZ-SSO的解决方案的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何分析JEESZ-SSO的解决方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何分析JEESZ-SSO的解决方案

如何分析JEESZ-SSO的解决方案,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。第一节:单点登录简介第一步:了解单点登录SSO主要特点是: SSO应用之间使用Web协议(如H
2023-06-05

如何分析分布式session解决方案与一致性hash

这篇文章将为大家详细讲解有关如何分析分布式session解决方案与一致性hash,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、问题的提出1. 什么是Session?用户使用网站的服务,需
2023-06-04

AndroidANR无响应分析解决方案

这篇文章主要为大家介绍了AndroidANR无响应分析解决方案,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-15

如何分析企业部署DLP解决方案的总体策略

如何分析企业部署DLP解决方案的总体策略,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据泄露已经成为了企业网络安全问题的一个大项,越来越多的企业安全管理人员在为部署DLP解决
2023-06-17

面向企业级应用的PHP SSO单点登录解决方案探讨

随着企业级应用的日益增多,用户不再满足于使用单个应用进行工作和生活。相反,他们希望能够集成多个应用,并且只需登录一次,即可访问所有关联的应用。在这种情况下,单点登录(SSO)就成为了一个非常重要的解决方案,它可以提供一种无缝的用户认证和访问
2023-10-21

Discuz验证失败的原因分析与解决方案

Discuz验证失败的原因分析与解决方案在Discuz使用过程中,用户可能会遇到各种验证失败的问题,如登录失败、权限不足等。本文将针对这些问题进行分析,并提出解决方案,同时给出具体的代码示例帮助读者更好地解决这些问题。一、验证码验证失败
Discuz验证失败的原因分析与解决方案
2024-03-11

C++中堆和栈问题的分析与解决方案

C++中堆和栈问题的分析与解决方案在C++编程中,堆和栈是两种常用的内存管理方式。堆用于动态分配内存,而栈则用于存储局部变量和函数调用的上下文信息。然而,错误的使用堆和栈可能导致内存泄漏、段错误和无法预料的行为。因此,在编写C++代码时需要
2023-10-22

Oracle乱码提示的原因分析与解决方案

标题:Oracle乱码提示的原因分析与解决方案在使用Oracle数据库过程中,经常会遇到乱码显示的问题,这不仅影响数据的正确性,还会给数据处理与展示带来困扰。本文将从Oracle乱码问题的原因分析入手,探讨解决方案,并提供具体的代码示例帮
Oracle乱码提示的原因分析与解决方案
2024-03-09

如何解析SAP公有云和私有云解决方案

这篇文章给大家介绍如何解析SAP公有云和私有云解决方案,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SAP公有云解决方案见下图最右侧,比较著名的有SAP SuccessFactors和SAP Cloud for Cus
2023-06-04

如何进行iOS WKWebView秒开方案的分析

如何进行iOS WKWebView秒开方案的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言WKWebView 秒开方案,不仅需要端上优化,也需要前后端配
2023-06-22

Redis拒绝连接问题分析与解决方案

目录前言1. 问题描述2. Redis拒绝连接的常见原因分析2.1 Redis服务未启动2.2 Redis配置中的绑定地址问题2.3 防火墙或安全组问题2.4 Redis连接池耗尽2.5 Redis服务器负载过高2.6 权限配置问题3. 深
Redis拒绝连接问题分析与解决方案
2024-10-16

C++中代码优化问题的分析与解决方案

C++中代码优化问题的分析与解决方案在C++编程中,代码优化是一个重要的方面。优化代码可以使程序执行效率更高,运行速度更快,并减少资源的占用。本文将探讨一些常见的代码优化问题,并提供相应的解决方案和具体的代码示例。避免频繁的内存分配与释放在
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录