`
javafenger
  • 浏览: 246939 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

部署cas服务器实现定制JDBC验证

阅读更多
1 安装
1.1系统配置
以下的软件环境是必需的:
1. JDK 1.4.2 or higher
2. Tomcat 5.X

1.2 Tomcat 配置,启用SSL
1. 在要安装CAS的机器上为Tomcat生成用于SSL通讯的密钥:

keytool –genkey –alias tomcat –keyalg RSA
这时需要输入密钥密码和其他参数(第一个参数CN必须设置为CAS机器名,本机使用localhost测试),会在用户目录中生成.keystore密钥文件。

2. 导出密钥文件:

keytool –export –file server.crt –alias tomcat
这时需要输入上一步设定的密码,结果会在当前目录生成server.crt信任状。

3. 为客户端的JVM导入密钥:

keytool –import –keystore $JAVA_HOME\jre\lib\security\cacerts
–file server.crt –alias tomcat
输入密码时注意密码为“changeit”。
4. 修改服务端Tomcat配置文件,启用SSL。修改$CATALINA_HOME\conf\server.xml,去掉有关SSL的那一段的注释,需要在connector字段中加入keystorePass="password"(password即为1、2步中的密码),keystoreFile= "keystorePath"(可以把第一步生成的.keystore复制到$CATALINA_HOME\conf下,这样keystoreFile= "conf/.keystore")。

5. 重启Tomcat,测试https://server:8443是否可以访问(server应换为机器名或IP地址)。

1.3 CAS Server安装

下载CAS Server 3.0.4,将其中的cas.war复制到$CATALINA_HOME\webapps下,当然现在CAS中的用户密码认证Handler是很简陋的,产品化必须重写这部分代码,生成新的cas.jar。这时可以通过访问https://localhost:8443/cas测试CAS是否成功部署,应看到CAS登陆界面。

1.4 CAS Client 部署

利用Tomcat自带的servlets-examples ($CATALINA_HOME\webapps\servlets-examples)和jsp-examples($CATALINA_HOME\ webapps\jsp-examples)进行试验,下载最新版本的Java CAS Client,将casclient.jar复制到这两个项目的WEB-INF目录的lib下(需要新建此目录)。修改两个项目的WEB-INF\ web.xml,添加如下的过滤器:

<!-- CAS Filters -->
    <filter>
        <filter-name>CASFilter</filter-name>
        <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
        <init-param>
            <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
            <param-value>https://server:8443/cas/login</param-value>
        </init-param><!--这里的server是服务端的IP-->
        <init-param>
            <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
            <param-value>https://serName:8443/cas/proxyValidate</param-value>
        </init-param><!--这里的serName是服务端的主机名,而且必须是-->
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          <param-value>client:port</param-value><!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port-->
        </init-param>
    </filter>
   
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern><!--这里的设置是针对servlets-examples的,针对jsp-examples设置为/*-->
    </filter-mapping>

2 测试
重启Tomcat,定位到servlets-examples,执行任何一个例子都会被重定向到CAS登陆页;再定位到jsp-examples,也会被重定向到CAS登陆页;此时登陆(默认的认证Handler只要求username=password,可任意选择用户名);登录后就会进入jsp- examples;继续定位到servlets-examples,执行任何一个例子也不用再输入密码。


补充:

在多台机器上部署CAS:这些机器必需在同一个域中;服务器端生成证书,客户端导入证书(操作见上)。

PHP客户端:使用esup-phpcas客户端,验证部分php代码如下:
// import phpCAS lib
include_once('CAS/CAS.php');
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0,'freeserver.test-toodou.com',8443,'/cas');
// force CAS authentication
phpCAS::forceAuthentication();
// at this step, the user has been authenticated by the CAS server
// and the user's login name can be read with phpCAS::getUser().

// logout if desired
if (isset($_REQUEST['logout'])) {
phpCAS::logout();
}
登录结束后,CAS服务器会自动重定向回本页面。

CAS服务器与数据库连接:实际环境中我们需要到数据库验证用户有效性,在CAS中配置JDBC连接。

首先,我们需要创建自己的数据库验证器,当然也可以使用Jasig提供的cas-server-jdbc.jar,这里我们修改了cas-server- jdbc的源码满足自己的需要。并把mysql的jdbc驱动和修改后的jar部署到CAS%/WEB_INF/lib/。

修改 %CAS%/WEB_INF/deployerConfigContext..xml,其中关于验证器的一段如下:
………………………………..
       <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                            <property name="sql" value="select psw from user where username=?" />
                            <property name="dataSource" ref="dataSource" />
                        </bean>
                    </list>
                </property>
        </bean>

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
                <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
                <property name="url"><value>jdbc:mysql://192.168.1.246:3306/toodou</value></property>
                <property name="username"><value>username</value></property>
                <property name="password"><value>********</value></property>
        </bean>
 

分享到:
评论

相关推荐

    Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc

    3. 实现 SSO:在 Weblogic 服务器中实现 SSO 单点登录,使用 CAS 服务器来验证用户的身份。 使用 YALE CAS 实现 SSO 单点登录可以提供一个安全、可靠的身份验证解决方案,适合大多数的企业应用场景。

    cas服务器war包(通过数据库认证)

    1. **CAS服务器**:CAS服务器是整个SSO框架的核心,负责验证用户的凭证并生成服务票证(Service Ticket)。这里的`cas-server`就是CAS服务器的应用程序,通常是一个WAR(Web ARchive)文件,可以部署到任何支持...

    CAS Service 5.2.x 数据库连接REST已经配置

    CAS Server是核心组件,负责处理用户的认证请求,验证凭证,并向服务提供授权票据。在5.2.x版本中,CAS引入了RESTful API,这使得系统配置和管理更加灵活,可以通过HTTP请求直接操作。 对于MySQL数据库的配置,CAS...

    apereo cas6.3.2可执行war,集成mysql的jdbc认证模块

    JDBC 认证模块使得 CAS 能够查询数据库来验证用户凭据,从而实现了与企业级数据库系统的无缝对接。为了配置这个模块,管理员需要提供数据库连接的相关信息,如 URL、用户名、密码和驱动类名,这些信息通常会在 CAS ...

    CAS单点登录学习笔记五之CAS服务器数据源

    了解并正确配置数据源是CAS服务器部署和维护的关键步骤,确保CAS能够顺利地与数据库通信,提供稳定、高效的SSO服务。在实际环境中,应根据系统规模、并发量等因素调整数据源的配置参数,以优化性能和资源利用率。 ...

    CAS单点登录服务器配置详情

    2. **重定向至CAS服务器**:CAS客户端会将用户重定向到CAS服务器进行身份验证,并携带用户的请求URL作为参数(service参数)。 3. **用户认证**:CAS服务器接收到来自用户的认证请求后,引导用户进入登录页面。用户...

    cas-server-support-jdbc-3.3.1.rar_CAS_CAS3

    "cas-server-support-jdbc-3.3.1.rar" 是一个包含CAS服务器数据库支持的组件,主要用于存储和验证用户身份信息。 在CAS3中,数据库支持是通过`cas-server-support-jdbc-3.3.1.war`这个war文件实现的,这是一个Web...

    myeclipse、tomcat集成CAS

    1. **安装和配置CAS服务器**:下载CAS服务器的源码或二进制包,例如Apereo CAS,然后根据官方文档配置CAS服务器,包括设置数据库连接、认证方式(如LDAP、JDBC等)以及服务注册。 2. **在myeclipse中创建或导入CAS...

    cas数据库连接所需jar包.zip

    5. **CAS服务器配置**:在CAS的web应用上下文中,需要更新`deployerConfigContext.xml`以启用JDBC认证器。添加如下配置: ``` class="org.jasig.cas.authentication.handler.support.JdbcAuthenticationHandler...

    cas3.4.7 与access数据库配置实例

    CAS服务器是一个Web应用,通常部署在Servlet容器如Tomcat上。为了实现与Access数据库的连接,我们需要在CAS服务器的配置中添加相关的数据库驱动和连接参数。 1. **安装Tomcat**:确保你已经下载并安装了Tomcat...

    cas-server-4.0.0.rar

    3. 部署CAS服务器: - 将压缩包中的cas-server-4.0.0.war文件拷贝到Tomcat的webapps目录下。 - 启动Tomcat,war文件会自动解压并生成一个应用目录。 - 配置CAS服务器,包括设置数据库连接、服务注册、认证策略等...

    基于Cas的单点登录实现

    - **服务验证逻辑**: 实现服务端的票证验证逻辑,接收并验证Cas服务器返回的票证。 Cas的扩展性极强,支持自定义认证、授权和票证验证逻辑,可以根据组织的安全策略进行定制。此外,Cas还提供了丰富的监控和审计...

    c3p0.jar、cas-server-support-jdbc、mysql-connector-java-bin.jar

    `cas-server-support-jdbc`使得CAS服务器能够与关系型数据库进行交互,存储和检索用户的认证信息。通过配置,开发者可以指定数据库连接池(如c3p0),实现高效且可靠的用户身份验证服务。 然后,`mysql-connector-...

    cas-server.7z

    "cas-server.7z" 文件是一个包含 CAS 服务器的 WAR 包,该包是 CAS 服务的核心组成部分,允许用户在多个应用之间通过一次登录实现跨域的身份验证。 CAS 4.2.4 版本是基于 Maven 构建的,Maven 是一个项目管理和综合...

    CAS服务端和客户端war包.rar

    - CAS服务器配置:包括认证源(如LDAP、JDBC等)、安全设置、主题模板等,这些通常在`/WEB-INF/classes/cas.properties`文件中配置。 - 客户端应用配置:每个客户端应用需要在配置文件中指定CAS服务器地址和应用的...

    Yelu 大学 cas 单点登录实例

    - 部署CAS服务器需要下载官方发布的CAS服务端war包,并将其部署到Servlet容器中。 - 配置服务器包括设置数据库连接(存储用户信息)、SSL证书(确保通信安全)以及定制化登录页面等。 2. **CAS客户端集成** - ...

    搭建cas服务,cas与sqlserver连接,cas与security连接

    CAS服务器负责处理用户的身份验证请求,并在用户成功验证后提供服务票据(Ticket Granting Ticket, TGT),使得用户在访问多个受保护应用时只需登录一次。以下是搭建CAS服务的步骤: 1. **环境准备**:确保你的开发...

    cas自定义登录页面

    1. **CAS服务器初始化**:CAS服务器是核心组件,负责用户的身份验证。在部署时,将`cas-server-3.5.2`解压缩并将其内容放在Tomcat服务器的`webapps`目录下,这会启动CAS服务。 2. **自定义登录页面**:默认情况下,...

    cas5.3.1.rar,单点登录服务器完成可用

    5. **部署CAS服务器**:将修改后的配置文件打包到CAS服务器应用中,并在Tomcat、Jetty或其他应用服务器上部署。确保服务器环境满足CAS的系统需求。 6. **客户端配置**:在每个需要实现单点登录的应用中,配置CAS...

    耶鲁CasServer单点登录教程

    在部署CAS Server前,需要完成以下准备工作: 1. 安装和配置Java环境,因为CAS Server是基于Java构建的。 2. 确定和配置应用服务器,如Tomcat或WebLogic,它们将承载CAS Server应用。 3. 准备数据库,如MySQL或...

Global site tag (gtag.js) - Google Analytics