`
huze104
  • 浏览: 97375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

yale cas 配置

阅读更多

在配置YALE 的CAS里面,走了不少弯路,到最后,终于搞好了.因此写了一个教程.希望再次配置的人能少走弯路.
TOMCAT :tomcat-5.5.15版~~~忘记了,反正是当前最新的版本
JDK:1.5.06
环境变量要设好.
第一次发帖~~~~


1.        启用TOMCAT的SSL
把.keystore文件复制到TOMCAT的CONF目录下面。
在TOMCAT的主目录的CONF目录下面,修改server.xml文件,加上以下代码

<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="conf/.keystore"
               keystorePass="changeit"
               />

其中的keystoreFile是证书库文件,keystorePass是访问此证书库文件的密码。
注:keystore文件可以用以下方法生成。
Keytool –genkey –alias hostname –keyalg RSA(在接下来的第一项是名称,记住最好是和hostname同一名称)执行此操作会在用户的当前目录(user.home)下产生一个名为.keystore的文件。如果已经有了,将自动把新产生的KEY放进文件里面(此次的hostname是运行CAS服务器的名字.不要搞错,否则会在以后验证出错的.如果你是在本地测试,则用localhost就OK了)
2.        导入证书文件到各个应用的JRE的JVM里面
首先产生一个证书文件,用以下方法:
Keytool –export –alias hostname –file filename.cer
这样就在用户当前产生了一个名为filename.cer的文件
接下来就把此文件导入到各应用的的JVM里面
Keytool –import –alias hostname –file filename –keystore {java_home}\jre\lib\security\cacerts
注:如果你的JAVA_HOME里面有空格,请用引号括住。
3.        把cas.war包复制到TOMCAT的WEBAPPS下面,然后用http://localhost:8080/cas/login就可以访问登陆了

改写验证方法。CAS的默认方验证方法是用户名和密码相同,如果想改为自己的验证方式,如何做呢?你只需复制以下代码,然后在适当的地方插入你的验证代码就OK了。

package org.jasig.cas.authentication.handler.support;

import org.jasig.cas.authentication.principal.UsernamePasswordCredentials;
import org.springframework.util.StringUtils;

public final class classname extends
    AbstractUsernamePasswordAuthenticationHandler {

    public boolean authenticateUsernamePasswordInternal(
        final UsernamePasswordCredentials credentials) {
        final String username = credentials.getUsername();
        final String password = credentials.getPassword();

        if (在此插入你的验证代码) {
            getLog().debug(
                "User [" + username + "] was successfully authenticated.");
            return true;
        }

        getLog().debug("User [" + username + "] failed authentication");

        return false;
    }

    protected void afterPropertiesSetInternal() throws Exception {
        super.afterPropertiesSetInternal();
        getLog()
            .warn(
                this.getClass().getName()
                    + " is only to be used in a testing environment.  NEVER enable this in a production environment.");
    }
}


然后,修改deployerConfigContext.xml(在CAS的WEB-INF目录下面)
找到
<bean                        class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

把class改为你自己写的验证的类就OK了。
到此,服务器端的配置就完成了。
接下来是各个应用的配置:

4.(以JAVA的配置为例子)把casclient.jar包复制到应用的lib目录下面,如果没有就创建它。然后再在应用的部署描述文件里面(web.xml)加上filter。如下:

<filter>
    <filter-name>CAS Filter</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://casServerhost:8443/cas/login</param-value>
    </init-param>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
      <param-value>https:// casServerhost:8443/cas/proxyValidate</param-value>
    </init-param>
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
      <param-value>localhost:8080</param-value>
    </init-param>
  </filter>
<filter-mapping>
  <filter-name>CAS Filter</filter-name>
  <url-pattern>/servlet/*</url-pattern>
</filter-mapping>
Localhost是指各个应用的服务器的名字
casServerHost是指cas服务器的名字
其中的filter-mapping就是配置哪些资源是需要通过CAS验证的。可以配置多个。

4.        配置语言包
在cas里面的WEB-INF\classes下面添加不同的语言包,然后再在\WEB-INF\view\jsp\default\ui\includes的top.jsp文件顶部加入<%@ page contentType="text/html; charset=gbk" language="java" %>便可以了。

一些错误信息:
1.        keytool 认证未输入别名 <mykey> 已经存在
这是因为你已经导入了一信任证书。在进行keytool –import的时候,如果没有指定别名,则系统默任导入的证书的名字为mykey,所以,可以先删除此证书keytool –delete –alias mykey –keystore {java_home}\jre\lib\security\cacerts
然后再从新导入,或者指定别名导入keytool –import –alias name –keystore {java_home}\jre\lib\security\cacerts

2.        java.io.IOException: Keystore was tampered with, or password was incorrect
这个很可能你的keystore文件已经被修改了,密码已经更改,直接删除这个文件,再从新生成就可以了
3.        javax.servlet.ServletException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这是因为你没有在应用端导入证书。在应用端执行keytool –import –alias name –file filename.cer便可以。其中的name.cer是在前面的用keytool –export导出的cer文件

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/HuDon/archive/2007/02/06/1503234.aspx

分享到:
评论

相关推荐

    CAS SSO配置文档详解

    CAS学习笔记 --CAS的服务器配置和各种客户端的配置

    Yale CAS最佳实践.rar

    有关耶鲁大学CAS服务器的配置 1.环境准备 2.在jdk上配置SSL 3.SSL验证证书 4.Tomcat配置 5.Tomcat jmx bug

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

    Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...

    耶鲁CasServer单点登录教程

    一、Yale CAS简介 2 二、CAS 原理和协议 2 三、准备工作 4 四、部署CAS Server 5 步骤1.配置CAS Server应用服务器的Https 协议 5 ●生成服务器证书 5 ●配置Tomcat的https 8 步骤2.部署CAS Server 8 ●扩展认证接口 ...

    cas 配置client 1.0 &2.0 及proxy DEMO 说明

    cas 配置client 1.0 &2.0 及proxy DEMO 说明 1 cas server 搭建 1.1 资源准备 cas server 下载 http://www.ja-sig.org/downloads/cas/cas-server-3.3.1-release.zip 1.2 解压后打开cas-server-3.3.1-release\cas-...

    CAS的客户端与服务器配置

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要...

    CAS单点登陆配置手册

    CAS 是 Yale (耶鲁)大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: •开源的企业级单点登录解决方案。 •CAS ...

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    CAS SSO实例安装和配置指南PDF版

    SSO实例安装和配置指南PDF版 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

    Roller4.0的另外一套cas简单解决方案

    最灵异的问题是当我打开security.xml的cas配置属性.发布到tomcat时.会影响其他与其共存的与cas集成的系统.这让我好郁闷.这哪里是系统啊..怎么像病毒啊.会导致我其他访问cas的系统无法在得到从cas返回的用户名验证....

    CAS框架SSO的实现.rar

    使用CAS框架实现SSO单点登录,其中包含: 1、CAS服务器端安装包 ...5、CAS+SSO实例安装和配置指南PDF版.rar 6、Tomcat中使用Yale+CAS实现单点登陆(SSO).doc 7、以及本人的搭建过程中所遇到得问题和解决方法

    spring in action英文版

     11.2.4 基于Acegi和Yale CAS实现单次登录  11.3 控制访问  11.3.1 访问决策投票  11.3.2 决定如何投票  11.3.3 处理投票弃权  11.4 保护Web应用程序  11.4.1 代理Acegi的过滤器  11.4.2 ...

    coursetable:为CourseTable网站提供动力的代码

    /proxy :用于在服务之间中继连接的代理配置(例如,身份验证标头,CAS cookie等) /docker :用于在Docker中一起运行所有内容的配置文件。 /legacy :旧站点中的静态HTML文件。 /scripts和/sysadmin :管理脚本...

Global site tag (gtag.js) - Google Analytics