Linux配置CAS4.0.0单点登录服务

下载CAS

  从GitHub上下载cas-server-4.0.0-release.zip,如图2.1.1红框中所示,地址为:https://github.com/apereo/cas/releases/tag/v4.0.0

图2.1.1

发布CAS

       解压下载好的cas压缩文件,将cas-server-4.0.0\cas-server-4.0.0\modules下的cas-server-webapp-4.0.0.war,上传到cas用户的tomcat服务器的webapps下。并将cas-server-webapp-4.0.0.war重命名为cas.war。启动tomcat服务器来发布cas.war包,启动成功后,将上传的cas.war删除,最后webapps如下图2.2.1所示:

图2.2.1

       浏览器访问,页面显示如图2.2.2所示,在CAS的4.0.0版本,用户名为casuser,密码为Mellon。依次输入后,登陆成功

图2.2.2

CAS链接数据库

备注:我服务器访问使用的是http,而CAS默认的访问协议为https,如果使用https需要申请证书,这是要花银子的,因此我一般是使用http的。关于将CAS的请求方式转换为http,可以参考 http://www.cnblogs.com/zzd-zxj/p/6108830.html  

       打开cas/WEB-INF 下的deployerConfigContext.xml,注释掉下面的配置信息

<!-- 注释掉原本固定登录用户 -->

<!-- <beanid="primaryAuthenticationHandler"

     class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">

    <property name="users">

        <map>

            <entrykey="casuser" value="Mellon"/>

        </map>

    </property>

</bean> -->

   在上面注释掉的配置信息下添加如下信息,更改用户认证方式为数据库认证

<!-- 变更为JDBC验证方式 -->

<bean id="primaryAuthenticationHandler"class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

  <property name="dataSource"ref="dataSource"></property>

  <property name="sql" value="select password_ from user_ where screenName = ?"></property>

  <propertyname="passwordEncoder"ref="MD5PasswordEncoder"></property>

</bean>

配置说明:

1、QueryDatabaseAuthenticationHandler是cas-server-support-jdbc提供的查询接口其中一个是通过配置一个 SQL 语句查出密码,与所给密码匹配;

2、dataSource是使用JDBC查询时的数据源;

3、sql语句就是查询哪一张表,本例根据u_user表的useraccount字段查询密码,CAS会匹配用户输入的密码,如果匹配则通过;

4、passwordEncoder这个就算是自己加的盐巴了,意思很明显就是处理密码的加密,看你的应用中数据库保存的是明码还是加密过的,比如本例是使用MD5加密的,所以配置了MD5PasswordEncoder这个Handler,cas内置了MD5的功能所以只需要配置一下就可以了;如果在实际应用中使用的是公司自己的加密算法那么就需要自己写一个Handler来处理密码,实现方式也比较简单,创建一个类继承org.jasig.cas.authentication.handler.PasswordEncoder然后在encode方法中加密用户输入的密码然后返回即可。

       在上面的配置信息下添加如下配置

<!-- 数据源配置 -->

<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property>

    <propertyname="url"><value>jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false</value></property>

    <propertyname="username"><value>demo</value></property>

    <propertyname="password"><value>demo</value></property>

</bean>


<!-- 添加MD5密码加密功能 -->

<bean id="MD5PasswordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">

    <constructor-argindex="0">

    <value>MD5</value>

    </constructor-arg>

</bean>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值