cas服务器的搭建

1 篇文章 0 订阅

在内部管理系统中,我们需要进行单点登陆来统一管理所有子系统的入口。最终我们选用了耶鲁大学的cas系统来作为单点登陆的服务器。
现在先来说下如何部署cas系统

前置条件:

java版本:1.7.0_15
cas服务器版本:4.0.0
配置的cas服务器域名为 sso.xxx.com

cas服务器下载地址:http://developer.jasig.org/cas/

具体步骤如下:

一、生成证书并配置tomcat

1、生成证书

在cmd中使用下面java的keytool 来生成证书
生成到D盘的security目录

keytool -genkey -alias sso.xxx.com -keyalg RSA -keystore d:/security/xxx-sso -validity 1000 -dname "CN=sso.xxx.com, OU=xxx, O=xxx, L=guangzhou, ST=guangdong, C=ZH"

会依次输出下列内容
输入密钥库口令:
再次输入新口令:

输入 的密钥口令
(如果和密钥库口令相同, 按回车):

我使用的密码是 000000

2、导出证书

导出证书crt文件到D盘的security目录

keytool -export -file d:/security/xxx-sso.crt -alias sso.xxx.com -keystore d:/security/xxx-sso

3、为客户端的jvm导入证书 jvm的cacerts默认秘钥为changeit

keytool -import -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file D:/security/xxx-sso.crt -alias sso.xxx.com -storepass changeit

4、配置tomcat

因为cas是使用https协议进行传输的,需要配置tomcat对8443的支持
在tomcat的web.xml配置8443端口

<Connector port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"
                SSLEnabled="true" clientAuth="false" keystoreFile="D:/security/xxx-sso" keystorePass="000000" maxThreads="150" />

二、生成cas服务器的maven项目

1、新建maven web项目,命名为xxx-cas-server

2、把cas-server-webapp-4.0.0下的所有内容拷贝到webapp目录下

3、把cas-server-webapp-4.0.0/WEB-INF/classes下的所有文件拷贝到src/main/sources目录

这是因为部署之后的classes下的文件是会被删除的,只有放在这个目录才能保证部署时在classes目录下。

4、把classes/lib下的jar包都添加到classpath中

5、修改登陆验证实现类

cas的登陆deployerConfigContext.xml中的primaryAuthenticationHandler来配置登陆实现类。因此,我们需要实现AbstractUsernamePasswordAuthenticationHandler这个抽象类来实现自己的逻辑,我是用了AD域的验证方式来进行验证的。

public class ADAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler {
    @Override
    protected HandlerResult authenticateUsernamePasswordInternal(
            UsernamePasswordCredential credential) throws GeneralSecurityException,
            PreventedException {

        String userName = credential.getUsername();
        String password = credential.getPassword();
        boolean loginSuccess = userName.equals("xxx") && password.equals("xxx");
        if (loginSuccess) {
            return createHandlerResult(credential, new SimplePrincipal(userName), null);
        } else {
            throw new FailedLoginException();
        }
    }
}

修改deployerConfigContext.xml中的primaryAuthenticationHandler指向到上面的类:

<bean id="primaryAuthenticationHandler" class="com.xxx.cas.authentication.ADAuthenticationHandler"></bean>

三、部署tomcat

把第二步中的cas-server项目部署到第一步中的tomcat中,启动。
通过网址https://sso.xxx.com:8443/访问可以看到cas的登陆页面

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值