jeesite单点登录集成说明
java单点登录的实现与应用整合中SSO的技术实现
java单点登录的实现在门户项目中,经常会遇到如何实现单点登录的问题,下面就本人的经验做个总结。
欢迎大家进行补充讨论。
单点登录的具体实现有很多种选择,包括:1.采用专门的SSO商业软件:主要有:Netgrity的Siteminder,已经被CA收购。
Novell 公司的iChain。
RSA公司的ClearTrust等。
2.采用门户产品供应商自己的SSO产品,如:BEA的WLES,IBM 的Tivoli Access Manager,Sun 公司的identity Server,Oracle公司的OID等。
3.这些商业软件一般适用于客户对SSO的需求很高,并且企业内部采用COTS软件如:Domino,SAP,Sieble的系统比较多的情况下采用。
并结合身份管理。
统一认证等项目采用。
采用这些软件一般都要对要集成的系统做些改造,如在要集成的系统上安装AGENT。
现在一般只提供常见软件如:Domino,SAP,Sieble,常见应用服务器:weblogic,websphere等的AGENT。
要先统一这些系统的认证。
一般采用LDAP或数据库。
然后才能实现SSO。
比较麻烦。
4.另外,如果不想掏银子,也有OPEN SOURCE的SSO软件可选:主要有:/ https:/// 等。
具体怎么样就不清楚了。
如果项目对SSO的要求比较低,又不想对要被集成的系统做任何改动,可采用下面介绍的方式简单实现:下面我们通过一个例子来说明。
假如一个门户项目要对下面的几个系统做SSO。
用户在这些系统中的用户名,密码各不相同,如:员工号为001的员工在这些系统中的用户名,密码分别如下:用户系统用户名密码001 Portal系统 A 1234001 邮件系统 B 2345001 DOMINO系统 C AAAA001 报销系统 D CCCC001 工资系统 E BBBB首先,建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系首先,要建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系并保存。
SSO、单点登录、集成CAS、OAuth2
SSO、单点登录、集成CAS、OAuth2JeeSite 已经默认集成了两种单点登录方式(Single Sign On):1、SSO(简单登录)接口,实现快速登录系统。
2、与 Apereo CAS 服务器集成,快速实现系统登录(个人版)并实现了第三方登录 OAuth2,如:微信、QQ、支付宝、等等简单登录接口系统登录:1、设置application.yml(v4.0.x:jeesite.yml)的shiro.sso.secretKey 快速登录安全Key,若不设置将无法使用该接口。
shiro:# 简单 SSO 登录相关配置sso:# 如果启用/sso/{username}/{token}单点登录,请修改此安全key并与单点登录系统key一致。
secretKey: thinkgem# 是否加密单点登录安全KeyencryptKey: true2、举例调用地址如下,调用完成后自动登录系统:http://localhost/project/sso/{username}/{token}?url=/sys/us er/list?p1=v1%26p2=v2&relogin=true•username: 登录名,数据库中的 login_code 字段。
•token: 登录令牌,根据yml里配置的登录安全Key生产的密码。
•url: 登录之后要跳转的地址,如果url中携带参数,请使用转义字符,如“&”号,使用“%26”转义。
token生成方式:String username = "system"; // 登录系统名String secretKey = "thinkgem"; // yml 中设置的shiro.sso.secretKey 参数值。
String token = Md5Utils.md5(secretKey + username +DateUtils.getDate("yyyyMMdd"));// 如果 shiro.sso.encryptKey 为 true,则 secretKey 会自动加密。
单点登录技术
统一身份认证平台1.产品概述随着信息化建设的推进和信息化水平的不断提升,各级政府和企业已经建设了众多的应用系统并在日常工作中使用。
这些应用系统,很多是不同开发商在不同的时期采用不同技术建设的,如:办公系统、业务处理系统、事物管理系统等等。
这些应用系统中,多数都有自成一体的用户管理、授权及认证体系,用户在实际应用过程往往需要记几套用户帐号和密码,而且系统间的切换也非常复杂。
同时管理员对用户和权限的管理工作量将随着系统的新增成几何数上升。
在推进和发展信息化建设的进程中,需要通过统一规划和设计,建立一套用户统一管理及单点认证的支撑平台。
利用此支撑平台,使用单位可以实现用户一次登录、网内通行,避免了登录到多个应用系统需要多次输入用户名口令的情况。
此外,可以对各应用系统的使用权限和用户变更进行统一管理,实现多层次的统一授权。
系统将为客户构建一个综合的应用集成平台,有效地解决应用的整合和用户的统一管理,并实现高效的单点登录机制,为未来信息化的发展打下良好的基础。
2.系统实现2.1用户登录应用系统用户输入帐号和密码登录某个应用系统:2.2用户身份验证应用系统根据用户的登录请求及接收到的帐号和密码到用户身份验证中心进行身份认证。
2.3通过验证用户身份验证中心在通过用户的身份认证后将用户身份信息返回给应用系统,则用户当前身份进入应用系统。
2.4应用系统之间漫游用户欲从应用系统1转到应用系统2,实现系统漫游2.5身份票据实现系统之间漫游用户在从应用系统1到应用系统2漫游的过程中,首先需要根据用户的身份信息到票据中心获到身份票据(User Token Info),再根据用户身份票据信息到用户身份验证中心获到用户身份,然后用户以当前身份进入应用系统2。
3.统一用户档案针对不同的用户群体,采用的注册机制是不同的。
通过统一用户档案,将各类用户的信息归档,统一管理。
单点登录,系统赋予了每一个系统的注册用户不同的角色权限,使得这些用户同时访问门户时,接收到不同的门户信息展示。
jeesite 说明文档-3.内置组件的应用
第3章内置组件的应用作者:ThinkGem更新日期:2014-01-05 1.常用组件1.1.布局组件布局文件配置:/ jeesite/src/main/webapp/WEB-INF/decorators.xml默认布局文件:/ jeesite/src/main/webapp/WEB-INF/views/layouts/default.jsp非公共,自己建立的布局文件:/ jeesite/src/main/webapp/WEB-INF/views/模块路径/layouts/布局文件.jsp 使用布局文件:JSP的head里添加:<meta name="decorator" content="default"/>1.2.用户工具UserUtils.java fns.tld应用场景:在java文件或jsp页面上,获取当前用户相关信息1.获取当前用户:1)UserUtils.getUser();2)entity.currentUser()3)${fns:getUser()}2.获取当前用户部门:1)UserUtils.getOfficeList()2)${fns:getOfficeList()}3.获取当前用户区域:1)UserUtils.getAreaList()2)${fns:getAreaList()}4.获取当前用户菜单:1)UserUtils.getMenuList()2)${fns:getMenuList()}5.获取当前用户缓存:1)UserUtils.getCache(key);2)${fns:getCache(cacheName, defaultValue)}6.设置当前用户缓存:1)UserUtils.putCache(key);1.3.全局缓存CacheUtils.java应用场景:系统字典1.设置应用程序缓存:CacheUtils.put(key);2.获取应用程序缓存:CacheUtils.get(key);1.4.字典工具DictUtils.java应用场景:系统全局固定的字典数据,java或jsp中获取字典相关数据。
门户单点登录实现与应用集成技术
门户单点登录实现与应用集成技术概述企业信息门户作为企业内部门户基础平台,一大主要用途是实现现有的业务系统、数据资源、人力资源的整合,实现信息(数据)的合理聚集;通过实现统一的用户和统一的访问入口来访问门户平台中整合的相关信息资源,真正实现资源的有效利用,更大发挥企业现有资源的使用价值,提高生产效率。
门户应用集成技术作为关键性的技术手段,实现门户网站与业务系统之间单点登陆,以及内容聚集。
本文档通过归纳总结,将企业应用集成中可以使用的技术做出相应阐述,为实现门户与业务系统集成提供技术参考。
本文将结合实际情况,分析企业应用中,常用的集成技术的核心环节,以及每项技术适用范围。
本文档提供技术性的参考,实际工作中将需要结合具体情况选择最适合的集成技术来解决实际的问题,技术在日益更新,文档也将实时将最新的集成技术归纳总结。
文章并不涉及具体编码、配置的实现细节,只针对相关的集成技术做阐述,具体实现应当专注于具体的技术环节,同时根据环境与实际需求来做相应的调整。
名词解释门户这里专指利用门户产品构建的各种门户系统,包括 B2E 门户、B2C 门户、B2B 门户。
单点登录用户仅需要在门户系统登录一次,就可以访问被授权访问的栏目或者其他应用,用户只需要记住一个帐号即可。
通过提供安全登录访问和集中管理应用软件和数据的信息框架,实现用户只需登录一次,即可获得授权范围内所有企业应用程序的访问权。
portletPortlet 是特殊类型的 Web 模块,它们被设计成在门户网站的环境中运行,是独立地开发、部署、管理和显示小门户网站的应用程序。
Portlet 不仅仅是现有 Web 内容的简单视图。
portlet 是完整的应用程序,遵循标准模型-视图-控制器设计。
Portlet 有多个状态和查看方式以及事件和消息传递能力。
同时 Portlet 是可再用的 Web 模块,它们在门户网站服务器上运行并提供对基于 Web 的内容、应用程序和其他资源访问。
Ecology系统接口指南---单点登录篇
Ecology系统集成接口指南—单点登录篇(V0.1)SUBMITED BY WEA VER1、集成登陆 (3)1.1使用说明 (3)1、集成登陆企业在信息化的过程中不可避免的会购置各种各样的业务系统,为了登陆不同的系统,用户需要频繁的打开不同的窗口、输入各自的帐号密码,费时费力。
但是通过ecology系统的自定义菜单功能和集成登陆接口,可以比较方便的实现登陆ecology系统后直接到达其他业务系统的功能,省去了繁琐的登陆过程。
1.1使用说明1.系统管理员维护待集成系统的登陆页面地址,如图所示:(图一,继承登陆菜单入口)(图二,点“集成登陆”菜单后的显示页面,我们可以通过“新建”来维护需要集成的系统。
本文以集成网易163邮箱为例。
注意:标识很重要,不能重复,在后面的步骤中会用到标识值)(图三,新建页面。
内网地址为局域网访问,外网地址为internet访问。
账号参数名和密码参数名通过查看该系统登录页面的html源码获得,如果登陆页面还有其他输入项的话则添加其他参数)页面说明标示:通过自定义菜单搭建其他系统入口时的唯一标志,下文会说明(不可重复)内网地址,外网地址:其他系统的访问地址,通常情况下保持一致就可以,某些特殊的客户同一个系统可能内网访问和外网访问用的是不同的地址,那么这里要分别设置帐号参数名:登陆其他系统的的用户名的参数名称,其值可以直接选择直接用ECOLOGY 的帐号登陆(如果其他系统的帐号和ECOLOGY帐号一致)或者由客户在使用的时候先输入一次帐号,以后只要在其他系统帐号改变的时候再输入就可以!密码参数名:登陆其他系统的的口令的参数名称,其值可以直接选择直接用ECOLOGY的密码登陆(如果其他系统的帐号和ECOLOGY密码一致)或者由客户在使用的时候先输入一次密码,以后只要在其他系统密码帐号改变的时候再输入就可以!其他参数:有些系统登陆的时候可能还需要一些其他的参数,在这里可以自由添加;参数名为实际登陆到其他系统的时候所需要的参数的名称,标签是客户在设置参数值时的一个说明,参数值可以从部门(ECOLOGY 中的部门ID),分部(ECOLOGY系统中的分部ID),固定值(如果选择固定值,必须在后面输入一个值),用户录入(客户在使用的时候先输入一次)中选择(图四,给待集成的系统添加左侧菜单)(图五)(图六,链接地址必须设为/interface/Entrance.jsp?id=待集成系统的标识值)(图七,这个菜单用来给系统用户维护集成系统的帐号信息。
单点登录方案
单点登录方案随着互联网的发展和应用的广泛普及,人们使用各种各样的在线服务来满足他们的需求。
然而,随之而来的问题是,每个在线服务都需要用户进行独立的身份验证,这导致了繁琐的登录过程和大量的账户管理工作。
为了解决这个问题,单点登录(Single Sign-On,简称SSO)方案应运而生。
一、什么是单点登录(SSO)?单点登录是一种身份验证和访问控制的解决方案,通过一次登录获得对多个相关但独立的系统或应用的访问权限。
换句话说,用户只需要进行一次身份验证,就可以访问多个应用,而无需重复登录。
二、单点登录的工作原理在单点登录方案中,有三个主要的角色:身份提供者(Identity Provider,简称 IdP)、服务提供者(Service Provider,简称 SP)和用户。
1. 身份提供者(IdP):负责管理用户的身份信息,并为用户提供身份验证服务。
当用户尝试访问某个服务时,该服务会将用户重定向到身份提供者,并请求验证用户的身份。
2. 服务提供者(SP):其为用户提供服务的网站或应用程序,不直接管理用户的身份信息,而是依靠身份提供者进行身份验证。
3. 用户:通过身份提供者进行身份验证,并可以访问多个服务提供者。
具体的工作流程如下:1. 用户访问某个服务提供者的网站或应用程序。
2. 服务提供者检测用户未进行身份验证,将用户重定向到身份提供者。
3. 用户在身份提供者的登录页面进行身份验证。
4. 身份提供者验证用户的身份,并生成一个访问令牌(Token)。
5. 身份提供者将访问令牌发送给用户的浏览器。
6. 用户的浏览器将访问令牌发送给服务提供者。
7. 服务提供者接收到访问令牌后,验证其有效性,并为用户提供相应的服务。
三、单点登录的优势1. 方便性:用户只需进行一次登录,即可无缝访问多个应用,大大简化了登录流程,提高了用户体验。
2. 安全性:通过集中管理用户的身份信息,减少了密码泄漏和遗忘密码的风险。
同时,也便于对用户的访问进行监控和管理。
jeesite 说明文档-2.文件结构与配置
第2章文件结构与配置作者:ThinkGem更新日期:2014-4-8 1.文件结构1.1.源码目录src/main/java1.2.资源目录src/main/resource1.3.发布目录src/main/webapp1.4.执行目录dbbin2.jeesite.properties2.1.数据源配置# 数据库驱动,连接设置。
jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orclername=jeesitejdbc.password=123456# 连接池设置,初始大小,最小,最大连接数。
jdbc.pool.init=1jdbc.pool.minIdle=3jdbc.pool.maxActive=20# 测试连接sql语句jdbc.testSql=SELECT'x'FROM DUAL2.2.系统配置# 配置产品名称,版权日期和版本号productName=JeeSite AdmincopyrightYear=2014version=V1.1.1# 是否是演示模式,如果是,则如下模块,无法进行保存操作# sys: area/office/user/role/menu/dict, cms: site/category demoMode=false# 管理端跟路径adminPath=/a# 前端跟路径frontPath=/f# 信息发布时的URL后缀,可配置HTML后缀的页面进行缓存urlSuffix=.html# 分页大小,默认每页15条page.pageSize=15# 硕正组件是否使用Cache(一般开发阶段,关闭Cache)eCache=false# 设置通知间隔访问时间,单位毫秒.oa.notify.remind.interval=600002.3.框架参数配置# 设置SESSION超时时间,web.xml里设置无效,单位毫秒. session.sessionTimeout=120000session.sessionTimeoutClean=120000# 缓存设置ehcache.configFile=cache/ehcache-local.xml#ehcache.configFile=cache/ehcache-rmi.xml# 首页地址web.view.index=/a# 视图文件配置,前缀和后缀web.view.prefix=/WEB-INF/views/web.view.suffix=.jsp# 最大上传字节数 10M=10*1024*1024(B)=10485760web.maxUploadSize=10485760# 设置日志拦截器,拦击的URI,@RequestMapping 值web.logInterceptExcludeUri=/,/login,/sys/menu/tree,/sys/menu/treeData,/oa/oaNotify/self/countweb.logInterceptIncludeRequestMapping=save,delete,import,updateSort# 工作流配置activiti.isSynActivitiIndetity=falseactiviti.export.diagram.path=c:/activiti_diagram#activiti font (windows font: \u5B8B\u4F53 linux font: simsun)activiti.diagram.activityFontName=\u5B8B\u4F53belFontName=\u5B8B\u4F53activiti.form.server.url=http://127.0.0.1:8075/xxxx3.pom.xml3.1.修改项目名称artifactId:项目名称version:版本修改完成后运行eclipse.bat重新生成项目文件。
单点登录的实现方法 -回复
单点登录的实现方法-回复单点登录(Single Sign-On,简称SSO)是一种身份认证系统,允许用户使用一组凭据登录多个应用程序或网站。
在传统的系统中,用户需要分别登录每个应用程序或站点,每个站点都需要用户提供登录凭证。
这样做不仅繁琐,而且容易忘记各个站点的登录凭证。
另外,随着应用程序的增多,用户要记住越来越多的账号和密码也变得困难。
单点登录可以解决这些问题,提供更便捷和安全的用户体验。
那么,如何实现单点登录呢?下面将一步一步介绍实现单点登录的方法。
第一步:确定身份提供者和服务提供者在实现SSO之前,首先需要明确身份提供者(Identity Provider,简称IdP)和服务提供者(Service Provider,简称SP)。
IdP是负责用户身份验证和授权的系统,而SP是需要接入SSO系统的应用程序或网站。
第二步:选择合适的身份认证协议实现SSO的关键在于选择合适的身份认证协议。
常见的SSO协议包括CAS(Central Authentication Service)、SAML(Security Assertion Markup Language)和OAuth(Open Authorization)等。
选择哪种协议取决于系统的需求和要接入的应用和网站的支持能力。
- CAS:CAS是一种基于票据(Ticket)的SSO协议,可以在用户登录成功后生成一个票据,并将该票据发送给所有需要登录的应用程序或网站。
应用程序或网站可以向CAS验证此票据的有效性,并允许用户访问相应的资源。
CAS具有简单、易于实现和部署的特点,因此广泛应用于教育和企业系统。
- SAML:SAML是一种基于XML的SSO协议。
它使用SAML断言(Assertion)来在IdP和SP之间传递用户身份信息。
用户登录后,IdP 将生成一个SAML断言,并将其发送给SP。
SP可以验证该断言的签名和有效性,并根据断言的内容授权用户访问资源。
JeeSite
JeeSite企业信息管理系统基础框架目录1.JEESITE概述 (4)1.1.简介 (4)1.2.为何选择 (4)1.3.相关技术 (5)1.4.安全考虑 (6)2.管理功能演示 (7)2.1.管理登录 (7)2.1.1.登录界面 (7)2.1.2.主题切换 (8)2.2.总体介绍 (11)2.2.1.客户端验证 (11)2.2.2.提交结果信息 (11)2.3.控制面板 (12)2.3.1.个人资料 (12)2.3.2.修改密码 (12)2.4.机构用户 (12)2.4.1.用户管理 (12)2.4.2.机构管理 (14)2.4.3.区域管理 (16)2.5.系统设置 (18)2.5.1.菜单管理 (18)2.5.2.角色管理 (19)2.5.3.字典管理 (21)2.6.内容管理 (22)2.6.1.内容管理 (22)2.6.2.评论管理 (27)2.6.3.栏目管理 (28)2.6.4.站点管理 (29)2.6.5.公共留言 (31)2.6.6.文件管理 (32)2.6.7.网站展示(基础主题) (34)3.功能组件 (40)3.1.U TILS (41)3.2.T AGLIB (42)3.3.EL F UNCTION (42)3.4.J AVA S CRIPT (42)4.快速体验 (42)4.1.在线体验 (42)4.2.本地体验 (43)5.交流、反馈、参与贡献 (43)6.未来开发计划 (43)1.JeeSite概述1.1.简介JeeSite是一个开源的企业信息管理系统基础框架。
主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。
JeeSite是非常强调开发的高效性、健壮性和安全性的。
JeeSite是轻量级的,简单易学,本框架以Spring Framework为核心、Spring MVC(相比Struts2更容易上手、更易用)作为模型视图控制器、Spring Data JPA + Hibernate作为数据库操作层,此组合是Java界业内最经典、最优的搭配组合进行封装。
