如何配置CAS php 单点登录?求详简。。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置CAS php 单点登录?求详简。。。相关的知识,希望对你有一定的参考价值。
参考技术A 你可以试试这个方法:你得用redirect来保证cookie被存到浏览器,不过我觉得你也可以用javascript发送http请求来保证cookie被记录在第二个domain下面。
What
we
have
implemented
on
a
few
sites
that
use
a
single
sign
on
is
a
round
trip
login
process.
The
user
authenticates
on
the
first
domain,
we
encrypt
the
login
details,
and
redirect
them
to
a
known
page
on
the
second
domain,
log
them
in
there,
and
then
redirect
back
to
the
original
server.
This
client
side
redirection
is
important
-
cookies
are
only
written
when
there
is
a
response
back
to
the
client,
and
the
browser
has
to
visit
the
second
domain
to
actually
see
the
cookies.
单点登录CAS使用记:使用maven的overlay实现无侵入的改造CAS
前期在学习CAS部署的过程中,都是网上各种教程,各种方案不停的尝试。
期间各种侵入改源码,时间久了,改了哪个文件,改了哪段配置,增加了哪段代码,都有可能混淆不清了。
而且最大的问题是,万一换个人来维护或者哪天需要升级CAS版本,从何下手?
还好,maven的overlay的功能,可以帮助我解决这个问题。
什么是maven的overlay?
overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件。
于是,我就可以完全不修改cas-server-webapp的原有代码实现CAS了。
步骤一:新建my-cas-server
默认的CAS是以cas-server-webapp为主项目,用户登录认证入口、用户登录页面、各种主配置文件都包含在此项目中。
现在,我把新建的my-cas-server作为我的主项目,而把cas-server-core项目作为从属项目导入主项目中。
my-cas-server的pom.xml
<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-webapp</artifactId> <version>3.4.11</version> <type>war</type> <scope>runtime</scope> </dependency>
步骤二:设置overlays
配置overlay用于覆盖从属项目的同名文件,意思就是说,如果我主项目中存在与cas-server-webapp项目相同目录并且相同名称的文件,已主项目的为准,也就是覆盖从属项目的文件。
在my-cas-server的pom.xml中添加:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <overlays> <overlay> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-webapp</artifactId> </overlay> </overlays> </configuration> </plugin> </plugins> </build>
步骤三:拷贝同名文件
把之前修改过的cas-server-webapp的源码以及配置文件,全都列举出来,并且拷贝到my-cas-server的相同目录下。
例如:之前我改过了这么些代码(部分代码)
UsernamePasswordCredentials.java
AuthenticationViaFormAction.java
webapp/WEB-INF/
|--classes
|---cas-theme-default.properties
|---default_views.properties
|---messages_zh_CN.properties
|--spring-configuration
|----ticketRegistry.xml
cas-servlet.xml
deployerConfigContext.xml
login-webflow.xml
web.xml
同样的,我把这些文件全部复制到新项目中,目录与原项目保持一致。
步骤四:启动my-cas-server测试效果
启动后发现,与之前效果完全一致,可以正常访问,也可以正常的进行认证。
扩展:
采用overlay方式后,不仅可以不用修改源码进行CAS改造,而且你还会发现,编码的自由度大大增加了,不用再受限于原有项目的种种约束。
例如,我想要美化一下登录页面,原有的太过简单了。
我完全可以像平时开发一下,重新绘制一个登录页面,然后在配置文件中替换掉默认登录页面就可以了。
然后修改一下default_views.properties
### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp
-->
### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/jsp/login.jsp
重新启动,运行。
单点登录CAS使用记系列:
-
单点登录CAS使用记(一):前期准备以及为CAS-Server配置SSL协议
-
单点登录CAS使用记(二):部署CAS服务器以及客户端
-
单点登录CAS使用记(三):实现自定义验证用户登录
-
单点登录CAS使用记(四):为登录页面加上验证码
-
单点登录CAS使用记(五):cas-client不拦截静态资源以及无需登录的请求。
-
单点登录CAS使用记(六):单点登出、单点注销
-
单点登录CAS使用记(七):关于服务器超时以及客户端超时的分析
-
单点登录CAS使用记(八):使用maven的overlay实现无侵入的改造CAS
以上是关于如何配置CAS php 单点登录?求详简。。。的主要内容,如果未能解决你的问题,请参考以下文章