
此CAS(中央身份验证服务)是耶鲁大学的一个开源项目,旨在实现企业应用程序的单点登录. 还是很好. 牛B大学的确与众不同,不是我们的2b学校式教育. 不幸的是,它的官方网站应该在进入之前先经过墙. 让我们自己过去. 建议是GoAgent.
1.jdk7_45
2.tomcat7_45
3.三台虚拟机:
1.tomcat1(部署cas验证服务器)
2.tomcat2(其中部署了两个web应用cas-web-client, cas-web-client2)
3.mysql server一台(直接到种验证)

将其解压缩,jar将位于modules目录中,其余为源代码项目
打包的服务器:

客户端:

---------------------------------- ------ -------
开始构建:

1. 在tomcat1所在的计算机上生成一个证书:

这时,将在用户的主目录中生成一个.keystore文件. 也可以在以上命令类型中指定此文件,在生成过程中将填充一些信息. 机器的域名(不能使用IP),这里是我的:


2. 导出证书(稍后将其导入到客户端的jre环境中):

用户的主目录中有一个ssotest.crt证书文件(已保留ibm 单点登录,稍后将使用客户端配置),

3. 配置Tomcat SSL: 将$ {TOMCAT_HOME} /conf/server.xml中的第83-93行修改为:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:\Users\Administrator\.keystore"
keystorePass="123456" />
4. 在上面的下载资源中将cas-server-webapp-3.5.2.war重命名为cas.war,将其复制到$ {TOMCAT_HOME} / webapps /,启动tomcat,然后输入: 8443 / cas /,如下图所示,服务器已配置成功:

这时,输入用户名和密码(可以保持相同,只要用户名和密码相同,默认的CAS身份验证方法就可以了),可以看出默认的身份验证实现类SimpleTestUsernamePasswordAuthenticationHandler :
public final class SimpleTestUsernamePasswordAuthenticationHandler extends
AbstractUsernamePasswordAuthenticationHandler {
public boolean authenticateUsernamePasswordInternal(final UsernamePasswordCredentials credentials) {
final String username = credentials.getUsername();
final String password = credentials.getPassword();
if (StringUtils.hasText(username) && StringUtils.hasText(password)
&& username.equals(getPasswordEncoder().encode(password))) {//用户名及密码相同就成功
return true;
}
return false;
}
}
通过这种方式,CAS服务器是默认配置的,我们稍后将配置验证.
1. 生成.keystore(与上面相同);
2. 将导出的ssotest.crt证书从CAS服务器复制到目录中ibm 单点登录,并将其导入到客户端计算机的jre运行环境中:
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file ~/ssotest.crt -alias ssotest
# NOTE: 有可能会有异常:java.io.IOException: Keystore was tampered with, or password was incorrect. 那就先删除本机上述的cacerts文件。
3. 配置客户端Tomcat SSL(与上面相同);

4. 创建一个新的WEB项目cas-web-client,并添加依赖包: cas-client-core-3.2.1.jar,commons-logging-1.1.jar
5. 配置web.xml:
<?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" id="WebApp_ID" version="2.5">
<display-name>cas-web-client2</display-name>
<listener>
<listener-class>
org.jasig.cas.client.session.SingleSignOutHttpSessionListener
</listener-class>
</listener>
<filter>
<filter-name>CasSingleSignOutFilter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CasSingleSignOutFilter</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><!-- Cas Server登录url-->
<param-value>https://www.tomcat1.com:8443/cas/login</param-value>
</init-param>
<init-param><!-- 配置当前web应用所在的web服务器域名url -->
<param-name>serverName</param-name>
<param-value>http://www.tomcat2.com:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>CasTicketFilter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://www.tomcat1.com:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://www.tomcat2.com:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CasTicketFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>CasRequestWrapFilter</filter-name>
<filter-class>
org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CasRequestWrapFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>AssertionThreadLocalFilter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AssertionThreadLocalFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-169961-1.html
然后就宣布十二海里领海权
千玺好棒送一朵小红花
那个愿意搞个合娶